summaryrefslogtreecommitdiff
path: root/plugins/ShlExt/shlc.inc
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/ShlExt/shlc.inc')
-rw-r--r--plugins/ShlExt/shlc.inc168
1 files changed, 168 insertions, 0 deletions
diff --git a/plugins/ShlExt/shlc.inc b/plugins/ShlExt/shlc.inc
new file mode 100644
index 0000000000..122e0fee14
--- /dev/null
+++ b/plugins/ShlExt/shlc.inc
@@ -0,0 +1,168 @@
+{$IFDEF SHL_IDC}
+const
+ IDD_SHLOPTS = 101;
+ IDC_USEGROUPS = 1014;
+ IDC_CLISTGROUPS = 1015;
+// Show "HIT"
+ IDC_SHOWFULL = 1016;
+ IDC_NOPROF = 1020;
+ IDC_SHOWINVISIBLES = 1021;
+ IDC_HIDEOFFLINE = 1022;
+// only in the options dialog
+ IDC_STATUS = 1023;
+ IDC_CAPMENUS = 1025;
+ IDC_CAPSTATUS = 1026;
+ IDC_CAPSHLSTATUS = 1027;
+ IDC_REMOVE = 1028;
+ IDC_USEOWNERDRAW = 1029;
+{$ENDIF}
+{$IFDEF SHL_KEYS}
+const
+ SHLExt_Name: PChar = 'shlext15';
+ SHLExt_MRU: PChar = 'MRU';
+ SHLExt_UseGroups: PChar = 'UseGroups';
+ SHLExt_UseCListSetting:PChar = 'UseCLGroups';
+ SHLExt_UseHITContacts:PChar = 'UseHITContacts';
+// HIT2 contacts will get your messages but don't know your state
+ SHLExt_UseHIT2Contacts: PChar = 'UseHIT2Contacts';
+ SHLExt_ShowNoProfile:PChar = 'ShowNoProfile';
+ SHLExt_ShowNoIcons:PChar = 'ShowNoIcons';
+ SHLExt_ShowNoOffline:PChar = 'ShowNoOffline';
+{$ENDIF}
+{$IFDEF SHLCOM}
+const
+
+ S_OK = 0;
+ S_FALSE = 1;
+
+ E_UNEXPECTED = $8000FFFF;
+ E_NOTIMPL = $80004001;
+ E_INVALIDARG = $80070057;
+
+ CLASS_E_NOAGGREGATION = $80040110;
+ CLASS_E_CLASSNOTAVAILABLE = $80040111;
+
+ CLSCTX_INPROC_SERVER = $1;
+
+ { for FORMATETC }
+
+ TYMED_HGLOBAL = 1;
+ DVASPECT_CONTENT = 1;
+
+type
+
+ PGUID = ^TGUID;
+ TGUID = record
+ D1: Longint;
+ D2: Word;
+ D3: Word;
+ D4: array[0..7] of Byte;
+ end;
+
+ TIID = TGUID;
+ TCLSID = TGUID;
+
+ TStgMedium = record
+ tymed: Longint;
+ case Integer of
+ 0: (hBitmap: HBitmap; unkForRelease: Pointer{IUnknown});
+ 1: (hMetaFilePict: THandle);
+ 2: (hEnhMetaFile: THandle);
+ 3: (hGlobal: HGlobal);
+ 4: (lpszFileName: Pointer{POleStr});
+ 5: (stm: Pointer{IUnknown});
+ 6: (stg: Pointer{IStorage});
+ end;
+
+ PFormatEtc = ^TFormatEtc;
+ TFormatEtc = record
+ cfFormat: Word; {TClipFormat;}
+ ptd: Pointer; {PDVTargetDevice;}
+ dwAspect: Longint;
+ lindex: Longint;
+ tymed: Longint;
+ end;
+
+{$ENDIF}
+{$IFDEF COM_STRUCTS}
+const
+
+ IID_IUnknown : TGUID = (
+ D1:$00000000;
+ D2:$0000;
+ D3:$0000;
+ D4:($C0,$00,$00,$00,$00,$00,$00,$46)
+ );
+
+ IID_IClassFactory : TGUID = (
+ D1:$00000001;
+ D2:$0000;
+ D3:$0000;
+ D4:($C0,$00,$00,$00,$00,$00,$00,$46)
+ );
+
+ IID_IShellExtInit : TGUID = (
+ D1:$000214E8;
+ D2:$0000;
+ D3:$0000;
+ D4:($C0,$00,$00,$00,$00,$00,$00,$46)
+ );
+
+ IID_IContextMenu : TGUID = (
+ D1:$000214E4;
+ D2:$0000;
+ D3:$0000;
+ D4:($C0,$00,$00,$00,$00,$00,$00,$46)
+ );
+
+ IID_IContextMenu2 : TGUID = (
+ D1:$000214F4;
+ D2:$0000;
+ D3:$0000;
+ D4:($C0,$00,$00,$00,$00,$00,$00,$46)
+ );
+
+ IID_IContextMenu3 : TGUID = (
+ D1:$BCFCE0A0;
+ D2:$EC17;
+ D3:$11D0;
+ D4:($8D,$10,$00,$A0,$C9,$0F,$27,$19)
+ );
+
+ IID_WICImagingFactory: TGUID = (
+ D1:$EC5EC8A9;
+ D2:$C395;
+ D3:$4314;
+ D4:($9C,$77,$54,$D7,$A9,$35,$FF,$70)
+ );
+
+
+ // Vista+ only
+
+ CLSID_WICImagingFactory : TGUID = (
+ D1:$cacaf262;
+ D2:$9370;
+ D3:$4615;
+ D4:($A1,$3B,$9F,$55,$39,$DA,$4C,$0A)
+ );
+
+ // anything before 0.0.1.5 was : {A321A032-7976-11d6-A310-ED893982BF28}
+ // changed to a new GUID to avoid older plugins
+ // {72013A26-A94C-11d6-8540-A5E62932711D}
+ // the IPC header now checks the plugin version given anyway.
+
+ CLSID_ISHLCOM : TGUID = (
+ D1: $72013a26;
+ D2: $a94c;
+ D3: $11d6;
+ D4: ($85,$40,$a5,$e6,$29,$32,$71,$1d);
+ );
+{$ENDIF}
+{$IFDEF COMAPI}
+ function CoCreateInstance(const rclsid: TCLSID; pUnkOuter: Pointer; dwClsContext: DWORD; const riid: TIID; var ppv): HResult; stdcall; external 'ole32.dll' name 'CoCreateInstance';
+ procedure ReleaseStgMedium(var medium: TStgMedium); stdcall; external 'ole32.dll' name 'ReleaseStgMedium';
+ function IsEqualGUID(const guid1, guid2: TGUID): Boolean; stdcall; external 'ole32.dll' name 'IsEqualGUID';
+ function IsEqualIID(const iid1, iid2: TIID): Boolean; stdcall; external 'ole32.dll' name 'IsEqualGUID';
+ function IsEqualCLSID(const clsid1, clsid2: TCLSID): Boolean; stdcall; external 'ole32.dll' name 'IsEqualGUID';
+ function QueueUserAPC(pfnAPC: Pointer; hThread: THandle; dwData: DWORD): BOOL; stdcall; external 'kernel32' name 'QueueUserAPC';
+{$ENDIF}