diff options
Diffstat (limited to 'delphi/Awkward/utils/dbsettings.pas')
-rw-r--r-- | delphi/Awkward/utils/dbsettings.pas | 421 |
1 files changed, 0 insertions, 421 deletions
diff --git a/delphi/Awkward/utils/dbsettings.pas b/delphi/Awkward/utils/dbsettings.pas deleted file mode 100644 index 05482e6..0000000 --- a/delphi/Awkward/utils/dbsettings.pas +++ /dev/null @@ -1,421 +0,0 @@ -unit dbsettings;
-interface
-
-uses windows,m_api;
-
-function DBReadByte (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:byte =0):byte;
-function DBReadWord (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:word =0):word;
-function DBReadDword(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:dword=0):dword;
-
-function DBReadSetting (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;dbv:PDBVARIANT):Integer;
-function DBReadSettingStr(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;dbv:PDBVARIANT):Integer;
-
-function DBReadStringLength(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar):integer;
-function DBReadString (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- default:PAnsiChar=nil;enc:integer=DBVT_ASCIIZ):PAnsiChar;
-function DBReadUTF8 (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:PAnsiChar=nil):PAnsiChar;
-function DBReadUnicode(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:PWideChar=nil):PWideChar;
-
-function DBReadStruct (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- ptr:pointer;size:dword):Integer;
-function DBWriteStruct(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- ptr:pointer;size:dword):Integer;
-
-function DBWriteSetting(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;dbv:PDBVARIANT):Integer;
-function DBWriteByte (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:Byte ):Integer;
-function DBWriteWord (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:Word ):Integer;
-function DBWriteDWord(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:dword):Integer;
-
-function DBWriteString (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- val:PAnsiChar;enc:integer=DBVT_ASCIIZ):Integer;
-function DBWriteUTF8 (hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:PAnsiChar):Integer;
-function DBWriteUnicode(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:PWideChar):Integer;
-
-function DBFreeVariant(dbv:PDBVARIANT):integer;
-function DBDeleteSetting(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar):Integer;
-function DBDeleteGroup(hContact:THANDLE;szModule:PAnsiChar):integer;
-function DBDeleteModule(szModule:PAnsiChar):integer; // 0.8.0+
-
-function DBGetSettingType(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar):integer;
-
-implementation
-
-function DBReadByte(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:byte=0):byte;
-var
- dbv:TDBVARIANT;
- cgs:TDBCONTACTGETSETTING;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=@dbv;
- If PluginLink^.CallService(MS_DB_CONTACT_GETSETTING,hContact,lParam(@cgs))<>0 then
- Result:=default
- else
- Result:=dbv.bVal;
-end;
-
-function DBReadWord(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:word=0):word;
-var
- dbv:TDBVARIANT;
- cgs:TDBCONTACTGETSETTING;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=@dbv;
- If PluginLink^.CallService(MS_DB_CONTACT_GETSETTING,hContact,lParam(@cgs))<>0 then
- Result:=default
- else
- Result:=dbv.wVal;
-end;
-
-function DBReadDword(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:dword=0):dword;
-var
- dbv:TDBVARIANT;
- cgs:TDBCONTACTGETSETTING;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=@dbv;
- If PluginLink^.CallService(MS_DB_CONTACT_GETSETTING,hContact,lParam(@cgs))<>0 then
- Result:=default
- else
- Result:=dbv.dVal;
-end;
-
-function DBReadSetting(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;dbv:PDBVARIANT):Integer;
-var
- cgs:TDBCONTACTGETSETTING;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=dbv;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_GETSETTING,hContact,lParam(@cgs));
-end;
-
-function DBReadSettingStr(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;dbv:PDBVARIANT):Integer;
-var
- cgs:TDBCONTACTGETSETTING;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=dbv;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_GETSETTING_STR,hContact,lParam(@cgs));
-end;
-
-function DBReadStringLength(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar):integer;
-var
- cgs:TDBCONTACTGETSETTING;
- dbv:TDBVARIANT;
- i:integer;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=@dbv;
- i:=PluginLink^.CallService(MS_DB_CONTACT_GETSETTING_STR,hContact,lParam(@cgs));
- if (i<>0) or (dbv.szVal.a=nil) or (dbv.szVal.a^=#0) then
- result:=0
- else
- result:=lstrlena(dbv.szVal.a);
- if i=0 then
- DBFreeVariant(@dbv);
-end;
-
-function DBReadString(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- default:PAnsiChar=nil;enc:integer=DBVT_ASCIIZ):PAnsiChar;
-var
- cgs:TDBCONTACTGETSETTING;
- dbv:TDBVARIANT;
- i:integer;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=@dbv;
- dbv._type :=enc;
- i:=PluginLink^.CallService(MS_DB_CONTACT_GETSETTING_STR,hContact,lParam(@cgs));
- if i=0 then
- default:=dbv.szVal.a;
- if (default=nil) or (default^=#0) then
- result:=nil
- else
- begin
- result:=mmi.malloc(lstrlena(default)+1);
- if result<>nil then
- lstrcpya(result,default);
- end;
- if i=0 then
- DBFreeVariant(@dbv);
-end;
-
-function DBReadUTF8(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:PAnsiChar=nil):PAnsiChar;
-begin
- result:=DBReadString(hContact,szModule,szSetting,default,DBVT_UTF8);
-end;
-
-function DBReadUnicode(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;default:PWideChar=nil):PWideChar;
-var
- cgs:TDBCONTACTGETSETTING;
- dbv:TDBVARIANT;
- i:integer;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- cgs.pValue :=@dbv;
- dbv._type :=DBVT_WCHAR;
- i:=PluginLink^.CallService(MS_DB_CONTACT_GETSETTING_STR,hContact,lParam(@cgs));
- if i=0 then
- default:=dbv.szVal.w;
- if (default=nil) or (default^=#0) then
- result:=nil
- else
- begin
- result:=mmi.malloc((lstrlenw(default)+1)*SizeOf(WideChar));
- if result<>nil then
- lstrcpyw(result,default);
- end;
- if i=0 then
- DBFreeVariant(@dbv);
-end;
-
-function DBReadStruct(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- ptr:pointer;size:dword):Integer;
-var
- dbv:TDBVariant;
-begin
- dbv._type:=DBVT_BLOB;
- dbv.pbVal:=nil;
- if (DBReadSetting(0,szModule,szSetting,@dbv)=0) and
- (dbv.pbVal<>nil) and (dbv.cpbVal=size) then
- begin
- move(dbv.pbVal^,ptr^,size);
- DBFreeVariant(@dbv);
- result:=1;
- end
- else
- result:=0;
-end;
-
-function DBWriteStruct(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- ptr:pointer;size:dword):Integer;
-var
- cws:TDBCONTACTWRITESETTING;
-begin
- cws.szModule :=szModule;
- cws.szSetting :=szSetting;
- cws.value._type :=DBVT_BLOB;
- cws.value.pbVal :=ptr;
- cws.value.cpbVal:=size;
- result:=PluginLink^.CallService(MS_DB_CONTACT_WRITESETTING,0,lParam(@cws));
-end;
-
-function DBWriteSetting(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;dbv:PDBVARIANT):Integer;
-var
- cws: TDBCONTACTWRITESETTING;
-begin
- cws.szModule :=szModule;
- cws.szSetting :=szSetting;
- move(dbv^,cws.value,SizeOf(TDBVARIANT));
- Result := PluginLink^.CallService(MS_DB_CONTACT_WRITESETTING, hContact, lParam(@cws));
-end;
-
-function DBWriteByte(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:Byte):Integer;
-var
- cws:TDBCONTACTWRITESETTING;
-begin
- cws.szModule :=szModule;
- cws.szSetting :=szSetting;
- cws.value._type:=DBVT_BYTE;
- cws.value.bVal :=Val;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_WRITESETTING,hContact,lParam(@cws));
-end;
-
-function DBWriteWord(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:Word):Integer;
-var
- cws:TDBCONTACTWRITESETTING;
-begin
- cws.szModule :=szModule;
- cws.szSetting :=szSetting;
- cws.value._type:=DBVT_WORD;
- cws.value.wVal :=Val;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_WRITESETTING,hContact,lParam(@cws));
-end;
-
-function DBWriteDWord(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:dword):Integer;
-var
- cws:TDBCONTACTWRITESETTING;
-begin
- cws.szModule :=szModule;
- cws.szSetting :=szSetting;
- cws.value._type:=DBVT_DWORD;
- cws.value.dVal :=Val;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_WRITESETTING,hContact,lParam(@cws));
-end;
-
-function DBWriteString(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;
- val:PAnsiChar;enc:integer=DBVT_ASCIIZ):Integer;
-var
- cws:TDBCONTACTWRITESETTING;
-begin
- cws.szModule :=szModule;
- cws.szSetting :=szSetting;
- cws.value._type :=enc;
- if val=nil then
- val:='';
- cws.value.szVal.a:=Val;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_WRITESETTING,hContact,lParam(@cws));
-end;
-
-function DBWriteUTF8(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:PAnsiChar):Integer;
-begin
- result:=DBWriteString(hContact,szModule,szSetting,val,DBVT_UTF8);
-end;
-
-function DBWriteUnicode(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar;val:PWideChar):Integer;
-begin
- result:=DBWriteString(hContact,szModule,szSetting,PAnsiChar(val),DBVT_WCHAR);
-{
-var
- cws:TDBCONTACTWRITESETTING;
-begin
- cws.szModule :=szModule;
- cws.szSetting :=szSetting;
- cws.value._type :=DBVT_WCHAR;
- cws.value.szVal.w:=Val;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_WRITESETTING,hContact,lParam(@cws));
-}
-end;
-
-function DBFreeVariant(dbv:PDBVARIANT):integer;
-begin
- Result:=PluginLink^.CallService(MS_DB_CONTACT_FREEVARIANT,0,lParam(dbv));
-end;
-
-function DBDeleteSetting(hContact:THandle;szModule:PAnsiChar;szSetting:PAnsiChar):Integer;
-var
- cgs:TDBCONTACTGETSETTING;
-begin
- cgs.szModule :=szModule;
- cgs.szSetting:=szSetting;
- Result:=PluginLink^.CallService(MS_DB_CONTACT_DELETESETTING,hContact,lParam(@cgs));
-end;
-{
-type
- pdbenumrec = ^dbenumrec;
- dbenumrec = record
- num:integer;
- ptr:PAnsiChar;
- end;
-function EnumSettingsProc(const szSetting:PAnsiChar;lParam:LPARAM):int; cdecl;
-begin
- with pdbenumrec(lParam)^ do
- begin
- lstrcpya(ptr,szSetting);
- while ptr^<>#0 do inc(ptr);
- inc(ptr);
- inc(num);
- end;
- result:=0;
-end;
-// hContact = 0
-function DBDeleteGroup(hContact:THANDLE;szModule:PAnsiChar):integer;
-var
- ces:TDBCONTACTENUMSETTINGS;
- cgs:TDBCONTACTGETSETTING;
- p:PAnsiChar;
- rec:dbenumrec;
-begin
- GetMem(p,65520);
- rec.num :=0;
- rec.ptr :=p;
- ces.pfnEnumProc:=@EnumSettingsProc;
- ces.szModule :=szModule;
- ces.lParam :=integer(@rec);
- ces.ofsSettings:=0;
- result:=PluginLink^.CallService(MS_DB_CONTACT_ENUMSETTINGS,hContact,dword(@ces));
- cgs.szModule :=szModule;
- rec.ptr:=p;
- with rec do
- while num>0 do
- begin
- dec(num);
- cgs.szSetting:=ptr;
- PluginLink^.CallService(MS_DB_CONTACT_DELETESETTING,hContact,lParam(@cgs));
- while ptr^<>#0 do inc(ptr);
- inc(ptr);
- end;
- FreeMem(p);
-end;
-}
-type
- ppchar = ^pAnsiChar;
-
-function EnumSettingsProc(const szSetting:PAnsiChar;lParam:LPARAM):int; cdecl;
-begin
- lstrcpya(ppchar(lParam)^,szSetting);
- while ppchar(lParam)^^<>#0 do inc(ppchar(lParam)^);
- inc(ppchar(lParam)^);
- result:=0;
-end;
-function EnumSettingsProcCalc(const szSetting:PAnsiChar;lParam:LPARAM):int; cdecl;
-begin
- inc(pdword(lParam)^,lstrlena(szSetting)+1);
- result:=0;
-end;
-// hContact = 0
-function DBDeleteGroup(hContact:THANDLE;szModule:PAnsiChar):integer;
-var
- ces:TDBCONTACTENUMSETTINGS;
- cgs:TDBCONTACTGETSETTING;
- p:PAnsiChar;
- num:integer;
- ptr:pAnsiChar;
-begin
- ces.szModule:=szModule;
- num:=0;
-
- ces.pfnEnumProc:=@EnumSettingsProcCalc;
- ces.lParam :=integer(@num);
- ces.ofsSettings:=0;
- PluginLink^.CallService(MS_DB_CONTACT_ENUMSETTINGS,hContact,dword(@ces));
-
- GetMem(p,num+1);
- ptr:=p;
- ces.pfnEnumProc:=@EnumSettingsProc;
- ces.lParam :=integer(@ptr);
- ces.ofsSettings:=0;
- result:=PluginLink^.CallService(MS_DB_CONTACT_ENUMSETTINGS,hContact,dword(@ces));
- ptr^:=#0;
-
- cgs.szModule:=szModule;
- ptr:=p;
- while ptr^<>#0 do
- begin
- cgs.szSetting:=ptr;
- PluginLink^.CallService(MS_DB_CONTACT_DELETESETTING,hContact,lParam(@cgs));
- while ptr^<>#0 do inc(ptr);
- inc(ptr);
- end;
- FreeMem(p);
-end;
-
-function DBDeleteModule(szModule:PAnsiChar):integer; // 0.8.0+
-begin
- result:=0;
- PluginLink^.CallService(MS_DB_MODULE_DELETE,0,dword(szModule));
-end;
-
-function DBGetSettingType(hContact:THANDLE;szModule:PAnsiChar;szSetting:PAnsiChar):integer;
-var
- ldbv:TDBVARIANT;
-begin
- if DBReadSetting(hContact,szModule,szSetting,@ldbv)=0 then
- begin
- result:=ldbv._type;
- DBFreeVariant(@ldbv);
- end
- else
- result:=DBVT_DELETED;
-end;
-
-begin
-end.
-
|