From 1216b6c0235d6f55c29671c6b2b1074c8962da38 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Wed, 10 Oct 2012 09:06:13 +0000 Subject: mRadio moved to protocols in fpc.cfg added pathes for protocols folder git-svn-id: http://svn.miranda-ng.org/main/trunk@1859 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Utils.pas/fpc.cfg | 5 + plugins/mRadio/activex.pp | 4173 ------ plugins/mRadio/commctrl.pp | 13751 ------------------- plugins/mRadio/i_bass.inc | 940 -- plugins/mRadio/i_cc.inc | 433 - plugins/mRadio/i_frame.inc | 242 - plugins/mRadio/i_frameapi.inc | 234 - plugins/mRadio/i_hotkey.inc | 61 - plugins/mRadio/i_myservice.inc | 178 - plugins/mRadio/i_optdlg.inc | 962 -- plugins/mRadio/i_search.inc | 444 - plugins/mRadio/i_service.inc | 241 - plugins/mRadio/i_tray.inc | 228 - plugins/mRadio/i_tray_api.inc | 125 - plugins/mRadio/i_variables.inc | 82 - plugins/mRadio/i_vars.inc | 184 - plugins/mRadio/i_visual.inc | 115 - plugins/mRadio/ico/delete.ico | Bin 2550 -> 0 bytes plugins/mRadio/ico/mradio.ico | Bin 318 -> 0 bytes plugins/mRadio/ico/new.ico | Bin 2550 -> 0 bytes plugins/mRadio/ico/off.ico | Bin 2038 -> 0 bytes plugins/mRadio/ico/on.ico | Bin 2038 -> 0 bytes plugins/mRadio/ico/recoff.ico | Bin 1406 -> 0 bytes plugins/mRadio/ico/recon.ico | Bin 1406 -> 0 bytes plugins/mRadio/make.bat | 20 - plugins/mRadio/mr_rc.inc | 87 - plugins/mRadio/mradio.dpr | 350 - plugins/mRadio/mradio.rc | 182 - plugins/mRadio/mradio.res | Bin 18720 -> 0 bytes plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj | 130 - .../proto_mradio/Proto_mRadio.vcxproj.filters | 23 - plugins/mRadio/proto_mradio/res/proto_away.ico | Bin 2550 -> 0 bytes .../mRadio/proto_mradio/res/proto_invisible.ico | Bin 2550 -> 0 bytes plugins/mRadio/proto_mradio/res/proto_offline.ico | Bin 2550 -> 0 bytes plugins/mRadio/proto_mradio/res/proto_online.ico | Bin 2550 -> 0 bytes plugins/mRadio/proto_mradio/res/resource.rc | 37 - plugins/mRadio/proto_mradio/src/resource.h | Bin 1174 -> 0 bytes plugins/mRadio/readme.txt | 147 - plugins/mRadio/variants.pas | 7 - 39 files changed, 5 insertions(+), 23376 deletions(-) delete mode 100644 plugins/mRadio/activex.pp delete mode 100644 plugins/mRadio/commctrl.pp delete mode 100644 plugins/mRadio/i_bass.inc delete mode 100644 plugins/mRadio/i_cc.inc delete mode 100644 plugins/mRadio/i_frame.inc delete mode 100644 plugins/mRadio/i_frameapi.inc delete mode 100644 plugins/mRadio/i_hotkey.inc delete mode 100644 plugins/mRadio/i_myservice.inc delete mode 100644 plugins/mRadio/i_optdlg.inc delete mode 100644 plugins/mRadio/i_search.inc delete mode 100644 plugins/mRadio/i_service.inc delete mode 100644 plugins/mRadio/i_tray.inc delete mode 100644 plugins/mRadio/i_tray_api.inc delete mode 100644 plugins/mRadio/i_variables.inc delete mode 100644 plugins/mRadio/i_vars.inc delete mode 100644 plugins/mRadio/i_visual.inc delete mode 100644 plugins/mRadio/ico/delete.ico delete mode 100644 plugins/mRadio/ico/mradio.ico delete mode 100644 plugins/mRadio/ico/new.ico delete mode 100644 plugins/mRadio/ico/off.ico delete mode 100644 plugins/mRadio/ico/on.ico delete mode 100644 plugins/mRadio/ico/recoff.ico delete mode 100644 plugins/mRadio/ico/recon.ico delete mode 100644 plugins/mRadio/make.bat delete mode 100644 plugins/mRadio/mr_rc.inc delete mode 100644 plugins/mRadio/mradio.dpr delete mode 100644 plugins/mRadio/mradio.rc delete mode 100644 plugins/mRadio/mradio.res delete mode 100644 plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj delete mode 100644 plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj.filters delete mode 100644 plugins/mRadio/proto_mradio/res/proto_away.ico delete mode 100644 plugins/mRadio/proto_mradio/res/proto_invisible.ico delete mode 100644 plugins/mRadio/proto_mradio/res/proto_offline.ico delete mode 100644 plugins/mRadio/proto_mradio/res/proto_online.ico delete mode 100644 plugins/mRadio/proto_mradio/res/resource.rc delete mode 100644 plugins/mRadio/proto_mradio/src/resource.h delete mode 100644 plugins/mRadio/readme.txt delete mode 100644 plugins/mRadio/variants.pas (limited to 'plugins') diff --git a/plugins/Utils.pas/fpc.cfg b/plugins/Utils.pas/fpc.cfg index 88a79c0617..2e0892dafa 100644 --- a/plugins/Utils.pas/fpc.cfg +++ b/plugins/Utils.pas/fpc.cfg @@ -5,9 +5,14 @@ -FE.\tmp -FU.\tmp -Fi..\Utils.pas +-Fi..\..\plugins\Utils.pas -Fi..\..\include\delphi -Fi..\ExternalAPI\delphi +-Fi..\..\plugins\ExternalAPI\delphi -Fu..\Libs +-Fu..\..\plugins\Libs -Fu..\Utils.pas +-Fu..\..\plugins\Utils.pas -Fu..\..\include\delphi -Fu..\ExternalAPI\delphi +-Fu..\..\plugins\ExternalAPI\delphi diff --git a/plugins/mRadio/activex.pp b/plugins/mRadio/activex.pp deleted file mode 100644 index d36762ccf1..0000000000 --- a/plugins/mRadio/activex.pp +++ /dev/null @@ -1,4173 +0,0 @@ -Unit ActiveX; - -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: objidl.idl -// -// Header translation by Marco van de Voort for Free Pascal Platform -// SDK dl'ed January 2002 -// -//-------------------------------------------------------------------------- - -{$Mode objfpc} - -{$ifndef NO_SMART_LINK} -{$smartlink on} -{$endif} - -Interface - -Uses variants,Windows,ctypes,types; - - -type -{ extra types } - TOleChar = Types.TOleChar; - POleStr = Types.POleStr; - PPOleStr = Types.PPOleStr; - TBStr = POleStr; - TBStrList = array[0..(high(integer) div sizeof(TBSTR))-1] of TBstr; - PBStrList = ^TBStrList; - POleStrList = ^TOleStrList; - TOleStrList = array[0..(high(integer) div sizeof(POleStr))-1] of POleStr; - - PBStr = ^TBStr; - TOleEnum = type LongWord; - LargeInt = Types.LargeInt; - LargeUInt = Types.LargeUInt; - PLargeInt = Types.PLargeInt; - PLargeUInt = Types.PLargeUInt; - FMTID = TGUID; - pFMTID = pGUID; - - { Glue types, should be linked to the proper windows unit types} - Size_t = DWord; {??, probably, like Unix, typecastable to pointer?!?} - OleChar = WChar; - LPOLESTR = ^OLECHAR; - POLECHAR = LPOLESTR; - PLPOLESTR = ^LPOLESTR; - PROPID = ULONG; - TPROPID= PROPID; - PPROPID= ^PROPID; - VARIANT_BOOL = wordbool; - _VARIANT_BOOL = VARIANT_BOOL; - PVARIANT_BOOL = ^VARIANT_BOOL; - CY = CURRENCY; - DATE = DOUBLE; - BSTR = POLESTR; - TOleDate = DATE; - POleDate = ^TOleDate; - OLE_HANDLE = UINT; - LPOLE_HANDLE = ^OLE_HANDLE; - OLE_COLOR = DWORD; - LPOLE_COLOR = ^OLE_COLOR; - TOleHandle = OLE_HANDLE; - POleHandle = LPOLE_HANDLE; - TOleColor = OLE_COLOR; - POleColor = LPOle_Color; - -CONST - GUID_NULL : TGUID = '{00000000-0000-0000-0000-000000000000}'; - - // bit flags for IExternalConnection -CONST - EXTCONN_STRONG = $0001; // strong connection - EXTCONN_WEAK = $0002; // weak connection (table, container) - EXTCONN_CALLABLE = $0004; // table .vs. callable - {Bind Flags} - BIND_MAYBOTHERUSER = 1; - BIND_JUSTTESTEXISTENCE = 2; - - - MKSYS_NONE = 0; - MKSYS_GENERICCOMPOSITE = 1; - MKSYS_FILEMONIKER = 2; - MKSYS_ANTIMONIKER = 3; - MKSYS_ITEMMONIKER = 4; - MKSYS_POINTERMONIKER = 5; -// MKSYS_URLMONIKER = 6; - MKSYS_CLASSMONIKER = 7; - MKSYS_OBJREFMONIKER = 8; - MKSYS_SESSIONMONIKER = 9; - - // system moniker types; returned from IsSystemMoniker. - - MKRREDUCE_ONE = 3 SHL 16; - MKRREDUCE_TOUSER = 2 SHL 16; - MKRREDUCE_THROUGHUSER = 1 SHL 16; - MKRREDUCE_ALL = 0; - - // Storage element types - STGTY_STORAGE = 1; - STGTY_STREAM = 2; - STGTY_LOCKBYTES = 3; - STGTY_PROPERTY = 4; - - STREAM_SEEK_SET = 0; - STREAM_SEEK_CUR = 1; - STREAM_SEEK_END = 2; - - LOCK_WRITE = 1; - LOCK_EXCLUSIVE = 2; - LOCK_ONLYONCE = 4; - - //Advise Flags - ADVF_NODATA = 1; - ADVF_PRIMEFIRST = 2; - ADVF_ONLYONCE = 4; - ADVF_DATAONSTOP = 64; - ADVFCACHE_NOHANDLER = 8; - ADVFCACHE_FORCEBUILTIN = 16; - ADVFCACHE_ONSAVE = 32; - - -//**************************************************************************** -//* Notification Interfaces -//****************************************************************************/ - - TYMED_HGLOBAL = 1; - TYMED_FILE = 2; - TYMED_ISTREAM = 4; - TYMED_ISTORAGE = 8; - TYMED_GDI = 16; - TYMED_MFPICT = 32; - TYMED_ENHMF = 64; - TYMED_NULL = 0; - -// Object Definitions for EnumObjects() - OBJ_PEN = 1; - OBJ_BRUSH = 2; - OBJ_DC = 3; - OBJ_METADC = 4; - OBJ_PAL = 5; - OBJ_FONT = 6; - OBJ_BITMAP = 7; - OBJ_REGION = 8; - OBJ_METAFILE = 9; - OBJ_MEMDC = 10; - OBJ_EXTPEN = 11; - OBJ_ENHMETADC = 12; - OBJ_ENHMETAFILE = 13; - DATADIR_GET = 1; - DATADIR_SET = 2; - -// call type used by IMessageFilter::HandleIncomingMessage - - CALLTYPE_TOPLEVEL = 1; // toplevel call - no outgoing call - CALLTYPE_NESTED = 2; // callback on behalf of previous outgoing call - should always handle - CALLTYPE_ASYNC = 3; // aysnchronous call - can NOT be rejected - CALLTYPE_TOPLEVEL_CALLPENDING = 4; // new toplevel call with new LID - CALLTYPE_ASYNC_CALLPENDING = 5; // async call - can NOT be rejected - -// status of server call - returned by IMessageFilter::HandleIncomingCall -// and passed to IMessageFilter::RetryRejectedCall - - SERVERCALL_ISHANDLED = 0; - SERVERCALL_REJECTED = 1; - SERVERCALL_RETRYLATER = 2; - -// Pending type indicates the level of nesting - - PENDINGTYPE_TOPLEVEL = 1; // toplevel call - PENDINGTYPE_NESTED = 2; // nested call - -// return values of MessagePending - - PENDINGMSG_CANCELCALL = 0; // cancel the outgoing call - PENDINGMSG_WAITNOPROCESS = 1; // wait for the return and don't dispatch the message - PENDINGMSG_WAITDEFPROCESS = 2; // wait and dispatch the message - - EOAC_NONE = $0; - EOAC_MUTUAL_AUTH = $1; - EOAC_STATIC_CLOAKING = $20; - EOAC_DYNAMIC_CLOAKING = $40; - EOAC_ANY_AUTHORITY = $80; - EOAC_MAKE_FULLSIC = $100; - EOAC_DEFAULT = $800; - - // These are only valid for CoInitializeSecurity - EOAC_SECURE_REFS = $2; - EOAC_ACCESS_CONTROL = $4; - EOAC_APPID = $8; - EOAC_DYNAMIC = $10; - EOAC_REQUIRE_FULLSIC = $200; - EOAC_AUTO_IMPERSONATE = $400; - EOAC_NO_CUSTOM_MARSHAL = $2000; - EOAC_DISABLE_AAA = $1000; - -//**************************************************************************** -//* ICOMThreadingInfo and enums -//****************************************************************************/ - - APTTYPE_CURRENT = -1; - APTTYPE_STA = 0; - APTTYPE_MTA = 1; - APTTYPE_NA = 2; - APTTYPE_MAINSTA = 3; - - THDTYPE_BLOCKMESSAGES = 0; - THDTYPE_PROCESSMESSAGES = 1; - - DCOM_NONE = $0; - DCOM_CALL_COMPLETE = $1; - DCOM_CALL_CANCELED = $2; - - COMBND_RPCTIMEOUT = $1; // Rpc transport-specific timeout. - -//************************* Misc Enums wtypes.h ***********************************/ - -// Common typdefs used in API paramaters, gleamed from compobj.h - -// memory context values; passed to CoGetMalloc - -Const - MEMCTX_TASK = 1; // task (private) memory - MEMCTX_SHARED = 2; // shared memory (between processes) - MEMCTX_MACSYSTEM = 3; // on the mac, the system heap - // these are mostly for internal use... - MEMCTX_UNKNOWN = -1; // unknown context (when asked about it) - MEMCTX_SAME = -2; // same context (as some other pointer) - - -// For IRunningObjectTable::Register - ROTFLAGS_REGISTRATIONKEEPSALIVE = $1; - ROTFLAGS_ALLOWANYCLIENT = $2; - -// Maximum size of comparison buffer for IROTData::GetComparisonData - ROT_COMPARE_MAX = 2048; - - -// class context: used to determine what scope and kind of class object to use -// NOTE: this is a bitwise enum - - CLSCTX_INPROC_SERVER = $0001; // server dll (runs in same process as caller) - CLSCTX_INPROC_HANDLER = $0002; // handler dll (runs in same process as caller) - CLSCTX_LOCAL_SERVER = $0004; // server exe (runs on same machine; diff proc) - CLSCTX_INPROC_SERVER16 = $0008; // 16-bit server dll (runs in same process as caller) - CLSCTX_REMOTE_SERVER = $0010; // remote server exe (runs on different machine) - CLSCTX_INPROC_HANDLER16 = $0020; // 16-bit handler dll (runs in same process as caller) - CLSCTX_INPROC_SERVERX86 = $0040; // Wx86 server dll (runs in same process as caller) - CLSCTX_INPROC_HANDLERX86 = $0080; // Wx86 handler dll (runs in same process as caller) - CLSCTX_ESERVER_HANDLER = $0100; // handler dll (runs in the server process) - CLSCTX_RESERVED =$0200; // reserved - CLSCTX_NO_CODE_DOWNLOAD = $0400; // disallow code download from the Directory Service (if any) or the internet -rahulth - CLSCTX_NO_WX86_TRANSLATION = $0800; - CLSCTX_NO_CUSTOM_MARSHAL = $1000; - CLSCTX_ENABLE_CODE_DOWNLOAD = $2000; // allow code download from the Directory Service (if any) or the internet - CLSCTX_NO_FAILURE_LOG = $04000; // do not log messages about activation failure (should one occur) to Event Log - CLSCTX_DISABLE_AAA = $08000; // Disable EOAC_DISABLE_AAA capability for this activation only - CLSCTX_ENABLE_AAA = $10000; // Enable EOAC_DISABLE_AAA capability for this activation only - CLSCTX_FROM_DEFAULT_CONTEXT = $20000; // Begin this activation from the default context of the current apartment - CLSCTX_INPROC = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER); -// With DCOM, CLSCTX_REMOTE_SERVER should be included - CLSCTX_ALL = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif}); - CLSCTX_SERVER = (CLSCTX_INPROC_SERVER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif}); - - -// marshaling flags; passed to CoMarshalInterface - MSHLFLAGS_NORMAL = 0; // normal marshaling via proxy/stub - MSHLFLAGS_TABLESTRONG = 1; // keep object alive; must explicitly release - MSHLFLAGS_TABLEWEAK = 2; // doesn't hold object alive; still must release - MSHLFLAGS_NOPING = 4; // remote clients dont 'ping' to keep objects alive - MSHLFLAGS_RESERVED1 = 8; // reserved - MSHLFLAGS_RESERVED2 = 16; // reserved - MSHLFLAGS_RESERVED3 = 32; // reserved - MSHLFLAGS_RESERVED4 = 64; // reserved - -// marshal context: determines the destination context of the marshal operation - - MSHCTX_LOCAL = 0; // unmarshal context is local (eg.shared memory) - MSHCTX_NOSHAREDMEM = 1; // unmarshal context has no shared memory access - MSHCTX_DIFFERENTMACHINE = 2; // unmarshal context is on a different machine - MSHCTX_INPROC = 3; // unmarshal context is on different thread - MSHCTX_CROSSCTX = 4; // unmarshal context is on different context - -// ######################################################################### -// -// VARTYPE -// -// ######################################################################### - - -{ - VARENUM usage key, - - * [V] - may appear in a VARIANT - * [T] - may appear in a TYPEDESC - * [P] - may appear in an OLE property set - * [S] - may appear in a Safe Array - - - VT_EMPTY [V] [P] nothing - VT_NULL [V] [P] SQL style Null - VT_I2 [V][T][P][S] 2 byte signed int - VT_I4 [V][T][P][S] 4 byte signed int - VT_R4 [V][T][P][S] 4 byte real - VT_R8 [V][T][P][S] 8 byte real - VT_CY [V][T][P][S] currency - VT_DATE [V][T][P][S] date - VT_BSTR [V][T][P][S] OLE Automation string - VT_DISPATCH [V][T] [S] IDispatch * - VT_ERROR [V][T][P][S] SCODE - VT_BOOL [V][T][P][S] True=-1, False=0 - VT_VARIANT [V][T][P][S] VARIANT * - VT_UNKNOWN [V][T] [S] IUnknown * - VT_DECIMAL [V][T] [S] 16 byte fixed point - VT_RECORD [V] [P][S] user defined type - VT_I1 [V][T][P][s] signed char - VT_UI1 [V][T][P][S] unsigned char - VT_UI2 [V][T][P][S] unsigned short - VT_UI4 [V][T][P][S] unsigned long - VT_I8 [T][P] signed 64-bit int - VT_UI8 [T][P] unsigned 64-bit int - VT_INT [V][T][P][S] signed machine int - VT_UINT [V][T] [S] unsigned machine int - VT_INT_PTR [T] signed machine register size width - VT_UINT_PTR [T] unsigned machine register size width - VT_VOID [T] C style void - VT_HRESULT [T] Standard return type - VT_PTR [T] pointer type - VT_SAFEARRAY [T] (use VT_ARRAY in VARIANT) - VT_CARRAY [T] C style array - VT_USERDEFINED [T] user defined type - VT_LPSTR [T][P] null terminated string - VT_LPWSTR [T][P] wide null terminated string - VT_FILETIME [P] FILETIME - VT_BLOB [P] Length prefixed bytes - VT_STREAM [P] Name of the stream follows - VT_STORAGE [P] Name of the storage follows - VT_STREAMED_OBJECT [P] Stream contains an object - VT_STORED_OBJECT [P] Storage contains an object - VT_VERSIONED_STREAM [P] Stream with a GUID version - VT_BLOB_OBJECT [P] Blob contains an object - VT_CF [P] Clipboard format - VT_CLSID [P] A Class ID - VT_VECTOR [P] simple counted array - VT_ARRAY [V] SAFEARRAY* - VT_BYREF [V] void* for local use - VT_BSTR_BLOB Reserved for system use -} - -// VARENUM's - - VT_EMPTY = 0; - VT_NULL = 1; - VT_I2 = 2; - VT_I4 = 3; - VT_R4 = 4; - VT_R8 = 5; - VT_CY = 6; - VT_DATE = 7; - VT_BSTR = 8; - VT_DISPATCH = 9; - VT_ERROR = 10; - VT_BOOL = 11; - VT_VARIANT = 12; - VT_UNKNOWN = 13; - VT_DECIMAL = 14; -// VBA reserves 15 for future use - VT_I1 = 16; - VT_UI1 = 17; - VT_UI2 = 18; - VT_UI4 = 19; - VT_I8 = 20; - VT_UI8 = 21; - VT_INT = 22; - VT_UINT = 23; - VT_VOID = 24; - VT_HRESULT = 25; - VT_PTR = 26; - VT_SAFEARRAY = 27; - VT_CARRAY = 28; - VT_USERDEFINED = 29; - VT_LPSTR = 30; - VT_LPWSTR = 31; -// VBA reserves 32-35 for future use - VT_RECORD = 36; - VT_INT_PTR = 37; - VT_UINT_PTR = 38; - - VT_FILETIME = 64; - VT_BLOB = 65; - VT_STREAM = 66; - VT_STORAGE = 67; - VT_STREAMED_OBJECT = 68; - VT_STORED_OBJECT = 69; - VT_BLOB_OBJECT = 70; - VT_CF = 71; - VT_CLSID = 72; - VT_VERSIONED_STREAM = 73; - - VT_BSTR_BLOB = $0fff; - - VT_VECTOR = $1000; - VT_ARRAY = $2000; - VT_BYREF = $4000; - VT_RESERVED = $8000; - - VT_ILLEGAL = $ffff; - VT_ILLEGALMASKED = $0fff; - VT_TYPEMASK = $0fff; - - - -// -// Common typedefs for paramaters used in data view API's, gleamed -// from dvobj.h -// - -// Data/View aspect; specifies the desired aspect of the object when -// drawing or getting data. - - DVASPECT_CONTENT = 1; - DVASPECT_THUMBNAIL = 2; - DVASPECT_ICON = 4; - DVASPECT_DOCPRINT = 8; - -//****** Storage types ************************************************* - - -// Storage commit types - - STGC_DEFAULT = 0; - STGC_OVERWRITE = 1; - STGC_ONLYIFCURRENT = 2; - STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4; - STGC_CONSOLIDATE = 8; - - STGMOVE_MOVE = 0; - STGMOVE_COPY = 1; - STGMOVE_SHALLOWCOPY = 2; - - STATFLAG_DEFAULT = 0; - STATFLAG_NONAME = 1; - STATFLAG_NOOPEN = 2; - -// ######################################################################### -// -// Constants for the call context -// - - WDT_INPROC_CALL = ULONG($48746457); - WDT_REMOTE_CALL = ULONG($52746457); - WDT_INPROC64_CALL = ULONG($50746457); - - COLE_DEFAULT_PRINCIPAL {: pOleStr?} = pOleStr(-1); - COLE_DEFAULT_AUTHINFO {: pointer?} = pointer(-1); - -// DISPID reserved to indicate an \"unknown\" name -// only reserved for data members (properties); reused as a method dispid below - - DISPID_UNKNOWN = -1; - -// DISPID reserved for the \"value\" property - - DISPID_VALUE = 0; - -// The following DISPID is reserved to indicate the param") -// that is the right-hand-side (or \"put\" value) of a PropertyPut") - - DISPID_PROPERTYPUT = -3; - -// DISPID reserved for the standard \"NewEnum\" method - - DISPID_NEWENUM = -4; - -// DISPID reserved for the standard \"Evaluate\" method - - DISPID_EVALUATE = -5; - DISPID_CONSTRUCTOR = -6; - DISPID_DESTRUCTOR = -7; - DISPID_COLLECT = -8; - - DISPATCH_METHOD = $1; - DISPATCH_PROPERTYGET = $2; - DISPATCH_PROPERTYPUT = $4; - DISPATCH_PROPERTYPUTREF = $8; - - USERCLASSTYPE_FULL = 1; - USERCLASSTYPE_SHORT = 2; - USERCLASSTYPE_APPNAME = 3; - -// The range -500 through -999 is reserved for Controls -// The range 0x80010000 through 0x8001FFFF is reserved for Controls -// The range -5000 through -5499 is reserved for ActiveX Accessability -// The range -2000 through -2499 is reserved for VB5 -// The range -3900 through -3999 is reserved for Forms -// The range -5500 through -5550 is reserved for Forms -// The remainder of the negative DISPIDs are reserved for future use - - - DESCKIND_NONE = 0; - DESCKIND_FUNCDESC = 1; - DESCKIND_VARDESC = 2; - DESCKIND_TYPECOMP = 3; - DESCKIND_IMPLICITAPPOBJ = 4; - DESCKIND_MAX = 5; - - - SYS_WIN16 = 0; - SYS_WIN32 = 1; - SYS_MAC = 2; - SYS_WIN64 = 3; - - REGKIND_DEFAULT = 0; - REGKIND_REGISTER = 1; - REGKIND_NONE = 2; - - INTERFACESAFE_FOR_UNTRUSTED_CALLER = $00000001; // Caller of interface may be untrusted - INTERFACESAFE_FOR_UNTRUSTED_DATA = $00000002; // Data passed into interface may be untrusted - INTERFACE_USES_DISPEX = $00000004; // Object knows to use IDispatchEx - INTERFACE_USES_SECURITY_MANAGER = $00000008; // Object knows to use IInternetHostSecurityManager - - LIBFLAG_FRESTRICTED = $01; - LIBFLAG_FCONTROL = $02; - LIBFLAG_FHIDDEN = $04; - LIBFLAG_FHASDISKIMAGE = $08; - TYPEFLAG_FAPPOBJECT = $01; - TYPEFLAG_FCANCREATE = $02; - TYPEFLAG_FLICENSED = $04; - TYPEFLAG_FPREDECLID = $08; - TYPEFLAG_FHIDDEN = $10; - TYPEFLAG_FCONTROL = $20; - TYPEFLAG_FDUAL = $40; - TYPEFLAG_FNONEXTENSIBLE = $80; - TYPEFLAG_FOLEAUTOMATION = $100; - TYPEFLAG_FRESTRICTED = $200; - TYPEFLAG_FAGGREGATABLE = $400; - TYPEFLAG_FREPLACEABLE = $800; - TYPEFLAG_FDISPATCHABLE = $1000; - TYPEFLAG_FREVERSEBIND = $2000; - TYPEFLAG_FPROXY = $4000; - - FUNCFLAG_FRESTRICTED = $1; - FUNCFLAG_FSOURCE = $2; - FUNCFLAG_FBINDABLE = $4; - FUNCFLAG_FREQUESTEDIT = $8; - FUNCFLAG_FDISPLAYBIND = $10; - FUNCFLAG_FDEFAULTBIND = $20; - FUNCFLAG_FHIDDEN = $40; - FUNCFLAG_FUSESGETLASTERROR = $80; - FUNCFLAG_FDEFAULTCOLLELEM = $100; - FUNCFLAG_FUIDEFAULT = $200; - FUNCFLAG_FNONBROWSABLE = $400; - FUNCFLAG_FREPLACEABLE = $800; - FUNCFLAG_FIMMEDIATEBIND = $1000; - - VARFLAG_FREADONLY = $1; - VARFLAG_FSOURCE = $2; - VARFLAG_FBINDABLE = $4; - VARFLAG_FREQUESTEDIT = $8; - VARFLAG_FDISPLAYBIND = $10; - VARFLAG_FDEFAULTBIND = $20; - VARFLAG_FHIDDEN = $40; - VARFLAG_FRESTRICTED = $80; - VARFLAG_FDEFAULTCOLLELEM = $100; - VARFLAG_FUIDEFAULT = $200; - VARFLAG_FNONBROWSABLE = $400; - VARFLAG_FREPLACEABLE = $800; - VARFLAG_FIMMEDIATEBIND = $1000; - - FADF_AUTO = USHORT($0001); // array is allocated on the stack - FADF_STATIC = USHORT($0002); // array is staticly allocated - FADF_EMBEDDED = USHORT($0004); // array is embedded in a structure - FADF_FIXEDSIZE = USHORT($0010); // may not be resized or reallocated - FADF_RECORD = USHORT($0020); // an array of records - FADF_HAVEIID = USHORT($0040); // with FADF_DISPATCH, FADF_UNKNOWN - // array has an IID for interfaces - FADF_HAVEVARTYPE = USHORT($0080); // array has a VT type - FADF_BSTR = USHORT($0100); // an array of BSTRs - FADF_UNKNOWN = USHORT($0200); // an array of IUnknown* - FADF_DISPATCH = USHORT($0400); // an array of IDispatch* - FADF_VARIANT = USHORT($0800); // an array of VARIANTs - FADF_RESERVED = USHORT($F008); // reserved bits - -// IMPLTYPE Flags - - IMPLTYPEFLAG_FDEFAULT = USHORT($1); - IMPLTYPEFLAG_FSOURCE = USHORT($2); - IMPLTYPEFLAG_FRESTRICTED = USHORT($4); - IMPLTYPEFLAG_FDEFAULTVTABLE = USHORT($8); - - PARAMFLAG_NONE = USHORT($00); - PARAMFLAG_FIN = USHORT($01); - PARAMFLAG_FOUT = USHORT($02); - PARAMFLAG_FLCID = USHORT($04); - PARAMFLAG_FRETVAL = USHORT($08); - PARAMFLAG_FOPT = USHORT($10); - PARAMFLAG_FHASDEFAULT = USHORT($20); - PARAMFLAG_FHASCUSTDATA = USHORT($40); - - VAR_PERINSTANCE = 0; - VAR_STATIC = 1; - VAR_CONST = 2; - VAR_DISPATCH = 3; - - // notification messages used by the dynamic typeinfo protocol. - - CHANGEKIND_ADDMEMBER = 0; - CHANGEKIND_DELETEMEMBER = 1; - CHANGEKIND_SETNAMES = 2; - CHANGEKIND_SETDOCUMENTATION = 3; - CHANGEKIND_GENERAL = 4; - CHANGEKIND_INVALIDATE = 5; - CHANGEKIND_CHANGEFAILED = 6; - CHANGEKIND_MAX = 7; - - INVOKE_FUNC = 1; - INVOKE_PROPERTYGET = 2; - INVOKE_PROPERTYPUT = 4; - INVOKE_PROPERTYPUTREF = 8; - - TKIND_ENUM = 0; - TKIND_RECORD = 1; - TKIND_MODULE = 2; - TKIND_INTERFACE = 3; - TKIND_DISPATCH = 4; - TKIND_COCLASS = 5; - TKIND_ALIAS = 6; - TKIND_UNION = 7; - TKIND_MAX = 8; // end of enum marker - - SF_ERROR = VT_ERROR; - SF_I1 = VT_I1; - SF_I2 = VT_I2; - SF_I4 = VT_I4; - SF_I8 = VT_I8; - SF_BSTR = VT_BSTR; - SF_UNKNOWN = VT_UNKNOWN; - SF_DISPATCH = VT_DISPATCH; - SF_VARIANT = VT_VARIANT; - SF_RECORD = VT_RECORD; - SF_HAVEIID = VT_UNKNOWN OR VT_RESERVED; - IDLFLAG_NONE = PARAMFLAG_NONE; - IDLFLAG_FIN = PARAMFLAG_FIN; - IDLFLAG_FOUT = PARAMFLAG_FOUT; - IDLFLAG_FLCID = PARAMFLAG_FLCID; - IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL; - - CC_FASTCALL = 0; - CC_CDECL = 1; - CC_MSCPASCAL = 2; - CC_PASCAL = CC_MSCPASCAL; - CC_MACPASCAL = 3; - CC_STDCALL = 4; - CC_FPFASTCALL = 5; - CC_SYSCALL = 6; - CC_MPWCDECL = 7; - CC_MPWPASCAL = 8; - CC_MAX = 9; // end of enum marker - - FUNC_VIRTUAL = 0; - FUNC_PUREVIRTUAL = 1; - FUNC_NONVIRTUAL = 2; - FUNC_STATIC = 3; - FUNC_DISPATCH = 4; - -// objbase.h - - MARSHALINTERFACE_MIN = 500; // minimum number of bytes for interface marshl - -// -// Common typedefs for paramaters used in Storage API's, gleamed from storage.h -// Also contains Storage error codes, which should be moved into the storage -// idl files. -// - - - CWCSTORAGENAME = 32; - -// Storage instantiation modes - STGM_DIRECT = $00000000; - STGM_TRANSACTED = $00010000; - STGM_SIMPLE = $08000000; - STGM_READ = $00000000; - STGM_WRITE = $00000001; - STGM_READWRITE = $00000002; - STGM_SHARE_DENY_NONE = $00000040; - STGM_SHARE_DENY_READ = $00000030; - STGM_SHARE_DENY_WRITE = $00000020; - STGM_SHARE_EXCLUSIVE = $00000010; - STGM_PRIORITY = $00040000; - STGM_DELETEONRELEASE = $04000000; - STGM_NOSCRATCH = $00100000; {WINNT+} - STGM_CREATE = $00001000; - STGM_CONVERT = $00020000; - STGM_FAILIFTHERE = $00000000; - STGM_NOSNAPSHOT = $00200000; - STGM_DIRECT_SWMR = $00400000; { Win2000+} - -// flags for internet asyncronous and layout docfile - ASYNC_MODE_COMPATIBILITY = $00000001; - ASYNC_MODE_DEFAULT = $00000000; - - STGTY_REPEAT = $00000100; - STG_TOEND = $FFFFFFFF; - - STG_LAYOUT_SEQUENTIAL = $00000000; - STG_LAYOUT_INTERLEAVED = $00000001; - - STGFMT_STORAGE = 0; - STGFMT_NATIVE = 1; - STGFMT_FILE = 3; - STGFMT_ANY = 4; - STGFMT_DOCFILE = 5; - -// This is a legacy define to allow old component to builds - STGFMT_DOCUMENT = 0; - - -// COM initialization flags; passed to CoInitialize. - COINIT_APARTMENTTHREADED = $2; // Apartment model - - // These constants are only valid on Windows NT 4.0 - - COINIT_MULTITHREADED = $0; // OLE calls objects on any thread. - COINIT_DISABLE_OLE1DDE = $4; // Don't use DDE for Ole1 support. - COINIT_SPEED_OVER_MEMORY = $8; // Trade memory for speed. - - SMEXF_SERVER = $01; // server side aggregated std marshaler - SMEXF_HANDLER = $02; // client side (handler) agg std marshaler - - COWAIT_WAITALL = 1; - COWAIT_ALERTABLE = 2; - - DOCMISC_CANCREATEMULTIPLEVIEWS = 1; - DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2; - DOCMISC_CANTOPENEDIT = 4; // fails the IOleDocumentView::Open method - DOCMISC_NOFILESUPPORT = 8; // does not support read/writing to a file - - PID_DICTIONARY = PROPID($00000000); - PID_CODEPAGE = PROPID($00000001); - PID_FIRST_USABLE = PROPID($00000002); - PID_FIRST_NAME_DEFAULT = PROPID($00000fff); - PID_LOCALE = PROPID($80000000); - PID_MODIFY_TIME = PROPID($80000001); - PID_SECURITY = PROPID($80000002); - PID_BEHAVIOR = PROPID($80000003); - PID_ILLEGAL = PROPID($ffffffff); - PID_MIN_READONLY = PROPID($80000000); - PID_MAX_READONLY = PROPID($bfffffff); - PIDDI_THUMBNAIL = DWORD($00000002);// VT_BLOB - PIDSI_TITLE = DWORD($00000002); // VT_LPSTR - PIDSI_SUBJECT = DWORD($00000003); // VT_LPSTR - PIDSI_AUTHOR = DWORD($00000004); // VT_LPSTR - PIDSI_KEYWORDS = DWORD($00000005); // VT_LPSTR - PIDSI_COMMENTS = DWORD($00000006); // VT_LPSTR - PIDSI_TEMPLATE = DWORD($00000007); // VT_LPSTR - PIDSI_LASTAUTHOR = DWORD($00000008); // VT_LPSTR - PIDSI_REVNUMBER = DWORD($00000009); // VT_LPSTR - PIDSI_EDITTIME = DWORD($0000000a); // VT_FILETIME - PIDSI_LASTPRINTED = DWORD($0000000b); // VT_FILETIME - PIDSI_CREATE_DTM = DWORD($0000000c); // VT_FILETIME - PIDSI_LASTSAVE_DTM = DWORD($0000000d); // VT_FILETIME - PIDSI_PAGECOUNT = DWORD($0000000e); // VT_I4 - PIDSI_WORDCOUNT = DWORD($0000000f); // VT_I4 - PIDSI_CHARCOUNT = DWORD($00000010); // VT_I4 - PIDSI_THUMBNAIL = DWORD($00000011); // VT_CF - PIDSI_APPNAME = DWORD($00000012); // VT_LPSTR - PIDSI_DOC_SECURITY = DWORD($00000013); // VT_I4 - PIDDSI_CATEGORY = $00000002; // VT_LPSTR - PIDDSI_PRESFORMAT = $00000003; // VT_LPSTR - PIDDSI_BYTECOUNT = $00000004; // VT_I4 - PIDDSI_LINECOUNT = $00000005; // VT_I4 - PIDDSI_PARCOUNT = $00000006; // VT_I4 - PIDDSI_SLIDECOUNT = $00000007; // VT_I4 - PIDDSI_NOTECOUNT = $00000008; // VT_I4 - PIDDSI_HIDDENCOUNT = $00000009; // VT_I4 - PIDDSI_MMCLIPCOUNT = $0000000A; // VT_I4 - PIDDSI_SCALE = $0000000B; // VT_BOOL - PIDDSI_HEADINGPAIR = $0000000C; // VT_VARIANT |VT_VECTOR - PIDDSI_DOCPARTS = $0000000D; // VT_LPSTR |VT_VECTOR - PIDDSI_MANAGER = $0000000E; // VT_LPSTR - PIDDSI_COMPANY = $0000000F; // VT_LPSTR - PIDDSI_LINKSDIRTY = $00000010; // VT_BOOL - -// FMTID_MediaFileSummaryInfo - Property IDs - - PIDMSI_EDITOR = DWord($00000002); // VT_LPWSTR - PIDMSI_SUPPLIER = DWord($00000003); // VT_LPWSTR - PIDMSI_SOURCE = DWord($00000004); // VT_LPWSTR - PIDMSI_SEQUENCE_NO = DWord($00000005); // VT_LPWSTR - PIDMSI_PROJECT = DWord($00000006); // VT_LPWSTR - PIDMSI_STATUS = DWord($00000007); // VT_UI4 - PIDMSI_OWNER = DWord($00000008); // VT_LPWSTR - PIDMSI_RATING = DWord($00000009); // VT_LPWSTR - PIDMSI_PRODUCTION = DWord($0000000A); // VT_FILETIME (UTC) - PIDMSI_COPYRIGHT = DWord($0000000B); // VT_LPWSTR - PRSPEC_INVALID = ULONG($ffffffff); - PRSPEC_LPWSTR = ULONG(0); - PRSPEC_PROPID = ULONG(1); - PROPSETFLAG_DEFAULT = DWORD(0); - PROPSETFLAG_NONSIMPLE = DWORD(1); - PROPSETFLAG_ANSI = DWORD(2); - -TYPE - VARTYPE = USHORT; - -//TypeInfo stuff. - - DISPID = Long ; - SCODE = Long; - pSCODE = ^SCODE; - lpDISPID = ^DISPID; - MEMBERID = DispId; - HREFTYPE = DWord; - TResultList = array[0..high(integer) div 4-50] of HResult; - PResultList = ^TResultList; - - PSYSINT = ^SYSINT; - SYSINT = LongInt; - PSYSUINT = ^SYSUINT; - SYSUINT = LongWord; - -// Enums - VARKIND = DWord; - DESCKIND = DWord; - SYSKIND = DWord; - TSYSKIND = SYSKIND; - REGKIND = DWord; - TREGKIND = REGKIND; - FUNCKIND = DWord; - CHANGEKIND = DWord; - CALLCONV = DWord; - - PIDMSI_STATUS_VALUE = ( - PIDMSI_STATUS_NORMAL = 0, - PIDMSI_STATUS_NEW, - PIDMSI_STATUS_PRELIM, - PIDMSI_STATUS_DRAFT, - PIDMSI_STATUS_INPROGRESS, - PIDMSI_STATUS_EDIT, - PIDMSI_STATUS_REVIEW, - PIDMSI_STATUS_PROOF, - PIDMSI_STATUS_FINAL, - PIDMSI_STATUS_OTHER = $7FFF - ); - TPIDMSI_STATUS_VALUE= PIDMSI_STATUS_Value; - - - - PCOAUTHIDENTITY = ^TCOAUTHIDENTITY; - _COAUTHIDENTITY = Record - User : PUSHORT; - UserLength : ULONG; - Domain : PUSHORT; - DomainLength : ULong; - Password : PUSHORT; - PassWordLength : ULong; - Flags : ULong; - End; - - COAUTHIDENTITY = _COAUTHIDENTITY; - TCOAUTHIDENTITY = _COAUTHIDENTITY; - - PCOAUTHINFO = ^TCOAUTHINFO; - COAuthInfo = Record - AuthnSvc : DWord; - AuthzSvc : DWord; - ServerPrincName : LPWSTR; - AuthnLevel : DWord; - ImpersonationLevel : DWord; - AuthIdentityData : PCOAUTHIDENTITY; - Capabilities : DWord; - END; - TCOAUTHINFO = COAUTHINFO; - - PCOSERVERINFO = ^TCOSERVERINFO; - _COSERVERINFO = Record - dwReserved1 : DWord; - pwszName : LPWSTR; - pAuthInfo : PCoAuthInfo; - dwReserved2 : DWord; - end; - TCOSERVERINFO = _COSERVERINFO; - PMultiQI = ^Multi_QI; - tagMULTI_QI = Record - iid: piid; // pass this one in - itf: IUnknown; // get these out (you must set to NULL before calling) - hr : HResult; - END; - MULTI_QI = TagMULTI_QI; - PMulti_QI = PMultiQI; - TMultiQI = tagMULTI_QI; - - PMultiQIArray = ^TMultiQIArray; - TMultiQIArray = array[0..65535] of TMultiQI; - - - HContext = Pointer; - ApartmentID = DWord; - - -//****** Critical Section Wrappers *********************************** - -// LCID = WORD; -// LANGID = USHORT; - -// ####################################################################### -// -// User marshal support for Windows data types. - -// -// Frequently used helpers: sized blobs -// -// Never put [user_marshal] or [wire_marshal] on the helpers directly. -// - -// Flagged blobs. - - _FLAGGED_BYTE_BLOB = Record - fFlags : ULong; - clSize : ULong; - abdata : array[0..0] of byte; - End; - FLAGGED_BYTE_BLOB = _FLAGGED_BYTE_BLOB; - UP_FLAGGED_BYTE_BLOB = ^FLAGGED_BYTE_BLOB; - - _FLAGGED_WORD_BLOB = Record - fFlags : ULong; - clSize : ULong; - abdata : array[0..0] of USHORT; - End; - FLAGGED_WORD_BLOB = _FLAGGED_WORD_BLOB; - UP_FLAGGED_WORD_BLOB = ^FLAGGED_WORD_BLOB; - - _FLAGGED_DWORD_BLOB = Record - fFlags : ULong; - clSize : ULong; - abdata : array[0..0] of ULONG; - End; - FLAGGED_DWORD_BLOB = _FLAGGED_DWORD_BLOB; - FLAGGED_UP_DWORD_BLOB = ^FLAGGED_DWORD_BLOB; - -// Simple blobs. - - _BYTE_BLOB = Record - clSize : ULong; - abdata : array[0..0] of byte; - End; - BYTE_BLOB = _BYTE_BLOB; - UP_BYTE_BLOB = ^BYTE_BLOB; - - _WORD_BLOB = Record - clSize : ULong; - abdata : array[0..0] of USHORT; - End; - WORD_BLOB = _WORD_BLOB; - UP_WORD_BLOB = ^WORD_BLOB; - - _DWORD_BLOB = Record - clSize : ULong; - abdata : array[0..0] of ULONG; - End; - DWORD_BLOB = _DWORD_BLOB; - UP_DWORD_BLOB = ^DWORD_BLOB; - -// Frequently used helpers with sized pointers. - - _BYTE_SIZEDARR = Record - clsize : ULong; - Data : PByte; - End; - BYTE_SIZEDARR = _BYTE_SIZEDARR; - - _SHORT_SIZEDARR = Record - clsize : ULong; - Data : PSHORT; - End; - SHORT_SIZEDARR = _SHORT_SIZEDARR; - - _LONG_SIZEDARR = Record - clsize : ULong; - Data : PLONG; - End; - LONG_SIZEDARR = _LONG_SIZEDARR; - HYPER = LONGLONG; - PHYPER = ^HYPER; - _HYPER_SIZEDARR = Record - clsize : ULong; - Data : PHYPER; - End; - HYPER_SIZEDARR = _HYPER_SIZEDARR; - - -// ######################################################################### -// -// CLIPFORMAT -// - - userCLIPFORMAT = Record - FContext : Long; - CASE INTEGER OF - 0 : (dwvalue : DWORD); - 1 : (szName : poleStr); - End; - - wireCLIPFORMAT = ^userCLIPFORMAT; - - -// ######################################################################### -// -// Good for most of the gdi handles. - - _GDI_NONREMOTE = Record - FContext : Long; - Case Integer Of - 0 : (HInProc : Long); - 1 : (HRemote : DWORD_BLOB); - END; - GDI_NONREMOTE = _GDI_NONREMOTE; - -// ######################################################################### -// -// HGLOBAL -// -// A global may be Null or may be non-NULL with 0 length. - - _userHGLOBAL = Record - FContext : Long; - CASE Integer OF - 0 : (hInproc : Long); - 1 : (hRemote : UP_FLAGGED_BYTE_BLOB); - 2 : (hInproc64: int64); - End; - userHGlobal = _userHGLOBAL; - wireHGLOBAL = ^userHGLOBAL; - -// ######################################################################### -// -// HMETAFILE -// - _userHMETAFILE = Record - fContext : Long; - Case Integer OF - 0 : (hInproc : Long); - 1 : (hRemote : up_byte_blob); - 2 : (hInProc64 : Int64); - End; - userHMETAFILE = _userHMETAFILE; - puserHMETAFILE = ^userHMETAFILE; - -// ######################################################################### -// -// HMETAFILEPICT -// - - _remoteMETAFILEPICT = Record - mm : Long; - xExt : Long; - yExt : Long; - mgf : puserHMETAFILE; - End; - - remoteMETAFILEPICT = _remoteMETAFILEPICT; - premoteMETAFILEPICT = ^remoteMETAFILEPICT; - - _userHMETAFILEPICT = Record - fContext : Long; - Case Integer OF - 0 : (hInproc : Long); - 1 : (hRemote : premoteMETAFILEPICT); - 2 : (hInProc64 : Int64); - End; - userHMETAFILEPICT = _userHMETAFILEPICT; - - -// ######################################################################### -// -// HENHMETAFILE -// - - _userHENHMETAFILE = Record - fContext : Long; - Case Integer OF - 0 : (hInproc : Long); - 1 : (hRemote : up_byte_blob); - 2 : (hInProc64 : Int64); - End; - userHENHMETAFILE = _userHENHMETAFILE; - puserHENHMETAFILE = ^userHENHMETAFILE; - -// ######################################################################### -// -// HBITMAP -// - -// RemHBITMAP was just a byte blob, but the whole bitmap structure was copied -// at the beginning of the buffer. - -// So, we take BITMAP fields from wingdi.x - - - _userBITMAP = Record - bmType, - bmWidth, - bmHeight, - bmWidthBytes : Long; - bmPlanes, - bmBitsPixel : Word; - cvsize : ULONG; - buffer : pbyte; - End; - - userBITMAP = _userBITMAP; - puserBITMAP = ^userBITMAP; - - _userHBITMAP = Record - fContext : Long; - Case Integer OF - 0 : (hInproc : Long); - 1 : (hRemote : puserBITMAP); - 2 : (hInProc64 : Int64); - End; - userHBITMAP = _userHBITMAP; - puserHBITMAP = ^userHBITMAP; - - -// ######################################################################### -// -// HPALETTE -// - -// PALETTEENTRY is in wingdi.x, it is a struct with 4 bytes. -// LOGPALETTE is in wingdi.x, it is a conf struct with paletteentries and -// a version field - - _userHpalette = Record - fContext : Long; - Case Integer OF - 0 : (hInproc : Long); - 1 : (hRemote : logpalette); - 2 : (hInProc64 : Int64); - End; - userHpalette = _userHpalette; - puserHpalette = ^userHpalette; - -// ######################################################################### -// -// Handles passed locally as longs. -// - - _RemotableHandle = Record - fContext : Long; - Case Integer OF - 0 : (hInproc : Long); - 1 : (hRemote : Long); - End; - RemotableHandle = _RemotableHandle; - - - wireHWND = ^RemotableHandle; - wireHMENU = ^RemotableHandle; - wireHACCEL = ^RemotableHandle; - wireHBRUSH = ^RemotableHandle; - wireHFONT = ^RemotableHandle; - wireHDC = ^RemotableHandle; - wireHICON = ^RemotableHandle; - HCursor = HICON; - - - tagTEXTMETRICW = Record - tmHeight, - tmAscent, - tmDescent, - tmInternalLeading, - tmExternalLeading, - tmAveCharWidth, - tmMaxCharWidth, - tmWeight, - tmOverhang, - tmDigitizedAspectX, - tmDigitizedAspectY : Long; - tmFirstChar, - tmLastChar, - tmDefaultChar, - tmBreakChar : WCHAR; - tmItalic, - tmUnderlined, - tmStruckOut, - tmPitchAndFamily, - tmCharSet : BYTE; - End; - - TEXTMETRICW = tagTEXTMETRICW; - PTEXTMETRICW = ^TEXTMETRICW; - LPTEXTMETRICW = PTEXTMETRICW; - wireHBITMAP = ^userHBITMAP; - wireHPALETTE = ^userHPALETTE; - wireHENHMETAFILE = ^userHENHMETAFILE; - wireHMETAFILE = ^userHMETAFILE; - wireHMETAFILEPICT = ^userHMETAFILEPICT; - HMetaFilePict = Pointer; - HLOCAL = HGLOBAL; -// Date = Double; - -{**************************************************************************** - * Binding Interfaces - ****************************************************************************} - - tagBIND_OPTS = Record - cvStruct, // sizeof(BIND_OPTS) - grfFlags, - grfMode, - dwTickCountDeadline : DWord; - End; - TBind_Opts = tagBIND_OPTS; - PBind_Opts = ^TBind_Opts; - TBindOpts = tagBIND_OPTS; - PBindOpts = ^TBindOpts; - Bind_Opts = tagBind_opts; - - tagBIND_OPTS2_CPP = Record - dwTrackFlags, - dwClassContext : Dword; - Locale : LCID; - ServerInfo : pCoServerInfo; - End; - - TBind_Opts2_CPP = tagBIND_OPTS2_CPP; - PBind_Opts2_CPP = ^TBind_Opts2_CPP; - - - tagBind_OPTS2 = Record - cvStruct, // sizeof(BIND_OPTS) - grfFlags, - grfMode, - dwTickCountDeadline : DWord; - dwTrackFlags, - dwClassContext : DWord; - Locale : LCID; - ServerInfo : pCoServerInfo; - End; - - TBind_Opts2 = tagBIND_OPTS2; - PBind_Opts2 = ^TBind_Opts2; - -// **************************************************************************** -// * Structured Storage Interfaces -// **************************************************************************** - - - - tagSTATSTG = types.tagSTATSTG; - - TStatStg = tagSTATSTG; - PStatStg = types.PStatStg; - STATSTG = TStatStg; - -{ TagRemSNB = Record - ulCntStr : ULong; - ulCntChar : ULong; - [size_is(ulCntChar)] OLECHAR rgString[]; - End; - RemSNB=TagRemSNB - WireSNB=^RemSNB} - SNB = ^PoleStr; - tagDVTARGETDEVICE = Record - tdSize : DWord; - tdDriverNameOffset, - tdDeviceNameOffset, - tdPortNameOffset, - tdExtDevmodeOffset : Word; - Data : Record End; - End; - - DVTARGETDEVICE = TagDVTARGETDEVICE; - PDVTARGETDEVICE = ^tagDVTARGETDEVICE; - LPCLIPFORMAT = ^TCLIPFORMAT; - TCLIPFORMAT = Word; - CLIPFORMAT = TCLIPFORMAT; - PClipFormat = LPCLIPFORMAT; - - tagFORMATETC = Record - CfFormat : Word {TCLIPFORMAT}; - Ptd : PDVTARGETDEVICE; - dwAspect : DWORD; - lindex : Long; - tymed : DWORD; - End; - FORMATETC = TagFORMATETC; - TFORMATETC = FORMATETC; - LPFORMATETC = ^FORMATETC; - PFormatEtc = LPFORMATETC; - - // Stats for data; used by several enumerations and by at least one - // implementation of IDataAdviseHolder; if a field is not used, it - // will be NULL. - - - tagRemSTGMEDIUM = Record - tymed : DWord; - dwHandleType : DWord; - pData, - pUnkForRelease, - cbData : ULong; - Data : Record end; - End; - - RemSTGMEDIUM = TagRemSTGMedium; - - TagSTGMEDIUM = Record - Tymed : DWord; - Case Integer Of - 0 : (HBITMAP : hBitmap; PUnkForRelease : Pointer {IUnknown}); - 1 : (HMETAFILEPICT : hMetaFilePict ); - 2 : (HENHMETAFILE : hEnhMetaFile ); - 3 : (HGLOBAL : hGlobal ); - 4 : (lpszFileName : LPOLESTR ); - 5 : (pstm : Pointer{IStream} ); - 6 : (pstg : Pointer{IStorage} ); - End; - USTGMEDIUM = TagSTGMEDIUM; - STGMEDIUM = USTGMEDIUM; - TStgMedium = TagSTGMEDIUM; - PStgMedium = ^TStgMedium; - -// -// wireSTGMEDIUM -// -// These flags are #defined (not enumerated) in wingdi. -// We need to repeat #defines to avoid conflict in the generated file. -// - - _GDI_OBJECT = Record - ObjectType : DWord; - Case Integer Of - 0 : (HBitmap : WireHBITMAP); - 1 : (hPalette: wireHPALETTE); - 2 : (hGeneric: wireHGLOBAL); - END; - GDI_OBJECT = _GDI_OBJECT; - - - _userSTGMEDIUM = Record - tymed : DWORD; - Case Integer OF - 0 : (hMetaFilePict : wireHMETAFILEPICT;punkforrelease:Pointer {IUnknown}); - 1 : (hHEnhMetaFile : wireHENHMETAFILE); - 2 : (hGdiHandle : ^GDI_OBJECT); - 3 : (HGlobal : wireHGLOBAL); - 4 : (lpszFileName : LPOLESTR); - 5 : (pstm : ^BYTE_BLOB); - 6 : (pstg : ^BYTE_BLOB); - END; - - userSTGMEDIUM = _userSTGMEDIUM; - - - LPSTGMEDIUM = ^STGMEDIUM; - - _userFLAG_STGMEDIUM = Record - ContextFlags, - fPassOwnership : Long; - stgmed : userSTGMEDIUM; - End; - - userFLAG_STGMEDIUM = _userFLAG_STGMEDIUM; - - wireFLAG_STGMEDIUM = ^userFLAG_STGMEDIUM; - - - _FLAG_STGMEDIUM = Record - ContextFlags, - fPassOwnership : Long; - Stgmed : STGMEDIUM; - End; - FLAG_STGMEDIUM = _FLAG_STGMEDIUM; - - - VARIANTARG = VARIANT; - LPVARIANT = ^VARIANT; - LPVARIANTARG = ^VARIANT; - -// parameter description - - tagPARAMDESCEX = Record - cBytes : ULong; // size of this structure - varDefaultValue: VariantARG; // default value of this parameter - End; - - PARAMDESCEX = tagPARAMDESCEX; - LPPARAMDESCEX = ^PARAMDESCEX; - - tagPARAMDESC = Record - pparamdescex: LPPARAMDESCEX ; // valid if PARAMFLAG_FHASDEFAULT bit is set - wParamFlags : UShort ; // IN, OUT, etc - End; - - PARAMDESC = tagPARAMDESC; - LPPARAMDESC = ^PARAMDESC; - - - tagSAFEARRAYBOUND = Record - cElements : ULong; - lLbound : Long; - End; - SAFEARRAYBOUND = tagSAFEARRAYBOUND; - LPSAFEARRAYBOUND = ^SAFEARRAYBOUND; - - tagSAFEARRAY = record - cDims: USHORT; - fFeatures: USHORT; - cbElements: ULONG; - cLocks: ULONG; - pvData: PVOID; - rgsabound: array[0..0] of SAFEARRAYBOUND; - end; - TSafeArray = tagSAFEARRAY; - SAFEARRAY = TSafeArray; - PSafeArray = ^TSafeArray; - -// additional interface information about the incoming call - tagINTERFACEINFO = Record - Unk : Pointer {IUnknown}; // the pointer to the object - IID : Tiid; // interface id - wMethod : WORD; // interface method - End; - - INTERFACEINFO = tagINTERFACEINFO; - LPINTERFACEINFO = ^INTERFACEINFO; - RPCOLEDATAREP = ULong; - tagRPCOLEMESSAGE = Record - Reserved1 : Pointer; - DataRepresentation : RPCOLEDATAREP; - Buffer : Pointer; - cbBuffer, - IMethod : ULong; - Reserved2 : Array[0..4] Of Pointer; - rpcFlags : ULong; - End; - - RPCOLEMESSAGE = tagRPCOLEMESSAGE; - PRPCOLEMESSAGE = ^RPCOLEMESSAGE; - - tagStorageLayout = Record - LayoutType : Dword; - pwcsElementName : POleStr; - cOffset, - cBytes : Large_Integer; - End; - - StorageLayout = tagStorageLayout; - - tagSTATDATA = Record - // field used by: - FORMATETC : Tformatetc; // EnumAdvise, EnumData (cache), EnumFormats - advf : DWord; // EnumAdvise, EnumData (cache) - padvSink : Pointer {IAdviseSink}; // EnumAdvise - dwConnection: DWord; // EnumAdvise - End; - STATDATA = TagStatData; - LPStatData = ^StatData; - - pARRAYDESC = ^ARRAYDESC; - pTYPEDESC = ^TYPEDESC; - tagTYPEKIND = Dword; - TYPEKIND = tagTYPEKIND; - TTYPEKIND = TYPEKIND; - INVOKEKIND = Dword; - tagTYPEDESC = Record - Case Integer OF - VT_PTR, - VT_SAFEARRAY : (lptdesc : PTYPEDESC;vt : VARTYPE); - VT_CARRAY : (lpadesc : PARRAYDESC); - VT_USERDEFINED : (hreftype : HREFTYPE); - End; - TYPEDESC = tagTYPEDESC; - - - - - tagARRAYDESC = Record - tdescElem : TYPEDESC; // element type - cDims : USHORT; - rgbounds : ARRAY [0..0] OF SAFEARRAYBOUND; // dimension count - End; - - ARRAYDESC = tagARRAYDESC; - - tagIDLDESC = Record - dwReserved : pULONG; - wIDLFlags : USHORT; // IN, OUT, etc - End; - IDLDESC = tagIDLDESC; - LPIDLDESC = ^IDLDESC; - - - tagELEMDESC = Record - tdesc : TYPEDESC; - case Integer Of - 0 : (idldesc : IDLDESC); - 1 : (paramdesc : PARAMDESC); - END; - - ELEMDESC = tagELEMDESC; - LPELEMDESC = ^ELEMDESC; - tagVARDESC = Record - memId : MEMBERID; - lpstrSchema : pOleStr; - CASE Integer OF - VAR_PERINSTANCE, - VAR_DISPATCH, - VAR_STATIC : (oInst : ULong; // offset of variable within the instance - ElemdescVar : ELEMDESC; - wVarFlags : WORD; - varkind : VARKIND); - VAR_CONST : (lpvarValue : PVARIANT); // the value of the constant - End; - VARDESC = tagVARDESC; - LPVARDESC = ^VARDESC; - pVARDESC = LPVARDESC; - tagDISPPARAMS = Record - rgvarg : lpVARIANTARG; - rgdispidNamedArgs : lpDISPID; - cArgs, - cNamedArgs : UINT; - End; - DISPPARAMS = tagDISPPARAMS; - TDispParams = tagDISPPARAMS; - PDispParams = ^TDispParams; - - PExcepInfo = ^TExcepInfo; - TFNDeferredFillIn = function(info : PExcepInfo): HRESULT;stdcall; - tagEXCEPINFO = Record - wCode, // An error code describing the error. - wReserved : Word; - Source, // A source of the exception - Description, // A description of the error - HelpFile : WideString; // Fully qualified drive, path, and file name - dwHelpContext : ULONG; // help context of topic within the help file - // We can use ULONG_PTR here, because EXCEPINFO is marshalled by RPC - // RPC will marshal pfnDeferredFillIn. - pvReserved : pointer; - pfnDeferredFillIn : TFNDeferredFillIn; - SCODE : scode; - End; - - EXCEPINFO = tagEXCEPINFO; - TExcepInfo = tagEXCEPINFO; - - tagTYPEATTR = Record - GUID : Tguid; // the GUID of the TypeInfo - LCID : lcid; // locale of member names and doc strings - dwReserved : DWord; - memidConstructor, // ID of constructor, MEMBERID_NIL if none - memidDestructor : MemberID; // ID of destructor, MEMBERID_NIL if none - lpstrSchema : pOleStr; - - cbSizeInstance : ULong; // the size of an instance of this type - typekind : TYPEKIND; // the kind of type this typeinfo describes - cFuncs, // number of functions - cVars, // number of variables / data members - cImplTypes, // number of implemented interfaces - cbSizeVft, // the size of this types virtual func table - cbAlignment, { specifies the alignment requirements for - an instance of this type, - 0 = align on 64k boundary - 1 = byte align - 2 = word align - 4 = dword align... } - wTypeFlags, - wMajorVerNum, // major version number - wMinorVerNum : Word; // minor version number - tdescAlias : TYPEDESC; { if typekind == TKIND_ALIAS this field - specifies the type for which this type - is an alias } - idldescType : IDLDESC; // IDL attributes of the described type - END; - TYPEATTR = tagTYPEATTR; - - LPTYPEATTR = ^TYPEATTR; - PTYPEAttr = LPTYPEATTR; - - tagTLIBATTR = Record - GUID : guid; - LCID : lcid; - SYSKIND : syskind; - wMajorVerNum, - wMinorVerNum, - wLibFlags : Word - End; - - TLIBATTR = tagTLIBATTR; - LPTLIBATTR = ^tagTLIBATTR; - PTLIBAttr = LPTLIBATTR; - - LPFUNCDESC = ^FUNCDESC; - PFUNCDESC = LPFUNCDESC; - - tagFUNCDESC = Record - memid : MEMBERID; - lprgscode : PResultList; - lprgelemdescParam : lpELEMDESC; // array of param types - FUNCKIND : funckind; - invkind : INVOKEKIND; - callconv : CALLCONV; - cParams, - cParamsOpt, - oVft, - cScodes : SHORT; - elemdescFunc : ELEMDESC; - wFuncFlags : WORD; - End; - FUNCDESC = tagFUNCDESC; - - - tagBINDPTR = Record - case integer Of - 0 : (lpfuncdesc : LPFUNCDESC); - 1 : (lpvardesc : LPVARDESC); - 2 : (lptcomp : Pointer {ITypeComp} ); - End; - BINDPTR = tagBINDPTR; - LPBINDPTR = ^BINDPTR; - - tagCUSTDATAITEM = Record - GUID : TGuid; // guid identifying this custom data item - varValue : VARIANTARG; // value of this custom data item - End; - - CUSTDATAITEM = tagCUSTDATAITEM; - - LPCUSTDATAITEM = ^CUSTDATAITEM; - - tagCUSTDATA = Record - cCustData : DWord; // number of custom data items in rgCustData - prgCustData : LPCUSTDATAITEM; // array of custom data items - End; - - CUSTDATA = tagCUSTDATA; - LPCUSTDATA = ^CUSTDATA; - - PPROPVARIANT = ^TPROPVARIANT; - - - - tagPROPSPEC = record - ulKind : ULONG ; - case boolean of - false : ( propid:propid); - true : (lpwstr: LPOLEStr); - end; - - PROPSPEC= tagPROPSPEC; - TPROPSPEC = PROPSPEC; - PPROPSPEC = ^TPROPSPEC; - - tagSTATPROPSTG = record - lpwstrName : LPOLESTR ; - propid:PROPID ; - vt : VARTYPE; - end; - STATPROPSTG = tagSTATPROPSTG; - TSTATPROPSTG = STATPROPSTG; - PSTATPROPSTG = ^TSTATPROPSTG; - - tagSTATPROPSETSTG = record - fmtid : FMTID; - clsid : CLSID; - grfFlags : DWORD; - mtime : FILETIME; - ctime : FILETIME; - atime : FILETIME; - dwOSVersion : DWORD; - end; - STATPROPSETSTG = tagSTATPROPSETSTG; - TSTATPROPSETSTG = STATPROPSETSTG; - PSTATPROPSETSTG = ^STATPROPSETSTG; - - tagVersionedStream = record - guidVersion : TGUID; - pStream : pointer; {IStream} - end; - VERSIONEDSTREAM = tagVersionedStream; - TVERSIONEDSTREAM = tagVersionedStream; - LPVERSIONEDSTREAM = tagVersionedStream; - PVERSIONEDSTREAM = ^TagVersionedStream; - - - LPSAFEARRAY = ^SAFEARRAY; - tagDEC = record // simpler remoting variant without nested unions. see wtypes.h - wReserved : ushort; - scale, - sign : byte; - hi32 : ULONG; - lo64 : ULONGLONG; - end; - TDECIMAL=tagDEC; - PDecimal=^TDECIMAL; - - tagCAC = record - cElems : ULONG; - pElems : pCHAR; - end; - CAC = tagCAC; - TCAC = tagCAC; - tagCAUB = record - cElems : ULONG; - pElems : pUCHAR; - end; - CAUB = tagCAUB; - TCAUB = tagCAUB; - tagCAI = record - cElems : ULONG; - pElems : pSHORT; - end; - CAI = tagCAI; - TCAI = tagCAI; - tagCAUI = record - cElems : ULONG; - pElems : pUSHORT; - end; - CAUI = tagCAUI; - TCAUI = tagCAUI; - tagCAL = record - cElems : ULONG; - pElems : pLONG; - end; - CAL = tagCAL; - TCAL = tagCAL; - tagCAUL = record - cElems : ULONG; - pElems : pULONG; - end; - CAUL = tagCAUL; - TCAUL = tagCAUL; - tagCAFLT = record - cElems : ULONG; - pElems : pSingle; - end; - CAFLT = tagCAFLT; - TCAFLT = tagCAFLT; - tagCADBL = record - cElems : ULONG; - pElems : ^DOUBLE; - end; - CADBL = tagCADBL; - TCADBL = tagCADBL; - tagCACY = record - cElems : ULONG; - pElems : ^CY; - end; - CACY = tagCACY; - TCACY = tagCACY; - tagCADATE = record - cElems : ULONG; - pElems : ^DATE; - end; - CADATE = tagCADATE; - TCADATE = tagCADATE; - tagCABSTR = record - cElems : ULONG; - pElems : ^BSTR; - end; - CABSTR = tagCABSTR; - TCABSTR = tagCABSTR; - tagCABSTRBLOB = record - cElems : ULONG; - pElems : ^BSTRBLOB; - end; - CABSTRBLOB = tagCABSTRBLOB; - TCABSTRBLOB = tagCABSTRBLOB; - tagCABOOL = record - cElems : ULONG; - pElems : ^VARIANT_BOOL; - end; - CABOOL = tagCABOOL; - TCABOOL = tagCABOOL; - tagCASCODE = record - cElems : ULONG; - pElems : ^SCODE; - end; - CASCODE = tagCASCODE; - TCASCODE = tagCASCODE; - tagCAPROPVARIANT = record - cElems : ULONG; - pElems : ^PROPVARIANT; - end; - CAPROPVARIANT = tagCAPROPVARIANT; - TCAPROPVARIANT = tagCAPROPVARIANT; - tagCAH = record - cElems : ULONG; - pElems : ^LARGE_INTEGER; - end; - CAH = tagCAH; - TCAH = tagCAH; - tagCAUH = record - cElems : ULONG; - pElems : ^ULARGE_INTEGER; - end; - CAUH = tagCAUH; - TCAUH = tagCAUH; - tagCALPSTR = record - cElems : ULONG; - pElems : ^LPSTR; - end; - CALPSTR = tagCALPSTR; - TCALPSTR = tagCALPSTR; - tagCALPWSTR = record - cElems : ULONG; - pElems : ^LPWSTR; - end; - CALPWSTR = tagCALPWSTR; - TCALPWSTR = tagCALPWSTR; - tagCAFILETIME = record - cElems : ULONG; - pElems : ^FILETIME; - end; - CAFILETIME = tagCAFILETIME; - TCAFILETIME = tagCAFILETIME; - tagCACLIPDATA = record - cElems : ULONG; - pElems : ^CLIPDATA; - end; - CACLIPDATA = tagCACLIPDATA; - TCACLIPDATA = tagCACLIPDATA; - tagCACLSID = record - cElems : ULONG; - pElems : ^CLSID; - end; - CACLSID = tagCACLSID; - TCACLSID = tagCACLSID; - - PROPVAR_PAD1 = WORD; - PROPVAR_PAD2 = WORD; - PROPVAR_PAD3 = WORD; - -// Forward interfaces. - - IStream = Types.IStream; - IMoniker = Interface; - IEnumMoniker = Interface; - IEnumString = Interface; - IRunningObjectTable = Interface; - IStorage = Interface; - IEnumSTATSTG = Interface; - IAdviseSink = Interface; - IBindCtx = Interface; - IAsyncManager = Interface; - ICallFactory = Interface; - ISynchronize = Interface; - ITypeLib = Interface; - IPropertyStorage = Interface; - IEnumSTATPROPSETSTG = interface; - - TPROPVARIANT = record - vt : VARTYPE; - wReserved1 : PROPVAR_PAD1; - wReserved2 : PROPVAR_PAD2; - wReserved3 : PROPVAR_PAD3; - case longint of - 0 : ( cVal : CHAR ); - 1 : ( bVal : UCHAR ); - 2 : ( iVal : SHORT ); - 3 : ( uiVal : USHORT ); - 4 : ( lVal : LONG ); - 5 : ( ulVal : ULONG ); - 6 : ( intVal : longINT ); - 7 : ( uintVal : UINT ); - 8 : ( hVal : LARGE_INTEGER ); - 9 : ( uhVal : ULARGE_INTEGER ); - 10 : ( fltVal : SINGLE ); - 11 : ( dblVal : DOUBLE ); - 12 : ( boolVal : VARIANT_BOOL ); - 13 : ( bool : _VARIANT_BOOL ); - 14 : ( scode : SCODE ); - 15 : ( cyVal : CY ); - 16 : ( date : DATE ); - 17 : ( filetime : FILETIME ); - 18 : ( puuid : ^CLSID ); - 19 : ( pclipdata : ^CLIPDATA ); - 20 : ( bstrVal : BSTR ); - 21 : ( bstrblobVal : BSTRBLOB ); - 22 : ( blob : BLOB ); - 23 : ( pszVal : LPSTR ); - 24 : ( pwszVal : LPWSTR ); - 25 : ( punkVal : pointer; { IUnknown to avoid Data types which require initialization/finalization can't be used in variant records}); - 26 : ( pdispVal : pointer; {IDispatch} ); - 27 : ( pStream : pointer {IStream} ); - 28 : ( pStorage : pointer{IStorage} ); - 29 : ( pVersionedStream : LPVERSIONEDSTREAM ); - 30 : ( parray : LPSAFEARRAY ); - 31 : ( cac : CAC ); - 32 : ( caub : CAUB ); - 33 : ( cai : CAI ); - 34 : ( caui : CAUI ); - 35 : ( cal : CAL ); - 36 : ( caul : CAUL ); - 37 : ( cah : CAH ); - 38 : ( cauh : CAUH ); - 39 : ( caflt : CAFLT ); - 40 : ( cadbl : CADBL ); - 41 : ( cabool : CABOOL ); - 42 : ( cascode : CASCODE ); - 43 : ( cacy : CACY ); - 44 : ( cadate : CADATE ); - 45 : ( cafiletime : CAFILETIME ); - 46 : ( cauuid : CACLSID ); - 47 : ( caclipdata : CACLIPDATA ); - 48 : ( cabstr : CABSTR ); - 49 : ( cabstrblob : CABSTRBLOB ); - 50 : ( calpstr : CALPSTR ); - 51 : ( calpwstr : CALPWSTR ); - 52 : ( capropvar : CAPROPVARIANT ); - 53 : ( pcVal : pCHAR ); - 54 : ( pbVal : pUCHAR ); - 55 : ( piVal : pSHORT ); - 56 : ( puiVal : pUSHORT ); - 57 : ( plVal : pLONG ); - 58 : ( pulVal : pULONG ); - 59 : ( pintVal : plongint ); - 60 : ( puintVal : pUINT ); - 61 : ( pfltVal : psingle ); - 62 : ( pdblVal : pDOUBLE ); - 63 : ( pboolVal : ^VARIANT_BOOL ); - 64 : ( pdecVal : pDECIMAL ); - 65 : ( pscode : ^SCODE ); - 66 : ( pcyVal : ^CY ); - 67 : ( pdate : ^DATE ); - 68 : ( pbstrVal : ^TBSTR ); - 69 : ( ppunkVal : ^IUnknown ); - 70 : ( ppdispVal : ^IDispatch ); - 71 : ( pparray : ^LPSAFEARRAY ); - 72 : ( pvarVal : ^PROPVARIANT ); - end; - PROPVARIANT=TPROPVARIANT; - TagPROPVARIANT = TPROPVARIANT; -// Unknwn.idl - -// IUnknown is in classesh.inc - - - - AsyncIUnknown = Interface(IUnknown) - ['{000e0000-0000-0000-C000-000000000046}'] - Function Begin_QueryInterface(Const riid : TIID): HResult; StdCall; - Function Finish_QueryInterface(Out ppvObject : Pointer):HResult;StdCall; - Function Begin_AddRef:HResult;StdCall; - Function Finish_AddRef:ULong;StdCall; - Function Begin_Release:HResult;StdCall; - Function Finish_Release:ULong;StdCall; - End; - - IClassFactory = Interface(IUnknown) - ['{00000001-0000-0000-C000-000000000046}'] - Function CreateInstance(Const unkOuter:IUnknown;Const riid : TIID;Out vObject):HResult; StdCall; - Function LockServer(fLock : Bool):HResult;StdCall; - End; - - PLicInfo = ^TLicInfo; - tagLICINFO = record - cbLicInfo : ULONG; - fRuntimeKeyAvail : BOOL; - fLicVerified : BOOL; - end; - TLicInfo = tagLICINFO; - LICINFO = TLicInfo; - - IClassFactory2 = interface(IClassFactory) - ['{B196B28F-BAB4-101A-B69C-00AA00341D07}'] - function GetLicInfo(var licInfo: TLicInfo): HResult; stdcall; - function RequestLicKey(dwResrved: DWORD; out bstrKey: WideString): HResult; stdcall; - function CreateInstanceLic(const unkOuter: IUnknown; const unkReserved: IUnknown; - const iid: TIID; const bstrKey: WideString; out vObject): HResult; stdcall; - end; - -// objidl.idl - -{**************************************************************************** - * Component Object Interfaces - ****************************************************************************} - - IMarshal = Interface(IUnknown) - ['{00000003-0000-0000-C000-000000000046}'] - Function GetUnmarshalClass ( Const riid: TIID; pv:Pointer; Const dwDestContext:DWord; - pvDestContext:Pointer; Const mshlflags:DWORD;out LCid : TCLSID ):HResult;Stdcall; - Function GetMarshalSizeMax ( Const Riid: TIID; {in, unique} pv:Pointer; Const dwDestContext : DWord; - {in, unique} pvDestContext:Pointer; Const mshlflags : DWord; out pSize : PDWord ): HResult;Stdcall; - Function MarshalInterface ( Const {in, unique} pStm: IStream; Const riid: TIID; {in, unique} pv:Pointer; - Const dwDestContext:DWord; {in, unique} pvDestContext:Pointer; Const mshlflags:DWord ): HRESULT;Stdcall; - Function UnmarshalInterface ( {[in, unique]} Const pStm:IStream; Const riid: TIID; - out ppv ): HResult;Stdcall; - Function ReleaseMarshalData ( {[in, unique]} Const Strm: IStream ):HResult;Stdcall; - Function DisconnectObject ( Const dwReserved:DWord ):HRESULT;Stdcall; - END; - - - IMarshal2 = Interface(IMarshal) - ['{000001cf-0000-0000-C000-000000000046}'] - End; - - IMalloc = Interface(IUnknown) - ['{00000002-0000-0000-C000-000000000046}'] - Function Alloc(cb :size_t):Pointer; Stdcall; - Function Realloc (pv :pointer;cb:size_t):Pointer;stdcall; - Procedure Free({[in]} pv: pointer); Stdcall; - Function GetSize(pv:pointer):size_t;stdcall; - Function DidAlloc(pv:pointer):Longint;stdcall; - procedure HeapMinimize; stdcall; - End; - - IMallocSpy = Interface(IUnknown) - ['{0000001d-0000-0000-C000-000000000046}'] - - Function PreAlloc(cbrequest:Size_t):Longint; StdCall; - function PostAlloc(Pactual:Pointer):Pointer;StdCall; - Function PreFree(pRequest:Pointer;fSpyed:bool):pointer;StdCall; - Procedure PostFree(fspyed:Bool);Stdcall; - Function PreRealloc(pRequest:Pointer;cbRequest:Size_t;Out ppNewRequest:Pointer; - fSpyed:Bool):Size_t;Stdcall; - Function PostRealloc(pactual:Pointer;fspyed:Bool):pointer;Stdcall; - Function PreGetSize(pRequest:pointer;fSpyed:Bool):Pointer;StdCall; - Function PostGetSize(cbactual:Size_t;fSpyed:Bool):Size_t;StdCall; - Function PreDidAlloc(pRequest:pointer;fSpyed:Bool):pointer;stdcall; - Function PostDidAlloc(pRequest:pointer;fSpyed:Bool;Factual:Longint):pointer;stdcall; - Procedure PreHeapMinimize;StdCall; - Procedure PostHeapMinimize;StdCall; - End; - - IStdMarshalInfo = Interface(IUnknown) - ['{00000018-0000-0000-C000-000000000046}'] - Function GetClassForHandler (dwDestContext : DWord;pvDestContext:pointer;out Clsid : Pclsid ):HResult;Stdcall; - End; - - - IExternalConnection = Interface(IUnknown) - ['{00000019-0000-0000-C000-000000000046}'] - Function AddConnection (ExtConn: DWord; Reserved: DWord):DWord;Stdcall; - Function ReleaseConnection(extconn: DWord; Reserved: Dword;FLastReleaseCloses: Bool):DWord;StdCall; - End; - - - IMultiQI = Interface(IUnknown) - ['{00000020-0000-0000-C000-000000000046}'] -//if (__midl >= 500) -// async_uuid(000e0020-0000-0000-C000-000000000046) -//endif - Function QueryMultipleInterfaces(cMQIs:Ulong;pMQIs:pMultiQI):HResult;StdCall; - END; - - IInternalUnknown=Interface(IUnknown) - ['{00000021-0000-0000-C000-000000000046}'] - Function QueryInternalInterface(const riid:TIID;Out ppv:Pointer):HResult;StdCall; - END; - - - IEnumUnknown = Interface(IUnknown) - ['{00000100-0000-0000-C000-000000000046}'] - // pointer_default(unique) - Function Next(Celt:Ulong;out rgelt;out pCeltFetched:pulong):HRESULT;StdCall; -// HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is( *pceltFetched)] IUnknown **rgelt, [out] ULONG *pceltFetched); - Function Skip(Celt:Ulong):HResult;StdCall; - Function Reset():HResult; - Function Close(Out ppenum: IEnumUnknown):HResult; - END; - - - IBindCtx = Interface (IUnknown) - ['{0000000e-0000-0000-C000-000000000046}'] - Function RegisterObjectBound(Const punk:IUnknown):HResult; stdCall; - Function RevokeObjectBound (Const Punk:IUnknown):HResult; stdCall; - Function ReleaseBoundObjects :HResult; StdCall; - Function SetBindOptions(Const bindOpts:TBind_Opts):HResult; stdCall; -// Function RemoteSetBindOptions(Const bind_opts: TBind_Opts2):HResult;StdCall; - Function GetBindOptions(var BindOpts:TBind_Opts):HResult; stdCall; -// Function RemoteGetBindOptions(Var bind_opts: TBind_Opts2):HResult;StdCall; - Function GetRunningObjectTable(Out rot : IRunningObjectTable):Hresult; StdCall; - Function RegisterObjectParam(Const pszkey:LPOleStr;const punk:IUnknown):HResult; - Function GetObjectParam(Const pszkey:LPOleStr; out punk: IUnknown):HResult; StdCall; - Function EnumObjectParam (out enum:IEnumString):Hresult;StdCall; - Function RevokeObjectParam(pszKey:LPOleStr):HResult;StdCall; - End; - - - IEnumMoniker = Interface (IUnknown) - ['{00000102-0000-0000-C000-000000000046}'] - Function Next(celt:ULong; out Elt;out celftfetched: ULong):HResult; StdCall; -// Function RemoteNext(Celt:ULong; Out rgelt;out celtfetched :ULong):Hresult; StdCall; - Function Skip(celt:Ulong):HResult; StdCall; - Function Reset:HResult; StdCall; - Function Close(out penum:IEnumMoniker):HResult;StdCall; - End; - - - IRunnableObject = Interface(IUnknown) - ['{00000126-0000-0000-C000-000000000046}'] - Function GetRunningClass(Out clsid:Tclsid):Hresult; StdCall; - Function Run(Const pb: IBindCtx):HResult; StdCall; - Function IsRunning:Bool; StdCall; -// Function RemoteIsRunning:Bool; StdCall; - Function LockRunning(FLock,FLastUnlockClose:BOOL):HResult; StdCall; - Function SetContainedObject(fContained:Bool):Hresult;Stdcall; - End; - - IRunningObjectTable = Interface (IUnknown) - ['{00000010-0000-0000-C000-000000000046}'] - Function Register (grfFlags :DWord;const unkobject:IUnknown;Const mkObjectName:IMoniker;Out dwregister:DWord):HResult;StdCall; - Function Revoke (dwRegister:DWord):HResult; StdCall; - Function IsRunning (Const mkObjectName: IMoniker):HResult;StdCall; - Function GetObject (Const mkObjectName: IMoniker; Out punkObject:IUnknown):HResult; StdCall; - Function NoteChangeTime(dwRegister :DWord;Const FileTime: TFileTime):HResult;StdCall; - Function GetTimeOfLastChange(Const mkObjectName:IMoniker;Out filetime:TFileTime):HResult; StdCall; - Function EnumRunning (Out enumMoniker: IEnumMoniker):HResult; StdCall; - End; - - IPersist = Interface (IUnknown) - ['{0000010c-0000-0000-C000-000000000046}'] - Function GetClassId(out clsid:TClsId):HResult; StdCall; - End; - - IPersistStream = Interface(IPersist) - ['{00000109-0000-0000-C000-000000000046}'] - Function IsDirty:HResult; StdCall; - Function Load(Const stm: IStream):HResult; StdCall; - Function Save(Const stm: IStream;fClearDirty:Bool):HResult;StdCall; - Function GetSizeMax(Out cbSize:ULarge_Integer):HResult; StdCall; - End; - - PIMoniker = ^IMoniker; - IMoniker = Interface (IPersistStream) - ['{0000000f-0000-0000-C000-000000000046}'] - Function BindToObject (const pbc:IBindCtx;const mktoleft:IMoniker; const RiidResult:TIID;Out vresult):HResult;StdCall; -// Function RemoteBindToObject (const pbc:IBindCtx;const mktoleft:IMoniker;const RiidResult:TIID;Out vresult):HResult;StdCall; - Function BindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; const Riid:TIID;Out vobj):HResult; StdCall; -// Function RemoteBindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker;const Riid:TIID;Out vobj):HResult; StdCall; - Function Reduce (const pbc:IBindCtx; dwReduceHowFar:DWord; mktoLeft: PIMoniker; Out mkReduced:IMoniker):HResult; StdCall; - Function ComposeWith(Const MkRight:IMoniker;fOnlyIfNotGeneric:BOOL; OUT mkComposite:IMoniker):HResult; StdCall; - Function Enum(fForward:Bool;Out enumMoniker:IEnumMoniker):HResult;StdCall; - Function IsEqual(Const mkOtherMoniker:IMoniker):HResult;StdCall; - Function Hash (Out dwHash:Dword):HResult;StdCall; - Function IsRunning(Const bc:IBindCtx;Const MkToLeft:IMoniker;Const mknewlyRunning:IMoniker):HResult;StdCall; - Function GetTimeOfLastChange(Const bc:IBindCtx;Const mkToLeft:IMoniker; out ft : FileTime):HResult; StdCall; - Function Inverse(out mk : IMoniker):HResult; StdCall; - Function CommonPrefixWith (Const mkOther:IMoniker):HResult; StdCall; - Function RelativePathTo(Const mkother:IMoniker; Out mkRelPath : IMoniker):HResult;StdCall; - Function GetDisplayName(Const bc:IBindCtx;const mktoleft:IMoniker;Out szDisplayName: pOleStr):HResult; StdCall; - Function ParseDisplayName(Const bc:IBindCtx;Const mkToLeft:IMoniker;szDisplayName:POleStr;out cheaten:ULong;out mkOut:IMoniker):HResult; StdCall; - Function IsSystemMoniker(Out dwMkSys:DWord):HResult;StdCall; - End; - - IROTData = Interface (IUnknown) - ['{f29f6bc0-5021-11ce-aa15-00006901293f}'] - Function GetComparisonData(out data; cbMax:ULong;out cbData:ULong):HResult;StdCall; - End; - - - IEnumString = Interface (IUnknown) - ['{00000101-0000-0000-C000-000000000046}'] - Function Next(Celt:ULong;Out xcelt;Out Celtfetched:ULong):HResult; StdCall; -// Function RemoteNext(Celt:ULong; Out celt;Out Celtfetched:ULong):HResult; StdCall; - Function Skip (Celt:ULong):Hresult;StdCall; - Function Reset:HResult;StdCall; - Function Clone(Out penum:IEnumString):HResult;StdCall; - End; - - ISequentialStream = Types.ISequentialStream; - (*interface(IUnknown) - ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}'] - function Read(pv : Pointer;cb : ULONG;pcbRead : PULONG) : HRESULT;stdcall; - function Write(pv : Pointer;cb : ULONG;pcbWritten : PULONG): HRESULT;stdcall; - end; - *) - - (* defined above by pulling it in from types IStream = interface(ISequentialStream) - ['{0000000C-0000-0000-C000-000000000046}'] - function Seek(dlibMove : LargeInt; dwOrigin: Longint; - out libNewPosition : LargeInt): HResult; stdcall; - function SetSize(libNewSize : LargeInt) : HRESULT;stdcall; - function CopyTo(stm: IStream;cb : LargeInt;out cbRead : LargeInt; - out cbWritten: LargeInt) : HRESULT;stdcall; - function Commit(grfCommitFlags : Longint) : HRESULT; stdcall; - function Revert : HRESULT; stdcall; - function LockRegion(libOffset : LargeInt;cb : LargeInt; - dwLockType: Longint) : HRESULT;stdcall; - function UnlockRegion(libOffset: LargeInt;cb: LargeInt; - dwLockType: Longint) : HRESULT;stdcall; - Function Stat(out statstg : TStatStg; grfStatFlag: Longint): HRESULT;stdcall; - function Clone(out stm : IStream) : HRESULT; stdcall; - end; - *) - IEnumSTATSTG = Interface (IUnknown) - ['{0000000d-0000-0000-C000-000000000046}'] - Function Next (Celt:ULong;Out xcelt;pceltfetched : PUlong):HResult; StdCall; -// Function RemoteNext(Celt:Ulong; Out Celt;pceltfetched : PUlong); - Function Skip(Celt:ULong):HResult; StdCall; - Function Reset:HResult; StdCall; - Function Clone(Out penum:IEnumStatSTG):HResult; StdCall; - End; - - IStorage = Interface (IUnknown) - ['{0000000b-0000-0000-C000-000000000046}'] - Function CreateStream(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStream):HResult; StdCall; - Function OpenStream(pwcsname:POleStr;Reserved1:Pointer;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall; -// Function RemouteOpenStream(pwcsname:POleStr;cbReserved1:ULong;reserved1:pbyte;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall; - Function CreateStorage(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStorage):HResult; StdCall; - Function OpenStorage(pwcsname:POleStr;Const stgPriority:IStorage;grfmode : DWord;Const SNBExclude :SNB;reserved:DWord;Out stm : IStorage):HResult; StdCall; - Function CopyTo(ciidExclude:DWord; rgiidexclude:piid; const snbexclude:SNB;const pstg : IStorage):HResult;StdCall; - Function MoveElementTo(wcsName:POleStr;Const pstgDest : IStorage; - wcvsNewName:POleStr; GrfFlags:DWord):Hresult; StdCall; - Function Commit(grfCommitFlags:Dword):Hresult; StdCall; - Function Revert:HResult; StdCall; - Function EnumElements(Reserved1 :Dword;Reserved2:Pointer;Reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall; - Function RemoteEnumElements(Reserved1 :Dword;cbReserved2:ULong;Reserved2:pbyte;reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall; - Function DestroyElement(wcsName: POleStr):HResult;StdCall; - Function RenameElement(wcsoldName: POleStr;wcsnewName: POleStr):HResult;StdCall; - Function SetElementTimes(wcsName:POleStr; Const pctime,patime,pmtime : FileTime):HResult;StdCall; - Function SetClass(Const ClasId: TClsID):HResult;StdCall; - Function SetStateBits(grfStateBits:DWord;grfMask:DWord):HResult;StdCall; - Function Stat(Out pStatStg:StatStg;grfStatFlag:DWord):HResult;StdCall; - End; - - IPersistFile = Interface (IPersist) - ['{0000010b-0000-0000-C000-000000000046}'] - Function IsDirty:HResult;StdCall; - Function Load(FileName:POleStr;dwMode:DWord):HResult;StdCall; - Function Save(FileName:POleStr;fremember:Bool):HResult;StdCall; - Function SaveCompleted(FileName:POleStr):HResult;StdCall; - Function GetCurFIle(Out FileName:POleStr):HResult;StdCall; - End; - - - IPersistStorage = Interface (IPersist) - ['{0000010a-0000-0000-C000-000000000046}'] - Function IsDirty:HResult;StdCall; - Function InitNew(const pstg:IStorage):HResult;StdCall; - Function Load(const pstg:IStorage):HResult;StdCall; - Function Save(const pstg:IStorage;FSameAsLoad:Boolean):HResult;StdCall; - Function SaveCompleted(const pstg:IStorage):HResult;StdCall; - Function HandsOffStorage:HResult;StdCall; - End; - - ILockBytes = Interface (IUnknown) - ['{0000000a-0000-0000-C000-000000000046}'] - Function ReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall; -// Function RemoteReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall; - Function WriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall; -// Function RemoteWriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall; - Function Flush:HResult;StdCall; - Function SetSize(cb:ULarge_Integer):HResult;StdCall; - Function LockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall; - Function UnlockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall; - Function Stat(Out pstatstg:STATSTG;grfstatFlag:DWord):HResult;StdCall; - End; - - - IEnumFORMATETC = Interface (IUnknown) - ['{00000103-0000-0000-C000-000000000046}'] - Function Next(Celt:ULong;Out Rgelt:FormatEtc;pceltFetched:pULong=nil):HResult; StdCall; -// Function RemoteNext(Celt:ULong;Out Rgelt:FormatEtc; pceltFetched:pULong=nil):HResult; StdCall; - Function Skip(Celt:ULong):HResult;StdCall; - Function Reset:HResult;StdCall; - Function Clone(out penum:IEnumFORMATETC):HResult;StdCall; - End; - - IEnumSTATDATA = Interface (IUnknown) - ['{00000105-0000-0000-C000-000000000046}'] - Function Next(Celt:ULong;Out Rgelt:statdata; pceltFetched:pULong=nil):HResult; StdCall; -// Function RemoteNext(Celt:ULong;Out Rgelt:statdata;Out pceltFetched:ULong):HResult; StdCall; - Function Skip(Celt:ULong):HResult;StdCall; - Function Reset:HResult;StdCall; - Function Clone(out penum:IEnumstatdata):HResult;StdCall; - End; - - - - IRootStorage = Interface (IUnknown) - ['{00000012-0000-0000-C000-000000000046}'] - Function SwitchToFile(pszfile:PoleStr):HResult;StdCall; - End; - - - - IAdviseSink = Interface (IUnknown) - ['{0000010f-0000-0000-C000-000000000046}'] - {$ifdef midl500} ['{00000150-0000-0000-C000-000000000046}'] {$endif} - Procedure OnDataChange (Const pformatetc : Formatetc;const pstgmed : STGMEDIUM); StdCall; - Procedure OnViewChange (dwAspect : DWord; lindex : Long); StdCall; - Procedure OnRename (Const pmk : IMoniker); StdCall; - Procedure OnSave; StdCall; - Procedure OnClose; StdCall; - End; - - IAdviseSink2 = Interface (IAdviseSink) - ['{00000125-0000-0000-C000-000000000046}'] - Procedure OnLinkSrcChange(Const Pmk: IMoniker); StdCall; - End; - - - IDataObject = Interface (IUnknown) - ['{0000010e-0000-0000-C000-000000000046}'] - Function GetData(Const formatetcIn : FORMATETC;Out medium : STGMEDIUM):HRESULT; STDCALL; - Function GetDataHere(CONST pformatetc : FormatETC; Out medium : STGMEDIUM):HRESULT; STDCALL; - Function QueryGetData(const pformatetc : FORMATETC):HRESULT; STDCALL; - Function GetCanonicalFormatEtc(const pformatetcIn : FORMATETC;Out pformatetcOut : FORMATETC):HResult; STDCALl; - Function SetData (Const pformatetc : FORMATETC;const medium:STGMEDIUM;FRelease : BOOL):HRESULT; StdCall; - Function EnumFormatEtc(dwDirection : DWord; OUT enumformatetcpara : IENUMFORMATETC):HRESULT; StdCall; - Function DAdvise(const formatetc : FORMATETC;advf :DWORD; CONST AdvSink : IAdviseSink;OUT dwConnection:DWORD):HRESULT;StdCall; - Function DUnadvise(dwconnection :DWord) :HRESULT;StdCall; - Function EnumDAdvise(Out enumAdvise : IEnumStatData):HResult;StdCall; - End; - - IDataAdviseHolder = Interface (IUnknown) - ['{00000110-0000-0000-C000-000000000046}'] - Function Advise (CONST pdataObject : IDataObject;CONST fetc:FORMATETC;advf : DWORD;Const pAdvise:IAdviseSink;Out DwConnection:DWord):HResult; StdCall; - Function Unadvise (dwConnection:Dword):HResult; StdCall; - Function EnumAdvise(out penumAdvise : IEnumStatData):HResult;StdCall; - Function SendOnDataChange(const pDataObject :IDataObject;DwReserved,advf : DWord):HResult; StdCall; - End; - - - - - IMessageFilter = Interface (IUnknown) - ['{00000016-0000-0000-C000-000000000046}'] - Function HandleInComingCall(dwCallType :DWord;htaskCaller : HTASK; dwTickCount: DWORD;CONST sinterfaceinfo:InterfaceInfo):DWord; StdCall; - Function RetryRejectedCall (htaskCallee:HTASK; dwTickCount : DWord; dwRejectType : Dword):DWord; StdCall; - Function MessagePending (htaskCallee:HTASK; dwTickCount : DWord; dwPendingType : Dword):DWord; StdCall; - End; - -//**************************************************************************** -//* Object Remoting Interfaces -//**************************************************************************** - - - - IRpcChannelBuffer = Interface (IUnknown) - ['{D5F56B60-593B-101A-B569-08002B2DBF7A}'] - Function GetBuffer (Const pMesasge : RPCOLEMESSAGE;Const riid :TIId):HResult; StdCall; - Function SendReceive(Var pMessage : RPCOLEMESSAGE; Out PStatus : ULong):HResult; StdCall; - Function FreeBuffer(Const pMessage : RPCOLEMESSAGE):HResult; StdCall; - Function GetDestCTX(Out dwDestContext : DWord;Out pvDestContext : Pointer):HResult; StdCall; - Function IsConnected:HResult; StdCall; - End; - - IRpcChannelBuffer2 = Interface (IRpcChannelBuffer) - ['{594f31d0-7f19-11d0-b194-00a0c90dc8bf}'] - Function GetProtocolVersion(Var dwVersion : DWord):HResult; StdCall; - End; - - - IAsyncRpcChannelBuffer = Interface (IRpcChannelBuffer2) - ['{a5029fb6-3c34-11d1-9c99-00c04fb998aa}'] - Function Send(Var Msg: RPCOLEMESSAGE;Const pSync : ISynchronize;Out PulStatus : ULong):HResult; StdCall; - Function Receive(Var Msg: RPCOLEMESSAGE;Out PulStatus : ULong):HResult; StdCall; - Function GetDestCTXEx(Out MSG : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall; - End; - - IRpcChannelBuffer3 = Interface (IRpcChannelBuffer2) - ['{25B15600-0115-11d0-BF0D-00AA00B8DFD2}'] - Function Send(Var msg : RPCOLEMESSAGE;Out ulStatus : ULONG):HResult; StdCall; - Function Receive(Var msg : RPCOLEMESSAGE;ulSize : ULong;Out ulStatus : ULONG):HResult; StdCall; - Function Cancel (Const msg : RPCOLEMESSAGE):HResult; StdCall; - Function GetCallContext(Const msg : RPCOLEMESSAGE; Const riid : TIID; Out pInterface : Pointer):HResult; StdCall; - Function GetDestCTXEx(Const Msg : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall; - Function GetState(Const Msg : RPCOLEMESSAGE;Out State: DWord):HResult;StdCall; - Function RegisterAsync(Const Msg : RPCOLEMESSAGE;Const asyncmgr : IAsyncManager):HResult;StdCall; - End; - - IRpcSyntaxNegotiate = Interface (IUnknown) - ['{58a08519-24c8-4935-b482-3fd823333a4f}'] - Function NegotiateSyntax ( Var msg : RPCOLEMESSAGE):HResult; StdCall; - End; - - - - - IRpcProxyBuffer = Interface (IUnknown) - ['{D5F56A34-593B-101A-B569-08002B2DBF7A}'] - Function Connect(Const rpcchannelbuffer : IRpcChannelBuffer):HResult; StdCall; - Procedure Disconnect; - End; - - IRpcStubBuffer = Interface (IUnknown) - ['{D5F56AFC-593B-101A-B569-08002B2DBF7A}'] - Function COnnect ( Const UnkServer : IUnknown):HResult; StdCall; - Procedure Disconnect; StdCall; - Function Invoke(Const rpcmsg : RPCOLEMESSAGE;Const RpcChanBuf : IRpcChannelBuffer):HResult; StdCall; - Function IsIIDSupported (Const riid : TIID):Pointer {IRpcStubBuffer}; StdCall; - Function CountRefs :ULong; StdCall; - Function DebugServerQueryInterface(CONST pv : Pointer):HResult; StdCall; - Procedure DebugServerRelease (pv : Pointer); StdCall; - End; - - IPSFactoryBuffer = Interface (IUnknown) - ['{D5F569D0-593B-101A-B569-08002B2DBF7A}'] - Function CreateProxy(Const UnkOuter : IUnknown;const riid : TIID; Out proxy: IRpcProxyBuffer; Out Pv :Pointer):HResult; StdCall; - Function CreateStub (Const riid : TIID; Const UnkServer : IUnknown; Out pstub : IRpcStubBuffer):HResult; StdCall; - End; - -{$ifdef NT4_greater_Or_DCOM} -// This interface is only valid on Windows NT 4.0 - -// This structure contains additional data for hooks. As a backward -// compatability hack, the entire structure is passed in place of the -// RIID parameter on all hook methods. Thus the IID must be the first -// parameter. As a forward compatability hack the second field is the -// current size of the structure. - - SChannelHookCallInfo= Record; - IID : iid; - cbSize : Dword; - uCausality : GUID; - dwServerPid, - iMethod : DWord; - pObject : Pointer; - End; - - - - IChannelHook = Interface (IUnknown) - ['{1008c4a0-7613-11cf-9af1-0020af6e72f4}'] - Procedure ClientGetSize(Const uExtent : TGuid; CONST riid : TIID; Out datasize :ULong); StdCall; - Procedure ClientFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer); StdCall; - Procedure ClientNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;hrfault:HResult); StdCall; - Procedure ServerNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;DataRep:DWord); StdCall; - Procedure ServerGetSize(Const uExtent : TGuid; CONST riid : TIID;hrFault :HResult; Out datasize :ULong); StdCall; - Procedure ServerFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer;HrFault:HResult); StdCall; - End; -{$Endif} - - -// Well-known Property Set Format IDs -//FMTID_SummaryInformation = {CONST} FMTID; -//FMTID_DocSummaryInformation = {CONST} FMTID; -//FMTID_UserDefinedProperties = {CONST} FMTID; -//FMTID_DiscardableInformation = {CONST} FMTID; -//FMTID_ImageSummaryInformation = {CONST} FMTID; -//FMTID_AudioSummaryInformation = {CONST} FMTID; -//FMTID_VideoSummaryInformation = {CONST} FMTID; -//FMTID_MediaFileSummaryInformation = {CONST} FMTID; - - -//**************************************************************************** -// * Connection Point Interfaces -// ****************************************************************************/ - -//#ifdef __INCLUDE_CPIFS - IConnectionPointContainer = Interface; -//interface IConnectionPoint; -//interface IEnumConnections; - IEnumConnectionPoints = Interface; - IEnumConnections = Interface; - - - IConnectionPoint = Interface (IUnknown) - ['{B196B286-BAB4-101A-B69C-00AA00341D07}'] - Function GetConnectionInterface(out piid : TIID):HResult;StdCall; - Function GetConnectionPointContainer(CPC : IConnectionPointContainer):HResult;StdCall; - Function Advise(unkSink : IUnknown;Out dwCookie : DWord):HResult;StdCall; - Function UnAdvise(dwCookie : DWord):HResult;StdCall; - Function EnumConnection(out pEnum : IEnumConnections):HResult;stdCall; - End; - - IConnectionPointContainer = Interface (IUnknown) - ['{B196B284-BAB4-101A-B69C-00AA00341D07}'] - Function EnumConnectionPoints(out pEnum : IEnumConnectionPoints):HResult;StdCall; - Function FindConnectionPoint(Const RIID : TIID;Out ppcp : IConnectionPoint):HResult;StdCall; - End; - - tagCONNECTDATA = Record - unk : Pointer; {IUnknown} - dwCookie : DWord; - End; - ConnectData = tagCONNECTDATA; - - IEnumConnections = Interface (IUnknown) - ['{B196B287-BAB4-101A-B69C-00AA00341D07}'] - Function Next(cConnections : ULong; Out rgcd : ConnectData; lpcFetched : pULong=nil):HResult;StdCall; - Function Skip(cConnections : ULong):HResult;StdCall; - Function Reset:HResult;StdCall; - Function Clone(Out pEnum : IEnumConnections):HResult; StdCall; - End; - - - IEnumConnectionPoints = Interface (IUnknown) - ['{B196B285-BAB4-101A-B69C-00AA00341D07}'] - Function Next(cConnections : ULong; Out rgpcm : IConnectionPoint; lpcFetched : pULong=nil):HResult;StdCall; - Function Skip(cConnections : ULong):HResult;StdCall; - Function Reset:HResult;StdCall; - Function Clone(Out pEnum : IEnumConnectionPoints):HResult;StdCall; - End; - - - - tagSOLE_AUTHENTICATION_SERVICE = Record - dwAuthnSvc, - dwAuthzSvc : DWord; - pPrincipalName : POleStr; - hr : HResult; - End; - SOLE_AUTHENTICATION_SERVICE = tagSOLE_AUTHENTICATION_SERVICE; - PSOLE_AUTHENTICATION_SERVICE = ^SOLE_AUTHENTICATION_SERVICE; - - tagSOLE_AUTHENTICATION_INFO = Record - dwAuthnSvc, - dwAuthzSvc : DWord; - AuthInfo : Pointer; - End; - SOLE_AUTHENTICATION_INFO = tagSOLE_AUTHENTICATION_INFO; - PSOLE_AUTHENTICATION_INFO = ^SOLE_AUTHENTICATION_INFO; - - tagSOLE_AUTHENTICATION_LIST = Record - cAuthInfo : DWord; - AuthInfo : PSOLE_AUTHENTICATION_INFO; - End; - SOLE_AUTHENTICATION_LIST = tagSOLE_AUTHENTICATION_LIST; - PSOLE_AUTHENTICATION_LIST = ^SOLE_AUTHENTICATION_LIST; - -{$ifdef WINNT_DCOM} - - IClientSecurity = Interface (IUnknown) - ['{0000013D-0000-0000-C000-000000000046}'] - Function QueryBlanket (Proxy : IUnknown;Out AuthnSvc,AuthzSvc : Dword;Out ServerPrincName:pOleStr;Out AuthnLevel,ImpLevel:Dword; Out AuthInfo : Pointer; Out Capabilities : Dword):HResult;StdCall; - Function SetBlanket (Proxy : IUnknown;AuthnSvc,AuthzSvc : Dword;ServerPrincName:pOleStr;AuthnLevel,ImpLevel:Dword;AuthInfo : Pointer;Capabilities : Dword):HResult;StdCall; - Function CopyProxy (Proxy : IUnknown;Out pcopy:IUnknown):HResult;StdCall; - End; - - IServerSecurity = Interface (IUnknown) - ['{0000013E-0000-0000-C000-000000000046}'] - Function QueryBlanket ( out authnSvc,AuthzSvc : DWord; Out pServerPrincName : pOleStr; Out AuthnLevel, ImpLevel; :DWord; out Privs : Pointer; Var Capabilities :DWord):HResult;StdCall; - Function ImpersonateClient:HResult;StdCall; - Function RevertToSelf:HResult;StdCall; - Function IsImpersonating:Bool;StdCall; - End; - - IClassActivator = Interface (IUnknown) - ['{00000140-0000-0000-C000-000000000046}'] - Function GetClassObject(Const rclsif : TClsID; ClassContext : DWord; locale : LCID; Const ridd : TIID; Out pv : Pointer):HResult;StdCall; - End; - - - IRpcOptions = Interface (IUnknown) - ['{00000144-0000-0000-C000-000000000046}'] - Function xSet (prx : IUnknown;dwProperty : DWord; dwValue:ULONG_PTR):HResult; StdCall; - Function Query (prx : IUnknown;dwProperty:Dword; dwValue:ULONG_PTR):HResult; StdCall; - End; - -{$endif} {DCOM} - - IFillLockBytes = Interface (IUnknown) - ['{99caf010-415e-11cf-8814-00aa00b569f5}'] - Function FillAppend(const pv : Pointer;cb:ULong; Out PcbWritten : ULong):HResult;StdCall; - Function FillAt(ulOffset : ULarge_INTEGER;Const pv : Pointer;cb :ULong; Out pcbWritten:ULong):HResult;StdCall; - Function SetFillSize ( ulSize :ULarge_Integer):HResult;StdCall; - Function Terminate (bCanceled :Bool):HResult;StdCall; - End; - - IProgressNotify = Interface (IUnknown) - ['{a9d758a0-4617-11cf-95fc-00aa00680db4}'] - Function OnProgress (ProgressCurrent,ProgressMaximum :Dword; FAccurate,Fowner : Bool):HResult;StdCall; - End; - - ILayoutStorage = Interface (IUnknown) - ['{0e6d4d90-6738-11cf-9608-00aa00680db4}'] - {The methods in this interface all had "__stdcall" as modifier, while the other classes don't. ?!?!?} - Function LayoutScript ( xStorageLayout : StorageLayout;nEntries,glfInterleaveFlag : Dword) :HResult; StdCall; - Function BeginMonitor:HResult;StdCall; - Function EndMonitor:HResult;StdCall; - Function ReLayourDocFile(pwcsNewDFName :pOleStr):HResult;StdCall; - Function ReLayoutDocfileOnILockBytes(LockBytes : ILockBytes):Hresult;StdCall; - End; - - IBlockingLock = Interface (IUnknown) - ['{30f3d47a-6447-11d1-8e3c-00c04fb9386d}'] - Function Lock (dwTimeOut : DWord) : HResult;Stdcall; - Function Unlock : HResult;Stdcall; - End; - - ITimeAndNoticeControl = Interface (IUnknown) - ['{bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4}'] - Function SuppressChanges(res1,res2 : Dword):HResult;StdCall; - End; - - IOplockStorage = Interface (IUnknown) - ['{8d19c834-8879-11d1-83e9-00c04fc2c6d4}'] - Function CreateStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall; - Function OpenStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall; - End; - - ISurrogate = Interface (IUnknown) - ['{00000022-0000-0000-C000-000000000046}'] - Function LoadDllServer (Const ClsId : TClsId):HResult;StdCall; - Function FreeSurrogate:HResult;StdCall; - End; - - IGlobalInterfaceTable = Interface (IUnknown) - ['{00000146-0000-0000-C000-000000000046}'] - Function RegisterInterfaceInGlobal(unk :IUnknown;Const riid : TIID; Out dwcookie :DWord):HResult;StdCall; - Function RevokeInterfaceFromGlobal (dwCookie :DWord):HResult;StdCall; - Function GetInterfaceFromGlobal (dwCookie :DWord;Const riid : TIID;out pv : Pointer):HResult;StdCall; - End; - - IDirectWriterLock = Interface (IUnknown) - ['{0e6d4d92-6738-11cf-9608-00aa00680db4}'] - Function WaitForWriteAccess (dwTimeOut : DWORD):HResult;StdCall; - Function ReleaseWriteAccess:HResult;StdCall; - Function HaveWriteAccess:HResult;StdCall; - End; - - ISynchronize = Interface (IUnknown) - ['{00000030-0000-0000-C000-000000000046}'] - Function Wait (dwFlags : DWord; dwMilliSeconds : DWord):HResult;StdCall; - Function Signal : HResult;StdCall; - Function Reset : HResult;StdCall; - End; - - ISynchronizeHandle = Interface (IUnknown) - ['{00000031-0000-0000-C000-000000000046}'] - Function GetHandle(Out ph : Handle):HResult;StdCall; - End; - - ISynchronizeEvent = Interface (ISynchronizeHandle) - ['{00000032-0000-0000-C000-000000000046}'] - Function SetEventHandle (Const ph : Handle):HResult; StdCall; - End; - - ISynchronizeContainer = Interface (IUnknown) - ['{00000033-0000-0000-C000-000000000046}'] - Function AddSynchronize(pSync : ISynchronize):HResult; StdCall; - Function WaitMultiple(dwFlags : Dword; dwTimeOut : Dword; Out pSync : ISynchronize):HResult;StdCall; - End; - - ISynchronizeMutex = Interface (ISynchronize) - ['{00000025-0000-0000-C000-000000000046}'] - Function ReleaseMutex:HResult; StdCall; - End; - - ICancelMethodCalls = Interface (IUnknown) - ['{00000029-0000-0000-C000-000000000046}'] - Function Cancel(ulSeconds : ULong):HResult; StdCall; - Function TestCancel:HResult;StdCall; - End; - - IAsyncManager = Interface (IUnknown) - ['{0000002A-0000-0000-C000-000000000046}'] - Function CompleteCall (xResult : HResult):HResult;StdCall; - Function GetCallContext(Const iid :TIID; Out pInterface : Pointer):HResult;StdCall; - Function GetState(Out pulStateFlags : ULong):HResult;StdCall; - End; - - ICallFactory = Interface (IUnknown) - ['{1c733a30-2a1c-11ce-ade5-00aa0044773d}'] - Function CreateCall(Const riid:TIID;CtrUnk : IUnknown;Const Riid2:TIID;Out Unknown : IUnknown):HResult;StdCall; - End; - - IRpcHelper = Interface (IUnknown) - ['{00000149-0000-0000-C000-000000000046}'] - Function GetDCOMProtocolVersion(Out ComVersion :DWord):HResult;StdCall; - Function GettIIDFromOBJREF(ObjRef : Pointer;Out xIID : piid):HResult;StdCall; - End; - - IReleaseMarshalBuffers = Interface (IUnknown) - ['{eb0cb9e8-7996-11d2-872e-0000f8080859}'] - Function ReleaseMarshalBuffer(const pnsg : RPCOLEMESSAGE;dwFlags:DWord;Const pchn : IUnknown):HResult; StdCall; - End; - - IWaitMultiple = Interface (IUnknown) - ['{0000002B-0000-0000-C000-000000000046}'] - Function WaitMulitple(TImeout :DWord;out psync : ISynchronize):HResult; StdCall; - Function AddSynchronize (const psync : ISynchronize):HResult;StdCall; - End; - - IUrlMon = Interface (IUnknown) - ['{00000026-0000-0000-C000-000000000046}'] - Function AsyncGetClassBits(CONST rclsif : TClsID; psztype,pzext : lpcwstr; dwfileversionMS,dwFileVersionLS : DWord; pzcodebase : LPCWSTR; Const pbc : IBindCTX; dwclasscontext : DWord; const Riid:TIID; flags :DWORD):HResult; StdCall; - End; - - IForegroundTransfer = Interface (IUnknown) - ['{00000145-0000-0000-C000-000000000046}'] - Function AllowForegroundTransfer(lpvReserved:Pointer):HResult; StdCall; - End; - - IAddrTrackingControl = Interface (IUnknown) - ['{00000147-0000-0000-C000-000000000046}'] - Function EnableCOMDynamicAddrTracking:HResult; StdCall; - Function DisableCOMDynamicAddrTracking:HResult; StdCall; - End; - - IAddrExclusionControl = Interface (IUnknown) - ['{00000148-0000-0000-C000-000000000046}'] - Function GetCurrentAddrExclusionList(Const riid : TIID;out Enumerator : Pointer):HResult;StdCall; - Function UpdateAddrExclusionList(Enumerator : IUnknown):HResult;StdCall; - End; - -//**************************************************************************** -//* Pipe interfaces -//****************************************************************************/ - -// Doesn't look translatable. See objidl.idl - -//**************************************************************************** -//* Thumbnail generator interface -//****************************************************************************/ - - IThumbnailExtractor = Interface (IUnknown) - ['{969dc708-5c76-11d1-8d86-0000f804b057}'] - Function ExtractThumbnail (pStg : IStorage; uLength,UHeight : ULong; Out uloutputlength,Height :ULong; Out OutputBitmap : HBITMAP): HResult; StdCall; - Function OnFileUpdated (pStg : IStorage):HResult; - End; - -//**************************************************************************** -//* Dummy Interface to force inclusion of HICON and HDC in proxy/stub code.... -//****************************************************************************/ - - IDummyHICONIncluder = Interface (IUnknown) - ['{947990de-cc28-11d2-a0f7-00805f858fb1}'] - Function Dummy (h1 : HICON; H2 :HDC):HResult; - End; - - IComThreadingInfo = Interface (IUnknown) - ['{000001ce-0000-0000-C000-000000000046}'] - Function GetCurrentApartmentType(out pAptType : DWord {APTTTYPE}):HResult; - Function GetCurrentThreadType(Out ThreadType : Dword {THDTTYPE}):HResult;StdCall; - Function GetCurrentLogicalThreadID(Out guidlogicalThreadId : TGUID):HResult;StdCall; - Function SetCurrentLogicalThreadID(Const guidlogicalThreadId : TGUID):HResult;StdCall; - End; - - IProcessInitControl = Interface (IUnknown) - ['{72380d55-8d2b-43a3-8513-2b6ef31434e9}'] - Function ResetInitializerTimeout(dwSecondsRemaining:DWord):HResult; StdCall; - End; - - -// Interfaces from OAIDL.IDL - - ITypeInfo = Interface; - - ICreateTypeInfo = Interface (IUnknown) - ['{00020405-0000-0000-C000-000000000046}'] - Function SetGuid(CONST guid: TGUID):HResult;StdCall; - Function SetTypeFlags(uTypeFlags: UINT):HResult;StdCall; - Function SetDocString(pStrDoc: pOleStr):HResult;StdCall; - Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall; - Function SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall; - Function AddRefTypeInfo(CONST pTInfo: ITypeInfo; CONST phRefType: HREFTYPE):HResult;StdCall; - Function AddFuncDesc(index: UINT; CONST pFuncDesc: FUNCDESC):HResult;StdCall; - Function AddImplType(index: UINT; hRefType: HREFTYPE):HResult;StdCall; - Function SetImplTypeFlags(index: UINT; implTypeFlags: WINT):HResult;StdCall; - Function SetAlignment(cbAlignment: WORD):HResult;StdCall; - Function SetSchema(pStrSchema: pOleStr):HResult;StdCall; - Function AddVarDesc(index: UINT; CONST pVarDesc: VARDESC):HResult;StdCall; - Function SetFuncAndParamNames(index: UINT; CONST rgszNames: pOleStr; cNames: UINT):HResult;StdCall; - Function SetVarName(index: UINT; szName: pOleStr):HResult;StdCall; - Function SetTypeDescAlias(CONST pTDescAlias: TYPEDESC):HResult;StdCall; - Function DefineFuncAsDllEntry(index: UINT; szDllName: pOleStr; szProcName: pOleStr):HResult;StdCall; - Function SetFuncDocString(index: UINT; szDocString: pOleStr):HResult;StdCall; - Function SetVarDocString(index: UINT; szDocString: pOleStr):HResult;StdCall; - Function SetFuncHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall; - Function SetVarHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall; - Function SetMops(index: UINT; Const bstrMops: WideString):HResult;StdCall; - Function SetTypeIdldesc(CONST pIdlDesc: IDLDESC):HResult;StdCall; - Function LayOut():HResult;StdCall; - End; - - ICreateTypeInfo2 = Interface (ICreateTypeInfo) - ['{0002040E-0000-0000-C000-000000000046}'] - Function DeleteFuncDesc(index: UINT):HResult;StdCall; - Function DeleteFuncDescByMemId(memid: MEMBERID; invKind: INVOKEKIND):HResult;StdCall; - Function DeleteVarDesc(index: UINT):HResult;StdCall; - Function DeleteVarDescByMemId(memid: MEMBERID):HResult;StdCall; - Function DeleteImplType(index: UINT):HResult;StdCall; - Function SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall; - Function SetFuncCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall; - Function SetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall; - Function SetVarCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall; - Function SetImplTypeCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall; - Function SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall; - Function SetFuncHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall; - Function SetVarHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall; - Function Invalidate():HResult;StdCall; - Function SetName(szName: pOleStr):HResult;StdCall; - End; - - ICreateTypeLib = Interface (IUnknown) - ['{00020406-0000-0000-C000-000000000046}'] - Function CreateTypeInfo(szName: pOleStr; tkind: TYPEKIND; OUT ppCTInfo: ICreateTypeInfo):HResult;StdCall; - Function SetName(szName: pOleStr):HResult;StdCall; - Function SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall; - Function SetGuid(CONST guid: TGUID):HResult;StdCall; - Function SetDocString(szDoc: pOleStr):HResult;StdCall; - Function SetHelpFileName(szHelpFileName: pOleStr):HResult;StdCall; - Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall; - Function SetLcid(lcid: LCID):HResult;StdCall; - Function SetLibFlags(uLibFlags: UINT):HResult;StdCall; - Function SaveAllChanges():HResult;StdCall; - End; - - ICreateTypeLib2 = Interface (ICreateTypeLib) - ['{0002040F-0000-0000-C000-000000000046}'] - Function DeleteTypeInfo(szName: pOleStr):HResult;StdCall; - Function SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall; - Function SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall; - Function SetHelpStringDll(szFileName: pOleStr):HResult;StdCall; - End; - - IEnumVARIANT = Interface (IUnknown) - ['{00020404-0000-0000-C000-000000000046}'] - {$ifndef Call_as} - Function Next(celt: ULONG; OUT rgVar: VARIANT; pCeltFetched: pULONG=nil):HResult;StdCall; - {$else} - Function Next(celt: ULONG; OUT rgVar: VARIANT; pCeltFetched: pULONG=nil):HResult;StdCall; - {$endif} - Function Skip(celt: ULONG):HResult;StdCall; - Function Reset():HResult;StdCall; - Function Clone(OUT ppEnum: IEnumVARIANT):HResult;StdCall; - End; - - ITypeComp = Interface (IUnknown) - ['{00020403-0000-0000-C000-000000000046}'] - {$ifndef Call_as} - Function Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT pBindPtr: BINDPTR):HResult;StdCall; - Function BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT ppTComp: ITypeComp):HResult;StdCall; - {$else} - Function Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT ppFuncDesc: LPFUNCDESC; OUT ppVarDesc: LPVARDESC; O - Function BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo):HResult;StdCall; - {$endif} - End; - - ITypeInfo = Interface (IUnknown) - ['{00020401-0000-0000-C000-000000000046}'] - {$ifndef Call_as} - Function GetTypeAttr(OUT ppTypeAttr: lpTYPEATTR):HResult;StdCall; - {$else} - Function GetTypeAttr(OUT ppTypeAttr: LPTYPEATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall; - {$endif} - Function GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall; - {$ifndef Call_as} - Function GetFuncDesc(index: UINT; OUT ppFuncDesc: lpFUNCDESC):HResult;StdCall; - Function GetVarDesc(index: UINT; OUT ppVarDesc: lpVARDESC):HResult;StdCall; - Function GetNames(memid: MEMBERID; rgBstrNames: PBStrList; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall; - {$else} - Function GetFuncDesc(index: UINT; OUT ppFuncDesc: LPFUNCDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall; - Function GetVarDesc(index: UINT; OUT ppVarDesc: LPVARDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall; - Function GetNames(memid: MEMBERID; rgBstrNames: PBStrList; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall; - {$endif} - Function GetRefTypeOfImplType(index: UINT; OUT pRefType: HREFTYPE):HResult;StdCall; - Function GetImplTypeFlags(index: UINT; OUT pImplTypeFlags: WINT):HResult;StdCall; - {$ifndef Call_as} - Function GetIDsOfNames(CONST rgszNames: pOleStr; cNames: UINT; OUT pMemId: MEMBERID):HResult;StdCall; - {$else} - Function LocalGetIDsOfNames():HResult;StdCall; - {$endif} - {$ifndef Call_as} - Function Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: WORD; VAR pDispParams: DISPPARAMS; OUT pVarResult: VARIANT; OUT pExcepInfo: EXCEPINFO; OUT puArgErr: UINT):HResult;StdCall; - {$else} - Function LocalInvoke ():HResult;StdCall; - {$endif} - {$ifndef Call_as} - //Function GetDocumentation(memid: MEMBERID; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall; - Function GetDocumentation(memid: MEMBERID; pBstrName: PWideString; pBstrDocString: PWideString; pdwHelpContext: PDWORD; pBstrHelpFile: PWideString):HResult;StdCall; - {$else} - Function GetDocumentation(memid: MEMBERID; refPtrFlags: DWORD; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall; - {$endif} - - {$ifndef Call_as} - Function GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall; - {$else} - Function GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; refPtrFlags: DWORD; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall; - {$endif} - - Function GetRefTypeInfo(hRefType: HREFTYPE; OUT ppTInfo: ITypeInfo):HResult;StdCall; - - {$ifndef Call_as} - Function AddressOfMember(memid: MEMBERID; invKind: INVOKEKIND; OUT ppv: Pointer):HResult;StdCall; - {$else} - Function LocalAddressOfMember():HResult;StdCall; - {$endif} - - {$ifndef Call_as} - Function CreateInstance(CONST pUnkOuter: IUnknown; CONST riid: TIID; OUT ppvObj: Pointer):HResult;StdCall; - {$else} - Function CreateInstance(CONST riid: TIID; OUT ppvObj: pIUnknown):HResult;StdCall; - {$endif} - Function GetMops(memid: MEMBERID; OUT pBstrMops: WideString):HResult;StdCall; - {$ifndef Call_as} - Function GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall; - {$else} - Function GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall; - {$endif} - {$ifndef Call_as} - Procedure ReleaseTypeAttr( pTypeAttr: pTypeAttr); StdCall; - {$else} - Function ReleaseTypeAttr():HResult;StdCall; - {$endif} - - {$ifndef Call_as} - Procedure ReleaseFuncDesc( pFuncDesc : lpFUNCDESC); StdCall; - {$else} - Function LocalReleaseFuncDesc():HResult;StdCall; - {$endif} - {$ifndef Call_as} - Procedure ReleaseVarDesc( pVarDesc : lpVarDesc); stdcall; - {$else} - Function LocalReleaseVarDesc():HResult;StdCall; - {$endif} - End; - - ITypeInfo2 = Interface (ITypeInfo) - ['{00020412-0000-0000-C000-000000000046}'] - Function GetTypeKind(OUT xpTypeKind: TYPEKIND):HResult;StdCall; - Function GetTypeFlags(OUT pTypeFlags: ULONG):HResult;StdCall; - Function GetFuncIndexOfMemId(memid: MEMBERID; invKind: INVOKEKIND; OUT pFuncIndex: UINT):HResult;StdCall; - Function GetVarIndexOfMemId(memid: MEMBERID; OUT pVarIndex: UINT):HResult;StdCall; - Function GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall; - Function GetFuncCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall; - Function GetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall; - Function GetVarCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall; - Function GetImplTypeCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall; - {$ifndef Call_as} - Function GetDocumentation2(memid: MEMBERID; lcid: LCID; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall; - {$else} - Function GetDocumentation2(memid: MEMBERID; lcid: LCID; refPtrFlags: DWORD; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall; - {$endif} - Function GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall; - Function GetAllFuncCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall; - Function GetAllParamCustData(indexFunc: UINT; indexParam: UINT; OUT pCustData: CUSTDATA):HResult;StdCall; - Function GetAllVarCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall; - Function GetAllImplTypeCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall; - End; - - ITypeLib = Interface (IUnknown) - ['{00020402-0000-0000-C000-000000000046}'] - {$ifndef Call_as} - Function GetTypeInfoCount:UINT; StdCall; - {$else} - Function GetTypeInfoCount(OUT pcTInfo: UINT):HResult;StdCall; - {$endif} - Function GetTypeInfo(index: UINT; OUT ppTInfo: ITypeInfo):HResult;StdCall; - Function GetTypeInfoType(index: UINT; OUT pTKind: TYPEKIND):HResult;StdCall; - Function GetTypeInfoOfGuid(CONST guid: TGUID; OUT ppTinfo: ITypeInfo):HResult;StdCall; - {$ifndef Call_as} - Function GetLibAttr(OUT ppTLibAttr: lpTLIBATTR):HResult;StdCall; - {$else} - Function GetLibAttr(OUT ppTLibAttr: LPTLIBATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall; - {$endif} - - Function GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall; - {$ifndef Call_as} - Function GetDocumentation(index: WINT; pBstrName: PWideString; pBstrDocString: PWideString; pdwHelpContext: PDWORD; pBstrHelpFile: PWideString):HResult;StdCall; - {$else} - Function GetDocumentation(index: WINT; refPtrFlags: DWORD; pBstrName: PWideString; pBstrDocString: PWideString; pdwHelpContext: PDWORD; pBstrHelpFile: PWideString):HResult;StdCall; - {$endif} - - {$ifndef Call_as} - Function IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL):HResult;StdCall; - {$else} - Function IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL; OUT pBstrLibName: WideString):HResult;StdCall; - {$endif} - {$ifndef Call_as} - Function FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT):HResult;StdCall; - {$else} - Function FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT; OUT pBstrLibName: WideString):HResult;StdCall; - {$endif} - {$ifndef Call_as} - Procedure ReleaseTLibAttr( pTLibAttr : LPTLIBATTR); StdCall; - {$else} - Function LocalReleaseTLibAttr:HResult;StdCall; - {$endif} - End; - - ITypeLib2 = Interface (ITypeLib) - ['{00020411-0000-0000-C000-000000000046}'] - Function GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall; - {$ifndef Call_as} - Function GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall; - {$else} - Function GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall; - {$endif} - {$ifndef Call_as} - Function GetDocumentation2(index: WINT; lcid: LCID; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall; - {$else} - Function GetDocumentation2(index: WINT; lcid: LCID; refPtrFlags: DWORD; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall; - {$endif} - Function GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall; - End; - - ITypeChangeEvents= Interface (IUnknown) - ['{00020410-0000-0000-C000-000000000046}'] - Function RequestTypeChange(changeKind: CHANGEKIND; CONST pTInfoBefore: ITypeInfo; pStrName: pOleStr; OUT pfCancel: WINT):HResult;StdCall; - Function AfterTypeChange(changeKind: CHANGEKIND; CONST pTInfoAfter: ITypeInfo; pStrName: pOleStr):HResult;StdCall; - End; - - IErrorInfo= Interface (IUnknown) - ['{1CF2B120-547D-101B-8E65-08002B2BD119}'] - Function GetGUID(OUT pGUID: TGUID):HResult;StdCall; - Function GetSource(OUT pBstrSource: WideString):HResult;StdCall; - Function GetDescription(OUT pBstrDescription: WideString):HResult;StdCall; - Function GetHelpFile(OUT pBstrHelpFile: WideString):HResult;StdCall; - Function GetHelpContext(OUT pdwHelpContext: DWORD):HResult;StdCall; - End; - - ICreateErrorInfo= Interface (IUnknown) - ['{22F03340-547D-101B-8E65-08002B2BD119}'] - Function SetGUID(CONST rguid: TGUID):HResult;StdCall; - Function SetSource(szSource: pOleStr):HResult;StdCall; - Function SetDescription(szDescription: pOleStr):HResult;StdCall; - Function SetHelpFile(szHelpFile: pOleStr):HResult;StdCall; - Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall; - End; - - ISupportErrorInfo= Interface (IUnknown) - ['{DF0B3D60-548F-101B-8E65-08002B2BD119}'] - Function InterfaceSupportsErrorInfo(CONST riid: TIID):HResult;StdCall; - End; - - ITypeFactory = Interface (IUnknown) - ['{0000002E-0000-0000-C000-000000000046}'] - Function CreateFromTypeInfo(CONST pTypeInfo: ITypeInfo; CONST riid: TIID; OUT ppv: IUnknown):HResult;StdCall; - End; - - ITypeMarshal = Interface (IUnknown) - ['{0000002D-0000-0000-C000-000000000046}'] - Function Size(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; OUT pSize: ULONG):HResult;StdCall; - Function Marshal(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; cbBufferLength: ULONG; OUT pBuffer: BYTE; OUT pcbWritten: ULONG):HResult;StdCall; - Function Unmarshal(pvType: Pointer; dwFlags: DWORD; cbBufferLength: ULONG; CONST pBuffer: BYTE; OUT pcbRead: ULONG):HResult;StdCall; - Function Free(pvType: Pointer):HResult;StdCall; - End; - - IRecordInfo = Interface(IUnknown) - ['{0000002F-0000-0000-C000-000000000046}'] - Function RecordInit(pvNew: Pointer):HResult;StdCall; - Function RecordClear(pvExisting: Pointer):HResult;StdCall; - Function RecordCopy(pvExisting: Pointer; pvNew: Pointer):HResult;StdCall; - Function GetGuid(OUT pguid: TGUID):HResult;StdCall; - Function GetName(OUT pbstrName: WideString):HResult;StdCall; - Function GetSize(OUT pcbSize: ULONG):HResult;StdCall; - Function GetTypeInfo(OUT ppTypeInfo: ITypeInfo):HResult;StdCall; - Function GetField(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT):HResult;StdCall; - Function GetFieldNoCopy(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT; OUT ppvDataCArray: Pointer):HResult;StdCall; - Function PutField(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall; - Function PutFieldNoCopy(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall; - Function GetFieldNames(VAR pcNames: ULONG; OUT rgBstrNames: WideString):HResult;StdCall; - Function IsMatchingType(CONST pRecordInfo : IRecordInfo):Bool;StdCall; - Function RecordCreate : Pointer; StdCall; - Function RecordCreateCopy(pvSource: Pointer; OUT ppvDest: Pointer):HResult;StdCall; - Function RecordDestroy(pvRecord: Pointer):HResult;StdCall; - End; - - IErrorLog = Interface (IUnknown) - ['{3127CA40-446E-11CE-8135-00AA004BB851}'] - Function AddError(pszPropName: pOleStr; CONST pExcepInfo: EXCEPINFO):HResult;StdCall; - End; - - - IPropertyBag = Interface (IUnknown) - ['{55272A00-42CB-11CE-8135-00AA004BB851}'] - {$ifndef Call_as} - Function Read(pszPropName: pOleStr; VAR pVar: VARIANT; CONST pErrorLog: IErrorLog):HResult;StdCall; - {$else} - Function Read(pszPropName: pOleStr; OUT pVar: VARIANT; CONST pErrorLog: IErrorLog; varType: DWORD; CONST pUnkObj: IUnknown):HResult;StdCall; - {$endif} - Function Write(pszPropName: pOleStr; CONST pVar: VARIANT):HResult;StdCall; - End; - - IEnumGUID = interface(IUnknown) - ['{0002E000-0000-0000-C000-000000000046}'] - Function Next(celt: UINT; OUT rgelt: TGUID; pceltFetched: pUINT=nil):HResult;StdCall; - Function Skip(celt:UINT):HResult;StdCall; - Function Reset: HResult;StdCall; - Function Clone(out ppenum: IEnumGUID):HResult;StdCall; - End; - - IBindHost = interface(IUnknown) - ['{FC4801A1-2BA9-11CF-A229-00AA003D7352}'] - End; - - IServiceProvider = interface(IUnknown) - ['{6D5140C1-7436-11CE-8034-00AA006009FA}'] - Function QueryService(CONST rsid, iid: TGuid; OUT Obj):HResult;StdCall; - End; - - PServiceProvider = ^IServiceProvider; - - IParseDisplayName = interface(IUnknown) - ['{0000011A-0000-0000-C000-000000000046}'] - Function ParseDisplayName(CONST bc: IBindCtx; pszDisplayName: POleStr;OUT chEaten: Longint; OUT mkOut: IMoniker): HResult;StdCall; - End; - - IOleContainer = interface(IParseDisplayName) - ['{0000011B-0000-0000-C000-000000000046}'] - Function EnumObjects(grfFlags: Longint; OUT Enum: IEnumUnknown):HResult;StdCall; - Function LockContainer(fLock: BOOL):HResult;StdCall; - End; - - IOleClientSite = interface(IUnknown) - ['{00000118-0000-0000-C000-000000000046}'] - Function SaveObject: HResult;StdCall; - Function GetMoniker(dwAssign: Longint; dwWhichMoniker: Longint;OUT mk: IMoniker):HResult;StdCall; - Function GetContainer(OUT container: IOleContainer):HResult;StdCall; - Function ShowObject:HResult;StdCall; - Function OnShowWindow(fShow: BOOL):HResult;StdCall; - Function RequestNewObjectLayout:HResult;StdCall; - End; - - IOleWindow = interface(IUnknown) - ['{00000114-0000-0000-C000-000000000046}'] - function GetWindow(out wnd: HWnd): HResult; stdcall; - function ContextSensitiveHelp(fEnterMode: BOOL): HResult; stdcall; - end; - - - tagOleMenuGroupWidths = record - width : array[0..5] Of LONG; - end; - OLEMENUGROUPWIDTHS = tagOleMenuGroupWidths; - TOleMenuGroupWidths = tagOleMenuGroupWidths; - LPOLEMENUGROUPWIDTHS = ^OLEMENUGROUPWIDTHS; - POleMenuGroupWidths = LPOLEMENUGROUPWIDTHS; - - - IProvideClassInfo = Interface (IUnknown) - ['{B196B283-BAB4-101A-B69C-00AA00341D07}'] - function GetClassInfo(out pptti : ITypeInfo):HResult; StdCall; - end; - - - IProvideClassInfo2 = Interface (IProvideClassInfo) - ['{A6BC3AC0-DBAA-11CE-9DE3-00AA004BB851}'] - function GetGUID(dwguid:DWord;out pguid:TGUID):HResult; StdCall; - end; - -{ ****************************************************************************************************************** - stuff from objbase.h - ****************************************************************************************************************** } - - tagOIFI = record - cb: UINT; - fMDIApp: BOOL; - hwndFrame: HWND; - haccel: HAccel; - cAccelEntries: UINT; - end; - TOleInPlaceFrameInfo = tagOIFI; - POleInPlaceFrameInfo = ^TOleInPlaceFrameInfo; - LPOleInPlaceFrameInfo = POleInPlaceFrameInfo; - OLEINPLACEFRAMEINFO = tagOIFI; - - -{ redefinitions } - function CoCreateGuid(out _para1:TGUID):HRESULT;stdcall;external 'ole32.dll' name 'CoCreateGuid'; - -{ additional definitions } -{$ifndef wince} - 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'; -{$endif wince} - -{ OleIdl.h } -type - IOleInPlaceActiveObject = interface; - - IOleAdviseHolder = interface(IUnknown) - ['{00000111-0000-0000-C000-000000000046}'] - function Advise(const advise: IAdviseSink; out dwConnection: DWORD): HResult;StdCall; - function Unadvise(dwConnection: DWORD): HResult;StdCall; - function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall; - function SendOnRename(const mk: IMoniker): HResult;StdCall; - function SendOnSave: HResult;StdCall; - function SendOnClose: HResult;StdCall; - end; - - IEnumOLEVERB = interface(IUnknown) - ['{00000104-0000-0000-C000-000000000046}'] - function Next(celt: ULONG; out elt; pceltFetched: PULONG=nil): HResult;StdCall; - function Skip(celt: ULONG): HResult;StdCall; - function Reset: HResult;StdCall; - function Clone(out ppenum: IEnumOLEVERB): HResult;StdCall; - end; - - IDropSource = interface(IUnknown) - ['{00000121-0000-0000-C000-000000000046}'] - function QueryContinueDrag(fEscapePressed: BOOL; - grfKeyState: Longint):HResult;StdCall; - function GiveFeedback(dwEffect: Longint): HResult;StdCall; - end; - - IOleObject = interface(IUnknown) - ['{00000112-0000-0000-C000-000000000046}'] - function SetClientSite(const clientSite: IOleClientSite): HResult;StdCall; - function GetClientSite(out clientSite: IOleClientSite): HResult;StdCall; - function SetHostNames(szContainerApp: POleStr; szContainerObj: POleStr): HResult;StdCall; - function Close(dwSaveOption: DWORD): HResult;StdCall; - function SetMoniker(dwWhichMoniker: DWORD; const mk: IMoniker): HResult;StdCall; - function GetMoniker(dwAssign: DWORD; dwWhichMoniker: DWORD; out mk: IMoniker): HResult;StdCall; - function InitFromData(const dataObject: IDataObject; fCreation: BOOL; dwReserved: DWORD): HResult;StdCall; - function GetClipboardData(dwReserved: DWORD; out dataObject: IDataObject): HResult;StdCall; - function DoVerb(iVerb: LONG; msg: PMsg; const activeSite: IOleClientSite; lindex: LONG; hwndParent: HWND; const posRect: TRect): HResult;StdCall; - function EnumVerbs(out enumOleVerb: IEnumOleVerb): HResult;StdCall; - function Update: HResult;StdCall; - function IsUpToDate: HResult;StdCall; - function GetUserClassID(out clsid: TCLSID): HResult;StdCall; - function GetUserType(dwFormOfType: DWORD; out pszUserType: POleStr): HResult;StdCall; - function SetExtent(dwDrawAspect: DWORD; const size: TPoint): HResult;StdCall; - function GetExtent(dwDrawAspect: DWORD; out size: TPoint): HResult;StdCall; - function Advise(const advSink: IAdviseSink; out dwConnection: Longint): HResult;StdCall; - function Unadvise(dwConnection: DWORD): HResult;StdCall; - function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall; - function GetMiscStatus(dwAspect: DWORD; out dwStatus: DWORD): HResult;StdCall; - function SetColorScheme(const logpal: TLogPalette): HResult;StdCall; - end; - - IDropTarget = interface(IUnknown) - ['{00000122-0000-0000-C000-000000000046}'] - function DragEnter(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall; - function DragOver(grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall; - function DragLeave: HResult;StdCall; - function Drop(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD):HResult;StdCall; - end; - - IOleInPlaceUIWindow = interface(IOleWindow) - ['{00000115-0000-0000-C000-000000000046}'] - function GetBorder(out rectBorder: TRect):HResult;StdCall; - function RequestBorderSpace(const borderwidths: TRect):HResult;StdCall; - function SetBorderSpace(const borderwidths: TRect):HResult;StdCall; - function SetActiveObject(const activeObject: IOleInPlaceActiveObject;pszObjName: POleStr):HResult;StdCall; - end; - - IOleInPlaceActiveObject = interface(IOleWindow) - ['{00000117-0000-0000-C000-000000000046}'] - function TranslateAccelerator(var msg: TMsg):HResult;StdCall; - function OnFrameWindowActivate(fActivate: BOOL):HResult;StdCall; - function OnDocWindowActivate(fActivate: BOOL):HResult;StdCall; - function ResizeBorder(const rcBorder: TRect; const uiWindow: IOleInPlaceUIWindow; fFrameWindow: BOOL):HResult;StdCall; - function EnableModeless(fEnable: BOOL):HResult;StdCall; - end; - - IOleInPlaceFrame = interface(IOleInPlaceUIWindow) - ['{00000116-0000-0000-C000-000000000046}'] - function InsertMenus(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall; - function SetMenu(hmenuShared: HMenu; holemenu: HMenu; hwndActiveObject: HWnd): HResult;StdCall; - function RemoveMenus(hmenuShared: HMenu): HResult;StdCall; - function SetStatusText(pszStatusText: POleStr): HResult;StdCall; - function EnableModeless(fEnable: BOOL): HResult;StdCall; - function TranslateAccelerator(var msg: TMsg; wID: Word): HResult;StdCall; - end; - - IOleLink = interface(IUnknown) - ['{0000011d-0000-0000-C000-000000000046}'] - function SetUpdateOptions(dwupdateopt:dword):HResult; stdcall; - function GetUpdateOptions(dwupdateopt:pdword):HResult; stdcall; - function SetSourceMoniker(pmk : IMoniker;const clsid: TCLSID):HRESULT; stdcall; - function GetSourceMoniker(out pmk : IMoniker):HRESULT; stdcall; - function SetSourceDisplayName(ppszDisplayName:lpolestr):HResult; stdcall; - function GetSourceDisplayName(out ppszDisplayName:lpolestr):HResult; stdcall; - function BindToSource(bindflags:DWord;pbc: IBindCTX):HResult; stdcall; - function BindIfRunning:HResult; stdcall; - function GetBoundSource(out ppunk: IUnKnown):HResult; stdcall; - function UnbindSource:HResult; stdcall; - function Update(pbc:IBindCtx):HResult; stdcall; - end; - - IOleInPlaceSite = interface(IOleWindow) - ['{00000119-0000-0000-C000-000000000046}'] - function CanInPlaceActivate : HResult; - function OnInPlaceActivate : HResult; - function OnUIActivate : HResult; - function GetWindowContext(out ppframe:IOleInPlaceFrame;out ppdoc:IOleInPlaceUIWindow;lprcposrect:LPRECT;lprccliprect:LPRECT;lpframeinfo:LPOLEINPLACEFRAMEINFO):hresult; stdcall; - function Scroll(scrollExtant:TSIZE):hresult; stdcall; - function OnUIDeactivate(fUndoable:BOOL):hresult; stdcall; - function OnInPlaceDeactivate :hresult; stdcall; - function DiscardUndoState :hresult; stdcall; - function DeactivateAndUndo :hresult; stdcall; - function OnPosRectChange(lprcPosRect:LPRect):hresult; stdcall; - end; - - IOleInPlaceObject = interface(IOleWindow) - ['{00000113-0000-0000-C000-000000000046}'] - function InPlaceDeactivate : HResult; - function UIDeactivate : HResult; - function SetObjectRects(lprcPosRect:LPRect;lprcClipRect:LPRect):hresult; stdcall; - function ReactivateAndUndo : HResult; - end; - - IOleDocumentView = interface(IUnknown) - ['{b722bcc6-4e68-101b-a2bc-00aa00404770}'] - function SetInPlaceSite(ppipsite:IOleInPlaceSite):hresult; stdcall; - function GetInPlaceSite(out ppipsite:IOleInPlaceSite):hresult; stdcall; - function GetDocument(out ppipsite:Iunknown):hresult; stdcall; - function SetRect(prcview:LPRect):hresult; stdcall; - function Getrect(prcView:LPRect):hresult; stdcall; - function SetRectComplex(prcview:LPRect;prcHScroll:LPRect;prcVScroll:LPRect;prcSizeBox:LPRect):hresult; stdcall; - function Show(fshow:Bool) :hresult; stdcall; - function UIActivate(fUIActive :BOOL): HResult; - function Open :hresult; stdcall; - function Closeview(dwreserved:DWORD):hresult; stdcall; - function SaveViewState(pstm:IStream):hresult; stdcall; - function ApplyViewState(pstm:IStream):hresult; stdcall; - function Clone(pipsitenew: IOleInPlaceSite;out ppviewNew:IOleDocumentView):HResult; - end; - - IEnumOleDocumentViews = Interface(IUnknown) - ['{b722bcc8-4e68-101b-a2bc-00aa00404770}'] - function Next (CViews:ULONG; out rgpview:IOleDocumentView;pcfetched:pulong):hresult; stdcall; - function Skip (CViews:ULong):hresult; stdcall; - function Reset:HResult; stdcall; - function Clone (out ppenum :IEnumOleDocumentViews) :HResult; stdcall; - end; - - IOleDocument = interface(IUnknown) - ['{b722bcc5-4e68-101b-a2bc-00aa00404770}'] - function CreateView(pipsite:IOleInPlaceSite;pstm:IStream;dwReserved:DWord;out ppview : IOleDocumentView):hresult; stdcall; - function GetDocMiscStatus(pdwstatus:PDWord):hresult; stdcall; - function EnumViews(out ppenum:IEnumOleDocumentViews;out ppview:IOleDocumentView):hresult; stdcall; - end; - - IOleDocumentSite = interface(IUnknown) - ['{b722bcc7-4e68-101b-a2bc-00aa00404770}'] - function ActivateMe(pviewtoactivate:IOleDocumentView):hresult; stdcall; - end; - - IContinueCallback = interface(IUnknown) - ['{b722bcca-4e68-101b-a2bc-00aa00404770}'] - function FContinue:HResult;Stdcall; - function FContinuePrinting( nCntPrinted:LONG;nCurPage:Long;pwzprintstatus:polestr):HResult;Stdcall; - end; - - -{ ObjSafe.idl} - IObjectSafety = interface(IUnknown) - ['{CB5BDC81-93C1-11cf-8F20-00805F2CD064}'] - function GetInterfaceSafetyOptions(const riid:Tiid; out pdwsupportedoptions: dword;out pdwenabledoptions: dword):HRESULT; stdcall; - function SetInterfaceSafetyOptions(const riid:Tiid; const dwoptionsetmask: dword;const dwenabledoptions : dword):HRESULT; stdcall; - end; - - TContinueCallback = function (dwcontinue:ULONG_PTR):BOOL; stdcall; - - - IViewObject = interface(IUnknown) - ['{0000010d-0000-0000-C000-000000000046}'] - function Draw(dwDrawAspect:DWord;LIndex:Long;pvaspect:pointer;ptd:PDVTARGETDEVICE;hdcTargetDev:HDC; hdcDraw:HDC;lprcBounds:PRECTL;lprcWBounds:PRECTL;pfncontinue:TContinueCallback;dwcontinue:ULONG_PTR):HResult; stdcall; - function GetColorSet(wDrawAspect:DWord;LIndex:Long;pvaspect:pointer;ptd:PDVTARGETDEVICE;hdcTargetDev:HDC;var ppcolorset:PLogPalette):HREsult; stdcall; - function Freeze(dwDrawAspect:DWord;LIndex:Long;pvaspect:pointer;pdwfreeze:pdword):HResult;stdcall; - function Unfreeze(dwfreeze:dword):HResult; stdcall; - function SetAdvise(aspects:DWORD;advf:DWORD;padvSink:IAdviseSink):HRESULT;stdcall; - function Getadvise(paspects:pdword;padvf:pdword;out ppadvsink: IADviseSink):HRESULT;stdcall; - end; - - IViewObject2 = interface(IViewObject) - ['{00000127-0000-0000-C000-000000000046}'] - function GetExtent(dwDrawAspect:dword;lindex:DWord;ptd:pDVTARGETDEVICE;lpsizel:LPSIZEL):HRESULT;stdcall; - end; - - - -{ COMCAT} - -Const CATDESC_MAX = 128; - -Type - CATID = TGUID; - TCATID = TGUID; - PCATID = PGUID; - tagCATEGORYINFO = packed record - catid : CATID; - LCID : lcid; - szDescription : array[0..CATDESC_MAX-1] of WideChar; - end; - - CATEGORYINFO = tagCATEGORYINFO; - TCATEGORYINFO = tagCATEGORYINFO; - LPCATEGORYINFO = ^tagCATEGORYINFO; - PCATEGORYINFO = LPCATEGORYINFO; - - IEnumCLSID = IEnumGUID; - IEnumCategoryInfo = interface(IUnknown) - ['{0002E011-0000-0000-C000-000000000046}'] - function Next(celt: ULONG; out rgelt: TCategoryInfo; out pceltFetched: ULONG): HResult; stdcall; - function Skip(celt:ULONG):HResult; StdCall; - function Reset:HResult; StdCall; - function CLone(Out ppenum : IEnumCategoryInfo):HResult;StdCall; - end; - - ICatRegister = interface (IUnknown) - ['{0002E012-0000-0000-C000-000000000046}'] - function RegisterCategories (cCategories:ULONG;rgCategoryInfo : PCategoryInfo):HResult;Stdcall; - function UnRegisterCategories (cCategories:ULONG;PCatid :PCATID):HResult;Stdcall; - function RegisterClassImplCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall; - function UnRegisterClassImplCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall; - function RegisterClassReqCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall; - function UnRegisterClassReqCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall; - end; - - ICatInformation = interface(IUnknown) - ['{0002E013-0000-0000-C000-000000000046}'] - function EnumCategories(lcid:lcid;out ppenumCategoryInfo : IEnumCategoryInfo):HResult; StdCall; - function GetCategoryDesc(rcatid:PCATID;lcid:LCID;out pszdesc:lpwstr):HResult; StdCall; - function EnumClassesOfCategories(cImplemented : ULong; rgcatidImpl:PCATID;cRequired:ULong; rgcatidreq:PCATID; out ppenumclsid : IEnumClsID):HResult; StdCall; - function ISClassOfCategories(rclsid:pclsid;cImplemented:ULong;rgcatidimpl:PCATID;CRequired:ULONG;rgcatidreq : pcatid):HResult; StdCall; - function EnumImplCategoriesOfClass(rclsid:pclsid;out ppenumclsid : IEnumClsID):HResult; StdCall; - function EnumReqCategoriesOfClass(rclsid:pclsid;out ppenumclsid : IEnumClsID):HResult; StdCall; - end; - - IPropertySetStorage = Interface(IUnknown) - ['{0000013A-0000-0000-C000-000000000046}'] - function Create(const rfmtid:FMTID; const pclsid:CLSID; grfFlags:DWORD; grfMode:DWORD; out ppprstg:IPropertyStorage):HRESULT; StdCall; - function Open(const fmtid:FMTID; grfMode:DWORD; out ppprstg:IPropertyStorage):HRESULT; StdCall; - function Delete(const rfmtid:FMTID):HRESULT; StdCall; - function Enum(out ppenum:IEnumSTATPROPSETSTG):HRESULT; StdCall; - end; - - IEnumSTATPROPSTG = interface( IUnknown) - ['{00000139-0000-0000-C000-000000000046}'] - function Next(celt:ULONG; var rgelt:STATPROPSTG; pceltFetched:pULONG):HRESULT; StdCall; - function Skip(celt:ULONG):HRESULT; StdCall; - function Reset:HRESULT; StdCall; - function Clone(out ppenum:IEnumSTATPROPSTG):HRESULT; StdCall; - end; - - IEnumSTATPROPSETSTG = interface( IUnknown) - ['{0000013B-0000-0000-C000-000000000046}'] - function Next(celt:ULONG; var rgelt:STATPROPSETSTG; pceltFetched:pULONG):HRESULT; StdCall; - function Skip(celt:ULONG):HRESULT; StdCall; - function Reset:HRESULT; StdCall; - function Clone(out ppenum:IEnumSTATPROPSETSTG):HRESULT; StdCall; - end; - - IPropertyStorage = interface(IUnknown) - ['{00000138-0000-0000-C000-000000000046}'] - function ReadMultiple(cpspec:ULONG; rgpspec:pPROPSPEC; rgpropvar:pPROPVARIANT):HRESULT; StdCall; - function WriteMultiple(cpspec:ULONG; rgpspec:pPROPSPEC; rgpropvar:pPROPVARIANT; propidNameFirst:PROPID):HRESULT; StdCall; - function DeleteMultiple(cpspec:ULONG; rgpspec:pPROPSPEC):HRESULT; StdCall; - function ReadPropertyNames(cpspec:ULONG; rgpropid:pPROPID; rgpropvar:plpolestr):HRESULT; StdCall; - function WritePropertyNames(cpspec:ULONG; rgpspec:pPROPID; rgpropvar:plpolestr):HRESULT; StdCall; - function DeletePropertyNames(cpspec:ULONG; rgpspec:pPROPid):HRESULT; StdCall; - function Commit(grfCommitFlags:DWORD):HRESULT; StdCall; - function Revert:HRESULT; StdCall; - function Enum(out ppenum:IEnumSTATPROPSTG):HRESULT; StdCall; - function SetTimes(pctime:PFILETIME; patime:PFILETIME; pmtime:PFILETIME):HRESULT; StdCall; - function SetClass(clsid:pCLSID):HRESULT; StdCall; - function Stat(pstatpsstg:pSTATPROPSETSTG):HRESULT; StdCall; - end; - -{ ole2.h } - - type - WINOLEAPI = HResult; - TLCID = DWORD; // is this needed (duplicate from windows?) - - const - OLEIVERB_PRIMARY = 0; - OLEIVERB_SHOW = -(1); - OLEIVERB_OPEN = -(2); - OLEIVERB_HIDE = -(3); - OLEIVERB_UIACTIVATE = -(4); - OLEIVERB_INPLACEACTIVATE = -(5); - OLEIVERB_DISCARDUNDOSTATE = -(6); - { for OleCreateEmbeddingHelper flags; roles low word; options high word } - EMBDHLP_INPROC_HANDLER = $0000; - EMBDHLP_INPROC_SERVER = $0001; - EMBDHLP_CREATENOW = $00000000; - EMBDHLP_DELAYCREATE = $00010000; - { extended create function flags } - OLECREATE_LEAVERUNNING = $00000001; - { pull the MIDL generated header } -{$ifndef wince} - function OleBuildVersion:DWORD;stdcall;external 'ole32.dll' name 'OleBuildVersion'; -{$endif wince} - { helper functions } - function ReadClassStg(pStg:IStorage; pclsid:PCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadClassStg'; - function WriteClassStg(pStg:IStorage;const rclsid:TCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteClassStg'; - function ReadClassStm(pStm:IStream; pclsid:PCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadClassStm'; - function WriteClassStm(pStm:IStream;const rclsid:TCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteClassStm'; -{$ifndef wince} - function WriteFmtUserTypeStg(pstg:IStorage; cf:CLIPFORMAT; lpszUserType:LPOLESTR):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteFmtUserTypeStg'; - function ReadFmtUserTypeStg(pstg:IStorage; pcf:PCLIPFORMAT;out lplpszUserType:POleStr):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadFmtUserTypeStg'; - - { init/term } - function OleInitialize(pvReserved:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleInitialize'; - procedure OleUninitialize;stdcall;external 'ole32.dll' name 'OleUninitialize'; - - { APIs to query whether (Embedded/Linked) object can be created from - the data object } - function OleQueryLinkFromData(pSrcDataObject:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleQueryLinkFromData'; - function OleQueryCreateFromData(pSrcDataObject:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleQueryCreateFromData'; -{$endif wince} - { Object creation APIs } - function OleCreate(const rclsid:TCLSID; const riid:TIID; - renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name - 'OleCreate'; -{$ifndef wince} - function OleCreateEx(const rclsid:TCLSID; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG; - rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateEx'; - - function OleCreateFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromData'; - - function OleCreateFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG; - rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromDataEx'; - - function OleCreateLinkFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkFromData'; - - function OleCreateLinkFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG; - rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkFromDataEx'; - - function OleCreateStaticFromData(pSrcDataObj:IDataObject; const iid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateStaticFromData'; - - function OleCreateLink(pmkLinkSrc:IMoniker; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLink'; - - function OleCreateLinkEx(pmkLinkSrc:IMoniker; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG; - rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkEx'; - - function OleCreateLinkToFile(lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkToFile'; - - function OleCreateLinkToFileEx(lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG; - rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite; - pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkToFileEx'; - - function OleCreateFromFile(const rclsid:TCLSID; lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; - pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromFile'; - - function OleCreateFromFileEx(const rclsid:TCLSID; lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; - cFormats:ULONG; rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; - pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromFileEx'; - - function OleLoad(pStg:IStorage; const riid:TIID; pClientSite:IOleClientSite; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLoad'; - function OleLoadFromStream(pStm:IStream; const iidInterface:TIID; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLoadFromStream'; - function OleSaveToStream(pPStm:IPersistStream; pStm:IStream):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSaveToStream'; - function OleNoteObjectVisible(pUnknown:IUnknown; fVisible:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleNoteObjectVisible'; -{$endif wince} - function OleSave(pPS:IPersistStorage; pStg:IStorage; fSameAsLoad:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSave'; - function OleSetContainedObject(pUnknown:IUnknown; fContained:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetContainedObject'; - - { Drag/Drop APIs } -{$ifndef wince} - function RegisterDragDrop(hwnd:HWND; pDropTarget:IDropTarget):WINOLEAPI;stdcall;external 'ole32.dll' name 'RegisterDragDrop'; - function RevokeDragDrop(hwnd:HWND):WINOLEAPI;stdcall;external 'ole32.dll' name 'RevokeDragDrop'; - function DoDragDrop(pDataObj:IDataObject; pDropSource:IDropSource; dwOKEffects:DWORD; pdwEffect:LPDWORD):WINOLEAPI;stdcall;external 'ole32.dll' name 'DoDragDrop'; - - { Clipboard APIs } - function OleSetClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetClipboard'; - function OleGetClipboard(out ppDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleGetClipboard'; - function OleFlushClipboard:WINOLEAPI;stdcall;external 'ole32.dll' name 'OleFlushClipboard'; - function OleIsCurrentClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleIsCurrentClipboard'; -{$endif wince} - -type - HOLEMENU = HMenu; - - { InPlace Editing APIs } -{$ifndef wince} - function OleCreateMenuDescriptor(hmenuCombined:HMENU; lpMenuWidths:LPOLEMENUGROUPWIDTHS):HOLEMENU;stdcall;external 'ole32.dll' name 'OleCreateMenuDescriptor'; - function OleDestroyMenuDescriptor(holemenu:HOLEMENU):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDestroyMenuDescriptor'; - function OleTranslateAccelerator(lpFrame:IOleInPlaceFrame; lpFrameInfo:TOleInPlaceFrameInfo; lpmsg:LPMSG):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleTranslateAccelerator'; -{$endif wince} - function OleSetMenuDescriptor(holemenu:HOLEMENU; hwndFrame:HWND; hwndActiveObject:HWND; lpFrame:IOleInPlaceFrame; lpActiveObj:IOleInPlaceActiveObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetMenuDescriptor'; - - { Helper APIs } -{$ifndef wince} - function OleDuplicateData(hSrc:HANDLE; cfFormat:CLIPFORMAT; uiFlags:UINT):HANDLE;stdcall;external 'ole32.dll' name 'OleDuplicateData'; - function OleLockRunning(pUnknown:IUnknown; fLock:BOOL; fLastUnlockCloses:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLockRunning'; - function OleCreateDefaultHandler(const clsid:TCLSID; pUnkOuter:IUnknown; const riid:TIID; out lplpObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateDefaultHandler'; - function OleCreateEmbeddingHelper(const clsid:TCLSID; pUnkOuter:IUnknown; flags:DWORD; pCF:IClassFactory; const riid:TIID; - out lplpObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateEmbeddingHelper'; - function IsAccelerator(hAccel:HACCEL; cAccelEntries:longint; lpMsg:LPMSG; lpwCmd:PWORD):BOOL;stdcall;external 'ole32.dll' name 'IsAccelerator'; -{$endif wince} - function OleDraw(pUnknown:IUnknown; dwAspect:DWORD; hdcDraw:HDC;const lprcBounds:TRect):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDraw'; - function OleRun(pUnknown:IUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRun'; - function OleIsRunning(pObject:IOleObject):BOOL;stdcall;external 'ole32.dll' name 'OleIsRunning'; - - procedure ReleaseStgMedium(var _para1:STGMEDIUM);stdcall;external 'ole32.dll' name 'ReleaseStgMedium'; - procedure ReleaseStgMedium(_para1:LPSTGMEDIUM);stdcall;external 'ole32.dll' name 'ReleaseStgMedium'; - function CreateOleAdviseHolder(out ppOAHolder:IOleAdviseHolder):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateOleAdviseHolder'; - - { Icon extraction Helper APIs } -{$ifndef wince} - function OleGetIconOfFile(lpszPath:LPOLESTR; fUseFileAsLabel:BOOL):HGLOBAL;stdcall;external 'ole32.dll' name 'OleGetIconOfFile'; - function OleGetIconOfClass(const rclsid:TCLSID; lpszLabel:LPOLESTR; fUseTypeAsLabel:BOOL):HGLOBAL;stdcall;external 'ole32.dll' name 'OleGetIconOfClass'; - function OleMetafilePictFromIconAndLabel(hIcon:HICON; lpszLabel:LPOLESTR; lpszSourceFile:LPOLESTR; iIconIndex:UINT):HGLOBAL;stdcall;external 'ole32.dll' name 'OleMetafilePictFromIconAndLabel'; -{$endif wince} - - { Registration Database Helper APIs } -{$ifndef wince} - function OleRegGetUserType(const clsid:TCLSID; dwFormOfType:DWORD;out pszUserType:POleStr):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegGetUserType'; - function OleRegGetMiscStatus(const clsid:TCLSID; dwAspect:DWORD; pdwStatus:PDWORD):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegGetMiscStatus'; - function OleRegEnumFormatEtc(const clsid:TCLSID; dwDirection:DWORD;out ppenum:IEnumFormatEtc):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegEnumFormatEtc'; - function OleRegEnumVerbs(const clsid:TCLSID;out ppenum:IEnumOLEVERB):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegEnumVerbs'; -{$endif wince} - -{$ifdef _MAC} - { WlmOLE helper APIs } - - function WlmOleCheckoutMacInterface(pUnk:IUnknown; out ppv):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckoutMacInterface'; - - function WlmOleCheckinMacInterface(pUnk:IUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckinMacInterface'; - - function WlmOleWrapMacInterface(pUnk:IUnknown; const riid:TIID; out ppv):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleWrapMacInterface'; - - function WlmOleUnwrapMacInterface(pv:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleUnwrapMacInterface'; - - function WlmOleCheckoutWinInterface(pUnk:LPVOID; ppv:PIUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckoutWinInterface'; - - function WlmOleCheckinWinInterface(pUnk:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckinWinInterface'; - - function WlmOleWrapWinInterface(pUnk:LPVOID; const riid:TIID; ppv:PIUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleWrapWinInterface'; - - function WlmOleUnwrapWinInterface(pv:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleUnwrapWinInterface'; - - procedure WlmOleVersion;stdcall;external 'ole32.dll' name 'WlmOleVersion'; - - procedure WlmOleSetInPlaceWindow(hwnd:HWND);stdcall;external 'ole32.dll' name 'WlmOleSetInPlaceWindow'; - - { typedef HRESULT (STDAPICALLTYPE* OLEWRAPPROC) (TIID riid, LPVOID* ppvWin, LPVOID* ppvMac); } - function WlmOleRegisterUserWrap(procNew:OLEWRAPPROC; pprocOld:POLEWRAPPROC):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleRegisterUserWrap'; - -{$endif} - { OLE 1.0 conversion APIS } - {**** OLE 1.0 OLESTREAM declarations ************************************ } - - type - LPOLESTREAM = ^_OLESTREAM; - _OLESTREAMVTBL = record - Get : function (p : POleStr;out o;dw : DWORD) : DWORD; - Put : function (p : POleStr;const o;dw : DWORD) : DWORD; - end; - OLESTREAMVTBL = _OLESTREAMVTBL; - - LPOLESTREAMVTBL = OLESTREAMVTBL; - - _OLESTREAM = record - lpstbl : LPOLESTREAMVTBL; - end; - OLESTREAM = _OLESTREAM; -(* Const before type ignored *) - -{$ifndef wince} - function OleConvertOLESTREAMToIStorage(_lpolestream:LPOLESTREAM; pstg:IStorage; ptd:PDVTARGETDEVICE):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorage'; - function OleConvertIStorageToOLESTREAM(pstg:IStorage; lpolestream:LPOLESTREAM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAM'; -{$endif wince} - - { Storage Utility APIs } - function GetHGlobalFromILockBytes(plkbyt:ILockBytes;out phglobal:HGLOBAL):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetHGlobalFromILockBytes'; - function CreateStreamOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out stm:IStream):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateStreamOnHGlobal'; -{$ifndef wince} - function CreateILockBytesOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out pplkbyt:ILockBytes):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateILockBytesOnHGlobal'; - function GetHGlobalFromStream(pstm:IStream;out phglobal:HGLOBAL):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetHGlobalFromStream'; -{$endif wince} - - { ConvertTo APIS } -{$ifndef wince} - function OleDoAutoConvert(pStg:IStorage; pClsidNew:LPCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDoAutoConvert'; - function OleGetAutoConvert(const clsidOld:TCLSID; pClsidNew:LPCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleGetAutoConvert'; - function OleSetAutoConvert(const clsidOld:TCLSID; clsidNew:TCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetAutoConvert'; - function GetConvertStg(pStg:IStorage):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetConvertStg'; - function SetConvertStg(pStg:IStorage; fConvert:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'SetConvertStg'; - - { Presentation data to OLESTREAM } - { format } - { width } - { height } - { size bytes } - { bits } - function OleConvertIStorageToOLESTREAMEx(pstg:IStorage; cfFormat:CLIPFORMAT; lWidth:LONG; lHeight:LONG; dwSize:DWORD; - pmedium:LPSTGMEDIUM; polestm:LPOLESTREAM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAMEx'; - - { Presentation data from OLESTREAM } - { format } - { width } - { height } - { size bytes } - function OleConvertOLESTREAMToIStorageEx(polestm:LPOLESTREAM; pstg:IStorage; pcfFormat:PCLIPFORMAT; plwWidth:PLONG; plHeight:PLONG; - pdwSize:PDWORD; pmedium:LPSTGMEDIUM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorageEx'; -{$endif wince} - -const - DROPEFFECT_NONE = 0; - DROPEFFECT_COPY = 1; - DROPEFFECT_MOVE = 2; - DROPEFFECT_LINK = 4; - DROPEFFECT_SCROLL = dword($80000000); - - -type - BORDERWIDTHS = TRect; - LPBORDERWIDTHS = PRect; - LPCBORDERWIDTHS = PRect; - - TBorderWidths = TRect; - PBorderWidths = PRect; - - function CoInitializeEx(_para1:LPVOID; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeEx'; - procedure CoUninitialize;stdcall; external 'ole32.dll' name 'CoUninitialize'; - function CoGetClassObject(const _para1:TCLSID; _para2:DWORD; _para3:PVOID; const _para4:TIID; out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoGetClassObject'; - function CoLoadLibrary(_para1:LPOLESTR; _para2:BOOL):THandle;stdcall; external 'ole32.dll' name 'CoLoadLibrary'; - procedure CoFreeLibrary(_para1:THandle);stdcall; external 'ole32.dll' name 'CoFreeLibrary'; - procedure CoFreeUnusedLibraries;stdcall; external 'ole32.dll' name 'CoFreeUnusedLibraries'; - function CoCreateInstance(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD;const _para4:TIID;out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstance'; - function StringFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromCLSID'; - function CLSIDFromString(_para1:LPOLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromString'; - function StringFromIID(const _para1:TIID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromIID'; - function ProgIDFromCLSID(para:PCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID'; - function ProgIDFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID'; - function CLSIDFromProgID(_para1:POLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID'; - function CLSIDFromProgID(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID'; - function StringFromGUID2(const _para1:TGUID; _para2:LPOLESTR; _para3:longint):longint;stdcall; external 'ole32.dll' name 'StringFromGUID2'; - function CoCreateGuid(_para1:PGUID):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateGuid'; -{$ifndef wince} - function CoBuildVersion:DWORD;stdcall; external 'ole32.dll' name 'CoBuildVersion'; - function CoInitialize(_para1:PVOID):HRESULT;stdcall; external 'ole32.dll' name 'CoInitialize'; - function CoGetMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc'; - function CoGetCurrentProcess:DWORD;stdcall; external 'ole32.dll' name 'CoGetCurrentProcess'; - function CoRegisterMallocSpy(_para1:IMallocSpy):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMallocSpy'; - function CoRevokeMallocSpy:HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeMallocSpy'; - function CoCreateStandardMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc'; - function CoRegisterClassObject(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:DWORD; _para5:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterClassObject'; - function CoRevokeClassObject(_para1:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeClassObject'; - function CoGetMarshalSizeMax(_para1:PULONG;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID; - _para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMarshalSizeMax'; - function CoMarshalInterface(_para1:IStream;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID; - _para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterface'; - function CoUnmarshalInterface(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalInterface'; - function CoMarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalHresult'; - function CoUnmarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalHresult'; - function CoReleaseMarshalData(_para1:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoReleaseMarshalData'; - function CoDisconnectObject(_para1:IUnknown; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoDisconnectObject'; - function CoLockObjectExternal(_para1:IUnknown; _para2:BOOL; _para3:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'CoLockObjectExternal'; - function CoGetStandardMarshal(const _para1:TIID; _para2:IUnknown; _para3:DWORD; _para4:PVOID; _para5:DWORD; - out _para6:IMarshal):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStandardMarshal'; - function CoGetStdMarshalEx(_para1:IUnknown; _para2:DWORD; out _para3:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStdMarshalEx'; - function CoIsHandlerConnected(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoIsHandlerConnected'; - function CoHasStrongExternalConnections(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoHasStrongExternalConnections'; - function CoMarshalInterThreadInterfaceInStream(const _para1:TIID; _para2:IUnknown; out _para3:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterThreadInterfaceInStream'; - function CoGetInterfaceAndReleaseStream(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInterfaceAndReleaseStream'; - function CoCreateFreeThreadedMarshaler(_para1:IUnknown; out _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateFreeThreadedMarshaler'; - procedure CoFreeAllLibraries;stdcall; external 'ole32.dll' name 'CoFreeAllLibraries'; - function CoCreateInstanceEx(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:PCOSERVERINFO; _para5:DWORD; - _para6:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstanceEx'; - function IIDFromString(_para1:LPOLESTR; out _para2:TIID):HRESULT;stdcall; external 'ole32.dll' name 'IIDFromString'; - function CoIsOle1Class(const _para1:TCLSID):BOOL;stdcall; external 'ole32.dll' name 'CoIsOle1Class'; - function CoFileTimeToDosDateTime(_para1:PFILETIME; _para2:LPWORD; _para3:LPWORD):BOOL;stdcall; external 'ole32.dll' name 'CoFileTimeToDosDateTime'; - function CoDosDateTimeToFileTime(_para1:WORD; _para2:WORD; _para3:PFILETIME):BOOL;stdcall; external 'ole32.dll' name 'CoDosDateTimeToFileTime'; - function CoFileTimeNow(_para1:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'CoFileTimeNow'; - function CoRegisterMessageFilter(_para1:IMessageFilter;out _para2:IMessageFilter):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMessageFilter'; - function CoGetTreatAsClass(const _para1:TCLSID; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoGetTreatAsClass'; - function CoTreatAsClass(const _para1:TCLSID; const _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoTreatAsClass'; -{$endif wince} - - type - LPFNGETCLASSOBJECT = function (const _para1:TCLSID; const _para2:TIID;out _para3):HRESULT;stdcall; - LPFNCANUNLOADNOW = function:HRESULT;stdcall; - -{$ifndef wince} - function DllGetClassObject(const _para1:TCLSID; const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'DllGetClassObject'; - function DllCanUnloadNow:HRESULT;stdcall; external 'ole32.dll' name 'DllCanUnloadNow'; -{$endif wince} - function CoTaskMemAlloc(_para1:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemAlloc'; - function CoTaskMemRealloc(_para1:PVOID; _para2:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemRealloc'; - procedure CoTaskMemFree(_para1:PVOID);stdcall; external 'ole32.dll' name 'CoTaskMemFree'; - -{$ifndef wince} - function CreateDataAdviseHolder(_para1:IDataAdviseHolder):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataAdviseHolder'; - function CreateDataCache(_para1:IUnknown; const _para2:TCLSID; const _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataCache'; -{$endif wince} - -(* Const before type ignored *) - function StgCreateDocfile(_para1:POLESTR; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfile'; - function StgCreateDocfileOnILockBytes(_para1:ILockBytes; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfileOnILockBytes'; - -(* Const before type ignored *) - function StgOpenStorage(_para1:POLESTR; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD; - out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorage'; - function StgOpenStorageOnILockBytes(_para1:ILockBytes; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD; - out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorageOnILockBytes'; -{$ifndef wince} - function StgIsStorageFile(_para1:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageFile'; - function StgIsStorageILockBytes(_para1:ILockBytes):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageILockBytes'; - function StgSetTimes(_para1:POLESTR; _para2:PFILETIME; _para3:PFILETIME; _para4:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'StgSetTimes'; - function CoGetObject(pszname:lpwstr; bndop:PBind_Opts; const riid:TIID; out ppv):HRESULT; stdcall; external 'ole32.dll' name 'CoGetObject'; - function BindMoniker(_para1:IMoniker; _para2:DWORD; const _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'BindMoniker'; - function MkParseDisplayName(_para1:IBindCtx; _para2:POLESTR; out _para3:PULONG; out _para4:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MkParseDisplayName'; - function MonikerRelativePathTo(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker; _para4:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'MonikerRelativePathTo'; - function MonikerCommonPrefixWith(_para1:IMoniker; _para2:IMoniker; _para3:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MonikerCommonPrefixWith'; -{$endif wince} - function CreateBindCtx(_para1:DWORD;out _para2:IBindCtx):HRESULT;stdcall; external 'ole32.dll' name 'CreateBindCtx'; - function GetClassFile(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'GetClassFile'; -{$ifndef wince} - function CreateGenericComposite(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateGenericComposite'; - function CreateFileMoniker(_para1:POLESTR; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateFileMoniker'; - function CreateItemMoniker(_para1:POLESTR; _para2:POLESTR;out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateItemMoniker'; - function CreateAntiMoniker(_para1:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateAntiMoniker'; - function CreatePointerMoniker(_para1:IUnknown; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreatePointerMoniker'; - function GetRunningObjectTable(_para1:DWORD; _para2:IRunningObjectTable):HRESULT;stdcall; external 'ole32.dll' name 'GetRunningObjectTable'; - function CoInitializeSecurity(_para1:PSECURITY_DESCRIPTOR; _para2:LONG; _para3:PSOLE_AUTHENTICATION_SERVICE; _para4:pointer; _para5:DWORD; - _para6:DWORD; _para7:pointer; _para8:DWORD; _para9:pointer):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeSecurity'; - function CoGetCallContext(const _para1:TIID; _para2:Ppointer):HRESULT;stdcall; external 'ole32.dll' name 'CoGetCallContext'; - function CoQueryProxyBlanket(_para1:IUnknown; _para2:PDWORD; _para3:PDWORD; _para4:POLESTR; _para5:PDWORD; - _para6:PDWORD; _para7:Pointer; _para8:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryProxyBlanket'; - function CoSetProxyBlanket(_para1:IUnknown; _para2:DWORD; _para3:DWORD; _para4:POLESTR; _para5:DWORD; - _para6:DWORD; _para7:pointer; _para8:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoSetProxyBlanket'; - function CoCopyProxy(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCopyProxy'; - function CoQueryClientBlanket(_para1:PDWORD; _para2:PDWORD; _para3:POLESTR; _para4:PDWORD; _para5:PDWORD; - _para6:pointer; _para7:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryClientBlanket'; - function CoImpersonateClient:HRESULT;stdcall; external 'ole32.dll' name 'CoImpersonateClient'; - function CoRevertToSelf:HRESULT;stdcall; external 'ole32.dll' name 'CoRevertToSelf'; - function CoQueryAuthenticationServices(_para1:PDWORD; _para2:PSOLE_AUTHENTICATION_SERVICE):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryAuthenticationServices'; - function CoSwitchCallContext(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoSwitchCallContext'; - function CoGetInstanceFromFile(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:DWORD; - _para6:POLESTR; _para7:DWORD; _para8:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromFile'; - function CoGetInstanceFromIStorage(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:IStorage; - _para6:DWORD; _para7:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromIStorage'; -{$endif wince} - - type - TDispID = DISPID; - - TDispIDList = array[0..65535] of TDispID; - PDispIDList = ^TDispIDList; - - REFIID = TIID; - TREFIID = TIID; - -{$ifndef wince} - function SetErrorInfo(dwReserved:ULONG;errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'SetErrorInfo'; - function GetErrorInfo(dwReserved:ULONG;out errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'GetErrorInfo'; - function CreateErrorInfo(out errinfo:ICreateErrorInfo):HResult;stdcall; external 'ole32.dll' name 'CreateErrorInfo'; -{$endif wince} - - const - oleaut32dll = 'oleaut32.dll'; - - function SysAllocString(psz: pointer): TBStr; stdcall; external oleaut32dll name 'SysAllocString'; - function SysAllocStringLen(psz: pointer; len:dword): Integer; stdcall; external oleaut32dll name 'SysAllocStringLen'; - procedure SysFreeString(bstr:pointer); stdcall; external oleaut32dll name 'SysFreeString'; - function SysStringLen(bstr:pointer):UINT; stdcall; external oleaut32dll name 'SysStringLen'; - function SysStringByteLen(bstr:pointer):UINT; stdcall; external oleaut32dll name 'SysStringByteLen'; - function SysReAllocString(var bstr:pointer;psz: pointer): Integer; stdcall; external oleaut32dll name 'SysReAllocString'; - function SysReAllocStringLen(var bstr:pointer;psz: pointer; len:dword): Integer; stdcall; external oleaut32dll name 'SysReAllocStringLen'; - - { Active object registration API } -{$ifndef wince} - const - ACTIVEOBJECT_STRONG = 0; - ACTIVEOBJECT_WEAK = 1; - - function RegisterActiveObject(unk: IUnknown; const clsid: TCLSID; dwFlags: DWORD; out dwRegister: culong): HResult; stdcall; external oleaut32dll name 'RegisterActiveObject'; - function RevokeActiveObject(dwRegister: culong; pvReserved: Pointer) : HResult; stdcall; external oleaut32dll name 'RevokeActiveObject'; - function GetActiveObject(const clsid: TCLSID; pvReserved: Pointer; out unk: IUnknown) : HResult; stdcall; external oleaut32dll name 'GetActiveObject'; -{$endif wince} - -function Succeeded(Res: HResult) : Boolean;inline; -function Failed(Res: HResult) : Boolean;inline; -function ResultCode(Res: HResult) : Longint;inline; -function ResultFacility(Res: HResult): Longint;inline; -function ResultSeverity(Res: HResult): Longint;inline; -function MakeResult(Severity, Facility, Code: Longint): HResult;inline; - -function LoadTypeLib(szfile : lpolestr; var pptlib: ITypelib):HResult; stdcall; external oleaut32dll name 'LoadTypeLib'; -function LoadRegTypeLib(const rguid:TGUID;wVerMajor:ushort;wVerMinor:ushort;_lcid:lcid;out pptlib:ITypeLib):HResult; stdcall; external oleaut32dll name 'LoadRegTypeLib'; -function RegisterTypeLib(const ptrlib :ITypeLib;szfullpath:lpolestr;szhelpdir:lpolestr):HResult; stdcall; external oleaut32dll name 'RegisterTypeLib'; -function CreateTypeLib2(sysk:TSysKind;szfile:lpolestr;out ppctlib:ICreateTypeLib2):HResult; stdcall; external oleaut32dll name 'CreateTypeLib2'; -function DispInvoke(this:pointer;const ptinfo: ITypeInfo;dispidMember:TDISPID;wflags:ushort;pparams:pDISPParams;var pvarresult:OLEVARIANT;pexcepinfo:EXCEPINFO;puArgErr:puint):HRESULT; stdcall; external oleaut32dll name 'CreateTypeLib2'; -{$ifndef wince} -function LoadTypeLibEx(szfile : lpolestr; regk:tregkind; var pptlib: ITypelib):HResult; stdcall; external oleaut32dll name 'LoadTypeLibEx'; -function QueryPathOfRegTypeLib(const guid:TGUID;wVerMajor:ushort;wVerMinor:ushort;_lcid:lcid;lpbstr:LPolestr):HResult; stdcall; external oleaut32dll name 'QueryPathOfRegTypeLib'; -function UnRegisterTypeLib(const libid:TGUID; wVerMajor:ushort;wVerMinor:ushort;_lcid:lcid;sysk:TSysKind):HResult; stdcall; external oleaut32dll name 'UnRegisterTypeLib'; -function CreateTypeLib(sysk:TSysKind;szfile:lpolestr;out ppctlib:ICreateTypeLib):HResult; stdcall; external oleaut32dll name 'CreateTypeLib'; - -function DosDateTimeToVariantTime( wDosDate: ushort; wDosTime:ushort;pvtime:pdouble):longint; stdcall; external oleaut32dll name 'DosDateTimeToVariantTime'; -function VariantTimeToDosDateTime( vtime:DOUBLE;pwdosdate:PUSHORT;pwDosTime:PUSHORT):longint; stdcall; external oleaut32dll name 'VariantTimeToDosDateTime'; -{$endif wince} - -function SystemTimeToVariantTime(var lpsystemtime:TSystemTime;out pvtime: TOleDate):LONGINT; stdcall; external oleaut32dll name 'SystemTimeToVariantTime'; -function VariantTimeToSystemTime(vtime:TOleDate; out lpsystemtime: TSystemTime):LONGINT; stdcall; external oleaut32dll name 'VariantTimeToSystemTime'; - - -{--------------------------------------------------------------------- } -{ VARTYPE Coercion API } -{--------------------------------------------------------------------- } -{ Note: The routines that convert *from* a string are defined - * to take a OLECHAR* rather than a BSTR because no allocation is - * required, and this makes the routines a bit more generic. - * They may of course still be passed a BSTR as the strIn param. - } - -function VarUI1FromI2(sIn:SHORT; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI2'; -function VarUI1FromI4(lIn:LONG; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI4'; -function VarUI1FromI8(i64In:LONG64; pbOut:PBYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI8'; -function VarUI1FromR4(fltIn:Single; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromR4'; -function VarUI1FromR8(dblIn:DOUBLE; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromR8'; -function VarUI1FromCy(cyIn:CY; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromCy'; -function VarUI1FromDate(dateIn:DATE; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromDate'; -function VarUI1FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromStr'; -function VarUI1FromDisp(pdispIn:IDispatch; lcid:LCID; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromDisp'; -function VarUI1FromBool(boolIn:VARIANT_BOOL; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromBool'; -function VarUI1FromI1(cIn:CHAR; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI1'; -function VarUI1FromUI2(uiIn:USHORT; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromUI2'; -function VarUI1FromUI4(ulIn:ULONG; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromUI4'; -function VarUI1FromUI8(ui64In:ULONG64; pbOut:PBYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromUI8'; -function VarUI1FromDec(var pdecIn:TDecimal; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromDec'; -function VarI2FromUI1(bIn:BYTE; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI1'; -function VarI2FromI4(lIn:LONG; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromI4'; - -function VarI2FromI8(i64In:LONG64; psOut:PSHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromI8'; -function VarI2FromR4(fltIn:Single; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromR4'; -function VarI2FromR8(dblIn:DOUBLE; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromR8'; -function VarI2FromCy(cyIn:CY; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromCy'; -function VarI2FromDate(dateIn:DATE; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromDate'; -function VarI2FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromStr'; -function VarI2FromDisp(pdispIn:IDispatch; lcid:LCID; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromDisp'; -function VarI2FromBool(boolIn:VARIANT_BOOL; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromBool'; -function VarI2FromI1(cIn:CHAR; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromI1'; -function VarI2FromUI2(uiIn:USHORT; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI2'; -function VarI2FromUI4(ulIn:ULONG; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI4'; - -function VarI2FromUI8(ui64In:ULONG64; psOut:PSHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI8'; -function VarI2FromDec(var pdecIn:TDecimal; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromDec'; -function VarI4FromUI1(bIn:BYTE; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI1'; -function VarI4FromI2(sIn:SHORT; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromI2'; - -function VarI4FromI8(i64In:LONG64; plOut:PLONG):HResult;stdcall;external oleaut32dll name 'VarI4FromI8'; -function VarI4FromR4(fltIn:Single; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromR4'; -function VarI4FromR8(dblIn:DOUBLE; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromR8'; -function VarI4FromCy(cyIn:CY; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromCy'; -function VarI4FromDate(dateIn:DATE; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromDate'; -function VarI4FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromStr'; -function VarI4FromDisp(dispIn:IDispatch; lcid:LCID; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromDisp'; -function VarI4FromBool(boolIn:VARIANT_BOOL; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromBool'; -function VarI4FromI1(cIn:CHAR; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromI1'; -function VarI4FromUI2(uiIn:USHORT; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI2'; -function VarI4FromUI4(ulIn:ULONG; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI4'; - -function VarI4FromUI8(ui64In:ULONG64; plOut:PLONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI8'; -function VarI4FromDec(var pdecIn:TDecimal; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromDec'; -function VarI4FromInt(intIn:cint; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromInt'; - -function VarI8FromUI1(bIn:BYTE; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI1'; -function VarI8FromI2(sIn:SHORT; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromI2'; -function VarI8FromI4(lIn:LONG; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromI4'; -function VarI8FromR4(fltIn:Single; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromR4'; -function VarI8FromR8(dblIn:DOUBLE; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromR8'; -function VarI8FromCy(cyIn:CY; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromCy'; -function VarI8FromDate(dateIn:DATE; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromDate'; -function VarI8FromStr(strIn:POLECHAR; lcid:LCID; dwFlags:dword; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromStr'; -function VarI8FromDisp(pdispIn:IDispatch; lcid:LCID; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromDisp'; -function VarI8FromBool(boolIn:VARIANT_BOOL; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromBool'; -function VarI8FromI1(cIn:CHAR; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromI1'; - -function VarI8FromUI2(uiIn:USHORT; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI2'; -function VarI8FromUI4(ulIn:ULONG; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI4'; -function VarI8FromUI8(ui64In:ULONG64; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI8'; -function VarI8FromDec(var pdecIn:TDecimal; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromDec'; -function VarI8FromInt(intIn:cint; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromInt'; - -{******************* } -function VarR4FromUI1(bIn:BYTE; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromUI1'; -function VarR4FromI2(sIn:SHORT; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromI2'; -function VarR4FromI4(lIn:LONG; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromI4'; - -function VarR4FromI8(i64In:LONG64; pfltOut:PSingle):HResult;stdcall;external oleaut32dll name 'VarR4FromI8'; -function VarR4FromR8(dblIn:DOUBLE; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromR8'; -function VarR4FromCy(cyIn:CY; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromCy'; -function VarR4FromDate(dateIn:DATE; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromDate'; -function VarR4FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromStr'; -function VarR4FromDisp(pdispIn:IDispatch; lcid:LCID; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromDisp'; -function VarR4FromBool(boolIn:VARIANT_BOOL; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromBool'; -function VarR4FromI1(cIn:CHAR; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromI1'; -function VarR4FromUI2(uiIn:USHORT; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromUI2'; -function VarR4FromUI4(ulIn:ULONG; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromUI4'; - -function VarR4FromUI8(ui64In:ULONG64; pfltOut:PSingle):HResult;stdcall;external oleaut32dll name 'VarR4FromUI8'; -function VarR4FromDec(var pdecIn:TDecimal; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromDec'; -function VarR8FromUI1(bIn:BYTE; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI1'; -function VarR8FromI2(sIn:SHORT; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI2'; -function VarR8FromI4(lIn:LONG; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI4'; - -function VarR8FromI8(i64In:LONG64; pdblOut:PDOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI8'; -function VarR8FromR4(fltIn:Single; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromR4'; -function VarR8FromCy(cyIn:CY; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromCy'; -function VarR8FromDate(dateIn:DATE; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromDate'; -function VarR8FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromStr'; -function VarR8FromDisp(pdispIn:IDispatch; lcid:LCID; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromDisp'; -function VarR8FromBool(boolIn:VARIANT_BOOL; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromBool'; -function VarR8FromI1(cIn:CHAR; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI1'; -function VarR8FromUI2(uiIn:USHORT; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI2'; -function VarR8FromUI4(ulIn:ULONG; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI4'; - -function VarR8FromUI8(ui64In:ULONG64; pdblOut:PDOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI8'; -function VarR8FromDec(var pdecIn:TDecimal; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromDec'; -function VarDateFromUI1(bIn:BYTE; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI1'; -function VarDateFromI2(sIn:SHORT; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI2'; -function VarDateFromI4(lIn:LONG; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI4'; - -function VarDateFromI8(i64In:LONG64; pdateOut:PDATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI8'; -function VarDateFromR4(fltIn:Single; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromR4'; -function VarDateFromR8(dblIn:DOUBLE; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromR8'; -function VarDateFromCy(cyIn:CY; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromCy'; -function VarDateFromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromStr'; - -function VarDateFromDisp(pdispIn:IDispatch; lcid:LCID; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromDisp'; -function VarDateFromBool(boolIn:VARIANT_BOOL; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromBool'; -function VarDateFromI1(cIn:CHAR; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI1'; -function VarDateFromUI2(uiIn:USHORT; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI2'; -function VarDateFromUI4(ulIn:ULONG; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI4'; - -function VarDateFromUI8(ui64In:ULONG64; pdateOut:PDATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI8'; -function VarDateFromDec(var pdecIn:TDecimal; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromDec'; -function VarCyFromUI1(bIn:BYTE; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromUI1'; -function VarCyFromI2(sIn:SHORT; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromI2'; -function VarCyFromI4(lIn:LONG; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromI4'; - -function VarCyFromI8(i64In:LONG64; pcyOut:PCurrency):HResult;stdcall;external oleaut32dll name 'VarCyFromI8'; -function VarCyFromR4(fltIn:Single; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromR4'; -function VarCyFromR8(dblIn:DOUBLE; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromR8'; -function VarCyFromDate(dateIn:DATE; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromDate'; -function VarCyFromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromStr'; -function VarCyFromDisp(pdispIn:IDispatch; lcid:LCID; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromDisp'; -function VarCyFromBool(boolIn:VARIANT_BOOL; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromBool'; -function VarCyFromI1(cIn:CHAR; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromI1'; -function VarCyFromUI2(uiIn:USHORT; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromUI2'; -function VarCyFromUI4(ulIn:ULONG; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromUI4'; - -function VarCyFromUI8(ui64In:ULONG64; pcyOut:PCurrency):HResult;stdcall;external oleaut32dll name 'VarCyFromUI8'; -function VarCyFromDec(var pdecIn:TDecimal; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromDec'; -function VarBstrFromUI1(bVal:BYTE; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI1'; -function VarBstrFromI2(iVal:SHORT; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI2'; -function VarBstrFromI4(lIn:LONG; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI4'; - -function VarBstrFromI8(i64In:LONG64; lcid:LCID; dwFlags:dword; pbstrOut:PBSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI8'; -function VarBstrFromR4(fltIn:Single; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromR4'; -function VarBstrFromR8(dblIn:DOUBLE; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromR8'; -function VarBstrFromCy(cyIn:CY; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromCy'; -function VarBstrFromDate(dateIn:DATE; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromDate'; -function VarBstrFromDisp(pdispIn:IDispatch; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromDisp'; -function VarBstrFromBool(boolIn:VARIANT_BOOL; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromBool'; -function VarBstrFromI1(cIn:CHAR; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI1'; -function VarBstrFromUI2(uiIn:USHORT; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI2'; -function VarBstrFromUI4(ulIn:ULONG; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI4'; - -function VarBstrFromUI8(ui64In:ULONG64; lcid:LCID; dwFlags:dword; pbstrOut:PBSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI8'; -function VarBstrFromDec(var pdecIn:TDecimal; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromDec'; -function VarBoolFromUI1(bIn:BYTE; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI1'; -function VarBoolFromI2(sIn:SHORT; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI2'; -function VarBoolFromI4(lIn:LONG; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI4'; - -function VarBoolFromI8(i64In:LONG64; pboolOut:PVARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI8'; -function VarBoolFromR4(fltIn:Single; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromR4'; -function VarBoolFromR8(dblIn:DOUBLE; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromR8'; -function VarBoolFromDate(dateIn:DATE; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromDate'; -function VarBoolFromCy(cyIn:CY; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromCy'; -function VarBoolFromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromStr'; -function VarBoolFromDisp(pdispIn:IDispatch; lcid:LCID; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromDisp'; -function VarBoolFromI1(cIn:CHAR; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI1'; -function VarBoolFromUI2(uiIn:USHORT; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI2'; -function VarBoolFromUI4(ulIn:ULONG; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI4'; - -function VarBoolFromUI8(i64In:ULONG64; pboolOut:PVARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI8'; -function VarBoolFromDec(var pdecIn:TDecimal; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromDec'; -function VarI1FromUI1(bIn:BYTE; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI1'; -function VarI1FromI2(uiIn:SHORT; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromI2'; -function VarI1FromI4(lIn:LONG; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromI4'; -function VarI1FromI8(i64In:LONG64; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromI8'; -function VarI1FromR4(fltIn:Single; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromR4'; -function VarI1FromR8(dblIn:DOUBLE; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromR8'; -function VarI1FromDate(dateIn:DATE; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromDate'; -function VarI1FromCy(cyIn:CY; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromCy'; -function VarI1FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromStr'; -function VarI1FromDisp(pdispIn:IDispatch; lcid:LCID; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromDisp'; -function VarI1FromBool(boolIn:VARIANT_BOOL; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromBool'; -function VarI1FromUI2(uiIn:USHORT; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI2'; -function VarI1FromUI4(ulIn:ULONG; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI4'; -function VarI1FromUI8(i64In:ULONG64; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI8'; -function VarI1FromDec(var pdecIn:TDecimal; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromDec'; -function VarUI2FromUI1(bIn:BYTE; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromUI1'; -function VarUI2FromI2(uiIn:SHORT; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI2'; -function VarUI2FromI4(lIn:LONG; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI4'; - -function VarUI2FromI8(i64In:LONG64; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI8'; -function VarUI2FromR4(fltIn:Single; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromR4'; -function VarUI2FromR8(dblIn:DOUBLE; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromR8'; -function VarUI2FromDate(dateIn:DATE; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromDate'; -function VarUI2FromCy(cyIn:CY; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromCy'; -function VarUI2FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromStr'; -function VarUI2FromDisp(pdispIn:IDispatch; lcid:LCID; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromDisp'; -function VarUI2FromBool(boolIn:VARIANT_BOOL; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromBool'; -function VarUI2FromI1(cIn:CHAR; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI1'; -function VarUI2FromUI4(ulIn:ULONG; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromUI4'; -function VarUI2FromUI8(i64In:ULONG64; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromUI8'; -function VarUI2FromDec(var pdecIn:TDecimal; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromDec'; -function VarUI4FromUI1(bIn:BYTE; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromUI1'; -function VarUI4FromI2(uiIn:SHORT; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI2'; -function VarUI4FromI4(lIn:LONG; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI4'; -function VarUI4FromI8(i64In:LONG64; var plOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI8'; -function VarUI4FromR4(fltIn:Single; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromR4'; -function VarUI4FromR8(dblIn:DOUBLE; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromR8'; -function VarUI4FromDate(dateIn:DATE; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromDate'; -function VarUI4FromCy(cyIn:CY; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromCy'; -function VarUI4FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromStr'; -function VarUI4FromDisp(pdispIn:IDispatch; lcid:LCID; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromDisp'; -function VarUI4FromBool(boolIn:VARIANT_BOOL; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromBool'; -function VarUI4FromI1(cIn:CHAR; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI1'; -function VarUI4FromUI2(uiIn:USHORT; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromUI2'; -function VarUI4FromUI8(ui64In:ULONG64; var plOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromUI8'; -function VarUI4FromDec(var pdecIn:TDecimal; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromDec'; - -{**************************************** } -function VarUI8FromUI1(bIn:BYTE; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromUI1'; -function VarUI8FromI2(sIn:SHORT; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI2'; -function VarUI8FromI4(lIn:LONG; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI4'; -function VarUI8FromI8(ui64In:LONG64; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI8'; -function VarUI8FromR4(fltIn:Single; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromR4'; -function VarUI8FromR8(dblIn:DOUBLE; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromR8'; -function VarUI8FromCy(cyIn:CY; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromCy'; -function VarUI8FromDate(dateIn:DATE; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromDate'; -function VarUI8FromStr(strIn:POLECHAR; lcid:LCID; dwFlags:dword; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromStr'; -function VarUI8FromDisp(pdispIn:IDispatch; lcid:LCID; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromDisp'; -function VarUI8FromBool(boolIn:VARIANT_BOOL; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromBool'; -function VarUI8FromI1(cIn:CHAR; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI1'; -function VarUI8FromUI2(uiIn:USHORT; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromUI2'; -function VarUI8FromUI4(ulIn:ULONG; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromUI4'; -function VarUI8FromDec(var pdecIn:TDecimal; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromDec'; -function VarUI8FromInt(intIn:cint; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromInt'; - -implementation - -function Succeeded(Res: HResult) : Boolean;inline; - begin - Result := Res and $80000000 = 0; - end; - - -function Failed(Res: HResult) : Boolean;inline; - begin - Result := Res and $80000000 <> 0; - end; - - -function ResultCode(Res: HResult) : Longint;inline; - begin - Result := Res and $0000FFFF; - end; - - -function ResultFacility(Res: HResult): Longint;inline; - begin - Result := (Res shr 16) and $00001FFF; - end; - - -function ResultSeverity(Res: HResult): Longint;inline; - begin - Result := Res shr 31; - end; - - -function MakeResult(Severity, Facility, Code: Longint): HResult;inline; - begin - Result := (Severity shl 31) or (Facility shl 16) or Code; - end; - - -end. diff --git a/plugins/mRadio/commctrl.pp b/plugins/mRadio/commctrl.pp deleted file mode 100644 index 56c995c210..0000000000 --- a/plugins/mRadio/commctrl.pp +++ /dev/null @@ -1,13751 +0,0 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2004 by Marco van de Voort - member of the Free Pascal development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - Original copyright statement follows. - - ************************************************************************** - * * - * commctrl.h - - Interface for the Windows Common Controls * - * * - * Version 1.2 * - * * - * Copyright (c) Microsoft Corporation. All rights reserved. * - * * - ************************************************************************** - - Note: This is an initial translation, and probably _full_ of bugs, this - is because my conversion tool was flawed, and a lot of postediting - was needed, which is bound to introduce bugs and inconsequencies - - This is an huge unit, and its maintenance and compability is not - a top-priority. - I prefer patches as bugfix over bugreports, and - preferably patches with lots of fixes at once. - - If you can't make a patch, at least research the bug thoroughly, - and provide as much info as possible (which windows version, - the C prototype from the sdk, etc) - - Help the FPC team, and try to do as much as possible yourself. -} - - -Unit CommCtrl; -Interface - -{$Mode ObjFPC} -Uses Windows,CTypes; - -// -------------------- - -// -------------------- -CONST CommCtrlDLL = 'comctl32.dll'; - -// Some reasonal defaults. -// for XP only set NT to $%0501 and IE to $0600 -// -// The NT conditional is only used for XP/no XP. - -{$DEFINE WIN32_IE=$0500} -{$DEFINE IE3PLUS} -{$DEFINE IE4PLUS} -{$define IE5plus} -{$define WIN32XP} -{$define win32vista} // till WC_STATICA -{$define ie501plus} -{$ifdef win32} - {$define _win32} -{$endif win32} -{$define ie6plus} -{$define ntddi_vista} -{$define NTDDI_WIN7} - -{$ifdef win64} - {$define _win32} -{$endif win64} - -{$DEFINE WIN32_WINNT=0} // NO XP -{.$DEFINE __IStream_INTERFACE_DEFINED__} // lpstream defined in activex afaik. - -// Sanity check in source. Not translated: -//if (WIN32_IE < $0400) && defined(WIN32_WINNT) && (WIN32_WINNT >= $0500)} -// #error _WIN32_IE setting conflicts with _WIN32_WINNT setting - -// -// Users of this header may define any number of these constants to avoid -// the definitions of each functional group. -// -// NOTOOLBAR Customizable bitmap-button toolbar control. -// NOUPDOWN Up and Down arrow increment/decrement control. -// NOSTATUSBAR Status bar control. -// NOMENUHELP APIs to help manage menus, especially with a status bar. -// NOTRACKBAR Customizable column-width tracking control. -// NODRAGLIST APIs to make a listbox source and sink drag&drop actions. -// NOPROGRESS Progress gas gauge. -// NOHOTKEY HotKey control -// NOHEADER Header bar control. -// NOIMAGEAPIS ImageList apis. -// NOLISTVIEW ListView control. -// NOTREEVIEW TreeView control. -// NOTABCONTROL Tab control. -// NOANIMATE Animate control. -// NOBUTTON Button control. -// NOSTATIC Static control. -// NOEDIT Edit control. -// NOLISTBOX Listbox control. -// NOCOMBOBOX Combobox control. -// NOSCROLLBAR Scrollbar control. -// -//============================================================================= -// Moved items due to forward defining limitations - -Const - MAX_LINKID_TEXT = 48; - L_MAX_URL_LENGTH = (2048 + 32 + length('://')); -Type - tagLITEM = Record - mask : UINT; - iLink : cint; - state : UINT; - stateMask : UINT; - szID : Array [0..MAX_LINKID_TEXT-1] OF WCHAR; - szUrl : Array [0..L_MAX_URL_LENGTH-1] OF WCHAR; - END; - LITEM = tagLITEM; - PLITEM = ^tagLITEM; - TLITEM = tagLITEM; -// PLITEM = ^tagLITEM; - - - -// include - -Procedure InitCommonControls; stdcall; external commctrldll name 'InitCommonControls'; - -{$ifdef ie3plus} -TYPE - - tagINITCOMMONCONTROLSEX = Record - dwSize : DWORD; // size of this structure - dwICC : DWORD; // flags indicating which classes to be initialized - END; - _INITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX; - LPINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX; - TINITCOMMONCONTROLSEX = tagINITCOMMONCONTROLSEX; - PINITCOMMONCONTROLSEX = ^tagINITCOMMONCONTROLSEX; - -CONST - ICC_LISTVIEW_CLASSES = $00000001; // listview, header - ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips - ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips - ICC_TAB_CLASSES = $00000008; // tab, tooltips - ICC_UPDOWN_CLASS = $00000010; // updown - ICC_PROGRESS_CLASS = $00000020; // progress - ICC_HOTKEY_CLASS = $00000040; // hotkey - ICC_ANIMATE_CLASS = $00000080; // animate - ICC_WIN95_CLASSES = $000000FF; - ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown - ICC_USEREX_CLASSES = $00000200; // comboex - ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control -{$ifdef ie4plus} - ICC_INTERNET_CLASSES = $00000800; - ICC_PAGESCROLLER_CLASS = $00001000; // page scroller - ICC_NATIVEFNTCTL_CLASS = $00002000; // native font control -{$ENDIF} -{$ifdef WIN32XP} - ICC_STANDARD_CLASSES = $00004000; - ICC_LINK_CLASS = $00008000; -{$ENDIF} - -function InitCommonControlsEx(var rec : TINITCOMMONCONTROLSEX):BOOL; stdcall; external commctrldll name 'InitCommonControlsEx'; -{$ENDIF} // _WIN32_IE >= 0x0300 - -CONST - ODT_HEADER = 100; - ODT_TAB = 101; - ODT_LISTVIEW = 102; - -//====== WM_NOTIFY codes (NMHDR.code values) ================================== - - -CONST - NM_FIRST = (0- 0); // generic to all controls - NM_LAST = (0- 99); - - LVN_FIRST = (0-100); // listview - LVN_LAST = (0-199); - -// Property sheet reserved (0U-200U) - (0U-299U) - see prsht.h - - HDN_FIRST = (0-300); // header - HDN_LAST = (0-399); - - TVN_FIRST = (0-400); // treeview - TVN_LAST = (0-499); - - TTN_FIRST = (0-520); // tooltips - TTN_LAST = (0-549); - - TCN_FIRST = (0-550); // tab control - TCN_LAST = (0-580); - -// Shell reserved (0U-580U) - (0U-589U) - - CDN_FIRST = (0-601); // common dialog (new) - CDN_LAST = (0-699); - - TBN_FIRST = (0-700); // toolbar - TBN_LAST = (0-720); - - UDN_FIRST = (0-721); // updown - UDN_LAST = (0-740); -{$ifdef ie3plus} - MCN_FIRST = (0-750); // monthcal - MCN_LAST = (0-759); - - DTN_FIRST = (0-760); // datetimepick - DTN_LAST = (0-799); - - CBEN_FIRST = (0-800); // combo box ex - CBEN_LAST = (0-830); - - RBN_FIRST = (0-831); // rebar - RBN_LAST = (0-859); -{$ENDIF} - -{$ifdef ie4plus} - IPN_FIRST = (0-860); // internet address - IPN_LAST = (0-879); // internet address - - SBN_FIRST = (0-880); // status bar - SBN_LAST = (0-899); - - PGN_FIRST = (0-900); // Pager Control - PGN_LAST = (0-950); - -{$ENDIF} - -{$ifdef ie5plus} -{$IFNDEF WMN_FIRST} - WMN_FIRST = (0-1000); - WMN_LAST = (0-1200); -{$ENDIF} -{$ENDIF} - -{$ifdef Win32XP} - BCN_FIRST = (0-1250); - BCN_LAST = (0-1350); -{$ENDIF} - -{$ifdef win32vista} - TRBN_FIRST = cardinal(0-1501); // trackbar - TRBN_LAST = cardinal(0-1519); -{$endif} - MSGF_COMMCTRL_BEGINDRAG = $4200; - MSGF_COMMCTRL_SIZEHEADER = $4201; - MSGF_COMMCTRL_DRAGSELECT = $4202; - MSGF_COMMCTRL_TOOLBARCUST = $4203; - -//====== Ranges for control message IDs ======================================= - - LVM_FIRST = $1000; // ListView messages - TV_FIRST = $1100; // TreeView messages - HDM_FIRST = $1200; // Header messages - TCM_FIRST = $1300; // Tab control messages - -{$ifdef ie4plus} - PGM_FIRST = $1400; // Pager control messages -{$ifdef win32xp}// actually 0x501=2003 or some sp? - ECM_FIRST = $1500; // Edit control messages - BCM_FIRST = $1600; // Button control messages - CBM_FIRST = $1700; // Combobox control messages -{$ENDIF} - CCM_FIRST = $2000; // Common control shared messages - CCM_LAST = (CCM_FIRST + $200); - - - CCM_SETBKCOLOR = (CCM_FIRST + 1); // lParam is bkColor - -TYPE - tagCOLORSCHEME = Record - dwSize : DWORD; - clrBtnHighlight : COLORREF; // highlight color - clrBtnShadow : COLORREF; // shadow color - END; - COLORSCHEME = tagCOLORSCHEME; - LPCOLORSCHEME = ^tagCOLORSCHEME; - TCOLORSCHEME = tagCOLORSCHEME; - PCOLORSCHEME = ^tagCOLORSCHEME; - -CONST - CCM_SETCOLORSCHEME = (CCM_FIRST + 2); // lParam is color scheme - CCM_GETCOLORSCHEME = (CCM_FIRST + 3); // fills in COLORSCHEME pointed to by lParam - CCM_GETDROPTARGET = (CCM_FIRST + 4); - CCM_SETUNICODEFORMAT = (CCM_FIRST + 5); - CCM_GETUNICODEFORMAT = (CCM_FIRST + 6); - -{$ifdef ie5plus} -{$ifdef win32xp} - COMCTL32_VERSION = 6; -{$ELSE} - COMCTL32_VERSION = 5; -{$ENDIF} - - CCM_SETVERSION = (CCM_FIRST + $7); - CCM_GETVERSION = (CCM_FIRST + $8); - CCM_SETNOTIFYWINDOW = (CCM_FIRST + $9); // wParam == hwndParent. -{$ifdef win32xp} - CCM_SETWINDOWTHEME = (CCM_FIRST + $b); - CCM_DPISCALE = (CCM_FIRST + $c); // wParam == Awareness -{$ENDIF} -{$ENDIF} // (_WIN32_IE >= 0x0500) - -{$ENDIF} // (_WIN32_IE >= 0x0400) - -{$ifdef ie4plus} -// for tooltips - INFOTIPSIZE = 1024; -{$ENDIF} - -//====== WM_NOTIFY Macros ===================================================== - -// Macro 8 -Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var _lParam : NMHDR ;fn :Pointer); - -// Macro 9 -Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var pnmhdr : NMHDR ; fn :pointer ):LRESULT; - -//====== Generic WM_NOTIFY notification codes ================================= - - -CONST - NM_OUTOFMEMORY = (NM_FIRST-1); - NM_CLICK = (NM_FIRST-2); // uses NMCLICK struct - NM_DBLCLK = (NM_FIRST-3); - NM_RETURN = (NM_FIRST-4); - NM_RCLICK = (NM_FIRST-5); // uses NMCLICK struct - NM_RDBLCLK = (NM_FIRST-6); - NM_SETFOCUS = (NM_FIRST-7); - NM_KILLFOCUS = (NM_FIRST-8); -{$ifdef ie3plus} - NM_CUSTOMDRAW = (NM_FIRST-12); - NM_HOVER = (NM_FIRST-13); -{$ENDIF} -{$ifdef ie4plus} - NM_NCHITTEST = (NM_FIRST-14); // uses NMMOUSE struct - NM_KEYDOWN = (NM_FIRST-15); // uses NMKEY struct - NM_RELEASEDCAPTURE = (NM_FIRST-16); - NM_SETCURSOR = (NM_FIRST-17); // uses NMMOUSE struct - NM_CHAR = (NM_FIRST-18); // uses NMCHAR struct -{$ENDIF} -{$ifdef ie401plus} - NM_TOOLTIPSCREATED = (NM_FIRST-19); // notify of when the tooltips window is create -{$ENDIF} -{$ifdef ie5plus} - NM_LDOWN = (NM_FIRST-20); - NM_RDOWN = (NM_FIRST-21); - NM_THEMECHANGED = (NM_FIRST-22); -{$ENDIF} -{$ifdef win32vista} - NM_FONTCHANGED = (NM_FIRST-23); - NM_CUSTOMTEXT = (NM_FIRST-24); // uses NMCUSTOMTEXT struct - NM_TVSTATEIMAGECHANGING = (NM_FIRST-24); // uses NMTVSTATEIMAGECHANGING struct, defined after HTREEITEM -{$endif} - -{$IFNDEF CCSIZEOF_STRUCT} - -// Macro 10 -// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) -{$ENDIF} - -//====== Generic WM_NOTIFY notification structures ============================ -{$ifdef ie401plus} - -TYPE - - tagNMTOOLTIPSCREATED = Record - hdr : NMHDR; - hwndToolTips : HWND; - END; - NMTOOLTIPSCREATED = tagNMTOOLTIPSCREATED; - LPNMTOOLTIPSCREATED = ^tagNMTOOLTIPSCREATED; - TNMTOOLTIPSCREATED = tagNMTOOLTIPSCREATED; - PNMTOOLTIPSCREATED = ^tagNMTOOLTIPSCREATED; - -{$ENDIF} - -{$ifdef ie4plus} -Type - tagNMMOUSE = Record - hdr : NMHDR; - dwItemSpec : DWORD_PTR; - dwItemData : DWORD_PTR; - pt : POINT; - dwHitInfo : LPARAM; // any specifics about where on the item or control the mouse is - END; - NMMOUSE = tagNMMOUSE; - LPNMMOUSE = ^tagNMMOUSE; - TNMMOUSE = tagNMMOUSE; - PNMMOUSE = ^tagNMMOUSE; - - - NMCLICK = NMMOUSE; - LPNMCLICK = LPNMMOUSE; - -// Generic structure to request an object of a specific type. - - tagNMOBJECTNOTIFY = Record - hdr : NMHDR; - iItem : cint; -{$IFDEF __IID_DEFINED__} - piid : PIID; -{$ELSE} - piid : Pointer; -{$ENDIF} - pObject : Pointer; - hResult : HRESULT; - dwFlags : DWORD; // control specific flags (hints as to where in iItem it hit) - END; - NMOBJECTNOTIFY = tagNMOBJECTNOTIFY; - LPNMOBJECTNOTIFY = ^tagNMOBJECTNOTIFY; - TNMOBJECTNOTIFY = tagNMOBJECTNOTIFY; - PNMOBJECTNOTIFY = ^tagNMOBJECTNOTIFY; - - -// Generic structure for a key - - tagNMKEY = Record - hdr : NMHDR; - nVKey : UINT; - uFlags : UINT; - END; - NMKEY = tagNMKEY; - LPNMKEY = ^tagNMKEY; - TNMKEY = tagNMKEY; - PNMKEY = ^tagNMKEY; - - -// Generic structure for a character - - tagNMCHAR = Record - hdr : NMHDR; - ch : UINT; - dwItemPrev : DWORD; // Item previously selected - dwItemNext : DWORD; // Item to be selected - END; - NMCHAR = tagNMCHAR; - LPNMCHAR = ^tagNMCHAR; - TNMCHAR = tagNMCHAR; - PNMCHAR = ^tagNMCHAR; - -{$ifdef win32vista} - tagNMCUSTOMTEXT = Record - hdr : NMHDR; - hDC : HDC; - lpString : LPCWSTR; - nCount : cint; - lpRect : LPRECT; - uFormat : UINT; - fLink : bool; - end; - - NMCUSTOMTEXT = tagNMCUSTOMTEXT; - LPNMCUSTOMTEXT = ^tagNMCUSTOMTEXT; - TNMCUSTOMTEXT = tagNMCUSTOMTEXT; - PNMCUSTOMTEXT = LPNMCUSTOMTEXT; -{$endif} -{$ENDIF} // _WIN32_IE >= 0x0400 - - -{$ifdef ie3plus} -//==================== CUSTOM DRAW ========================================== - -// custom draw return flags -// values under 0x00010000 are reserved for global custom draw values. -// above that are for specific controls -CONST - CDRF_DODEFAULT = $00000000; - CDRF_NEWFONT = $00000002; - CDRF_SKIPDEFAULT = $00000004; - - - CDRF_NOTIFYPOSTPAINT = $00000010; - CDRF_NOTIFYITEMDRAW = $00000020; -{$ifdef ie4plus} - CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context -{$ENDIF} - CDRF_NOTIFYPOSTERASE = $00000040; - CDRF_NOTIFYITEMERASE = $00000080; // according to lazarus headers. Can't find in sdk 6.0 (Vista sdk) - - -// drawstage flags -// values under 0x00010000 are reserved for global custom draw values. -// above that are for specific controls - CDDS_PREPAINT = $00000001; - CDDS_POSTPAINT = $00000002; - CDDS_PREERASE = $00000003; - CDDS_POSTERASE = $00000004; -// the 0x000010000 bit means it's individual item specific - CDDS_ITEM = $00010000; - CDDS_ITEMPREPAINT = (CDDS_ITEM OR CDDS_PREPAINT); - CDDS_ITEMPOSTPAINT = (CDDS_ITEM OR CDDS_POSTPAINT); - CDDS_ITEMPREERASE = (CDDS_ITEM OR CDDS_PREERASE); - CDDS_ITEMPOSTERASE = (CDDS_ITEM OR CDDS_POSTERASE); -{$ifdef ie4plus} - CDDS_SUBITEM = $00020000; -{$ENDIF} - -// itemState flags - CDIS_SELECTED = $0001; - CDIS_GRAYED = $0002; - CDIS_DISABLED = $0004; - CDIS_CHECKED = $0008; - CDIS_FOCUS = $0010; - CDIS_DEFAULT = $0020; - CDIS_HOT = $0040; - CDIS_MARKED = $0080; - CDIS_INDETERMINATE = $0100; -{$ifdef win32xp} - CDIS_SHOWKEYBOARDCUES = $0200; -{$ENDIF} -{$ifdef win32vista} - CDIS_NEARHOT = $0400; - CDIS_OTHERSIDEHOT = $0800; - CDIS_DROPHILITED = $1000; -{$endif} - -TYPE - - tagNMCUSTOMDRAWINFO = Record - hdr : NMHDR; - dwDrawStage : DWORD; - hdc : HDC; - rc : RECT; - dwItemSpec : DWORD_PTR; // this is control specific, but it's how to specify an item. valid only with CDDS_ITEM bit set - uItemState : UINT; - lItemlParam : LPARAM; - END; - NMCUSTOMDRAW = tagNMCUSTOMDRAWINFO; - LPNMCUSTOMDRAW = ^tagNMCUSTOMDRAWINFO; - TNMCUSTOMDRAWINFO = tagNMCUSTOMDRAWINFO; - PNMCUSTOMDRAWINFO = ^tagNMCUSTOMDRAWINFO; - PNMCustomDraw = PNMCUSTOMDRAWINFO; - TNMCustomDraw = tagNMCUSTOMDRAWINFO; - - tagNMTTCUSTOMDRAW = Record - nmcd : NMCUSTOMDRAW; - uDrawFlags : UINT; - END; - NMTTCUSTOMDRAW = tagNMTTCUSTOMDRAW; - LPNMTTCUSTOMDRAW = ^tagNMTTCUSTOMDRAW; - TNMTTCUSTOMDRAW = tagNMTTCUSTOMDRAW; - PNMTTCUSTOMDRAW = ^tagNMTTCUSTOMDRAW; - - -{$ENDIF} // _WIN32_IE >= 0x0300 - - -//====== IMAGE APIS =========================================================== - -{$IFNDEF NOIMAGEAPIS} - - -CONST - CLR_NONE = DWORD($FFFFFFFF); - CLR_DEFAULT = DWORD($FF000000); - - -{$IFNDEF IMAGELISTDRAWPARAMS} -{$ifdef ie3plus} -TYPE - _IMAGELISTDRAWPARAMS = Record - cbSize : DWORD; - himl : HIMAGELIST; - i : cint; - hdcDst : HDC; - x : cint; - y : cint; - cx : cint; - cy : cint; - xBitmap : cint; // x offest from the upperleft of bitmap - yBitmap : cint; // y offset from the upperleft of bitmap - rgbBk : COLORREF; - rgbFg : COLORREF; - fStyle : UINT; - dwRop : DWORD; -{$ifdef win32xp} - fState : DWORD; - Frame : DWORD; - crEffect : COLORREF; -{$ENDIF} - END; - tagIMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS; - IMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS; - LPIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS; - TIMAGELISTDRAWPARAMS = _IMAGELISTDRAWPARAMS; - PIMAGELISTDRAWPARAMS = ^_IMAGELISTDRAWPARAMS; - -// #define IMAGELISTDRAWPARAMS_V3_SIZE CCSIZEOF_STRUCT(IMAGELISTDRAWPARAMS, dwRop) - -{$ENDIF} // _WIN32_IE >= 0x0300 -{$ENDIF} - - -CONST - ILC_MASK = $00000001; - ILC_COLOR = $00000000; - ILC_COLORDDB = $000000FE; - ILC_COLOR4 = $00000004; - ILC_COLOR8 = $00000008; - ILC_COLOR16 = $00000010; - ILC_COLOR24 = $00000018; - ILC_COLOR32 = $00000020; - ILC_PALETTE = $00000800; // (not implemented) -{$ifdef win32xp} - ILC_MIRROR = $00002000; // Mirror the icons contained, if the process is mirrored - ILC_PERITEMMIRROR = $00008000; // Causes the mirroring code to mirror each item when inserting a set of images, verses the whole strip -{$ENDIF} -{$ifdef win32vista} - ILC_ORIGINALSIZE = $00010000; // Imagelist should accept smaller than set images and apply OriginalSize based on image added - ILC_HIGHQUALITYSCALE = $00020000; // Imagelist should enable use of the high quality scaler. -{$endif} - -function ImageList_Create(cx:cint;cy:cint;flags:UINT;cInitial:cint;cGrow:cint):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Create'; -function ImageList_Destroy(himl:HIMAGELIST):BOOL; stdcall; external commctrldll name 'ImageList_Destroy'; - -function ImageList_GetImageCount(himl:HIMAGELIST):cint; stdcall; external commctrldll name 'ImageList_GetImageCount'; -{$ifdef ie3plus} -function ImageList_SetImageCount(himl:HIMAGELIST;uNewCount:UINT):BOOL; stdcall; external commctrldll name 'ImageList_SetImageCount'; -{$ENDIF} - -function ImageList_Add(himl:HIMAGELIST;hbmImage:HBITMAP;hbmMask:HBITMAP):cint; stdcall; external commctrldll name 'ImageList_Add'; - -function ImageList_ReplaceIcon(himl:HIMAGELIST;i:cint;hicon:HICON):cint; stdcall; external commctrldll name 'ImageList_ReplaceIcon'; -function ImageList_SetBkColor(himl:HIMAGELIST;clrBk:COLORREF):COLORREF; stdcall; external commctrldll name 'ImageList_SetBkColor'; -function ImageList_GetBkColor(himl:HIMAGELIST):COLORREF; stdcall; external commctrldll name 'ImageList_GetBkColor'; -function ImageList_SetOverlayImage(himl:HIMAGELIST;iImage:cint;iOverlay:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetOverlayImage'; - -// Macro 11 -Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint; - -CONST - ILD_NORMAL = $00000000; - ILD_TRANSPARENT = $00000001; - ILD_MASK = $00000010; - ILD_IMAGE = $00000020; -{$ifdef ie3plus} - ILD_ROP = $00000040; -{$ENDIF} - ILD_BLEND25 = $00000002; - ILD_BLEND50 = $00000004; - ILD_OVERLAYMASK = $00000F00; - -// Macro 12 -// #define INDEXTOOVERLAYMASK(i) ((i) << 8) - -CONST - ILD_PRESERVEALPHA = $00001000; // This preserves the alpha channel in dest - ILD_SCALE = $00002000; // Causes the image to be scaled to cx, cy instead of clipped - ILD_DPISCALE = $00004000; -{$ifdef win32vista} - ILD_ASYNC = $00008000; -{$endif} - - ILD_SELECTED = ILD_BLEND50; - ILD_FOCUS = ILD_BLEND25; - ILD_BLEND = ILD_BLEND50; - CLR_HILIGHT = CLR_DEFAULT; - - ILS_NORMAL = $00000000; - ILS_GLOW = $00000001; - ILS_SHADOW = $00000002; - ILS_SATURATE = $00000004; - ILS_ALPHA = $00000008; - -{$ifdef win32vista} - ILGT_NORMAL = $00000000; - ILGT_ASYNC = $00000001; -{$endif} - -function ImageList_Draw(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;fStyle:UINT):BOOL; stdcall; external commctrldll name 'ImageList_Draw'; - - -{$IFDEF _WIN32} - -{$ifdef win32vista} -const - HBITMAP_CALLBACK =HBITMAP(-1); // only for SparseImageList -{$endif} -function ImageList_Replace(himl:HIMAGELIST;i:cint;hbmImage:HBITMAP;hbmMask:HBITMAP):BOOL; stdcall; external commctrldll name 'ImageList_Replace'; - -function ImageList_AddMasked(himl:HIMAGELIST;hbmImage:HBITMAP;crMask:COLORREF):cint; stdcall; external commctrldll name 'ImageList_AddMasked'; -function ImageList_DrawEx(himl:HIMAGELIST;i:cint;hdcDst:HDC;x:cint;y:cint;dx:cint;dy:cint;rgbBk:COLORREF;rgbFg:COLORREF;fStyle:UINT):BOOL; stdcall; external commctrldll name 'ImageList_DrawEx'; -{$ifdef ie3plus} -function ImageList_DrawIndirect(pimldp:PIMAGELISTDRAWPARAMS):BOOL; stdcall; external commctrldll name 'ImageList_DrawIndirect'; -{$ENDIF} -function ImageList_Remove(himl:HIMAGELIST;i:cint):BOOL; stdcall; external commctrldll name 'ImageList_Remove'; -function ImageList_GetIcon(himl:HIMAGELIST;i:cint;flags:UINT):HICON; stdcall; external commctrldll name 'ImageList_GetIcon'; -function ImageList_LoadImageA(hi:HINST;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageA'; -function ImageList_LoadImageW(hi:HINST;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageW'; -function ImageList_LoadImage(hi:HINST;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageA'; -function ImageList_LoadImage(hi:HINST;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_LoadImageW'; - -{$IFDEF UNICODE} -// function ImageList_LoadImageW(hi:HINSTANCE;lpbmp:LPCWSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageW'; -{$ELSE} -// function ImageList_LoadImageA(hi:HINSTANCE;lpbmp:LPCSTR;cx:cint;cGrow:cint;crMask:COLORREF;uType:UINT;uFlags:UINT):HIMAGELIST; external commctrldll name 'ImageList_LoadImageA'; -{$ENDIF} - -{$ifdef ie3plus} - -CONST - ILCF_MOVE = ($00000000); - ILCF_SWAP = ($00000001); - -function ImageList_Copy(himlDst:HIMAGELIST;iDst:cint;himlSrc:HIMAGELIST;iSrc:cint;uFlags:UINT):BOOL; stdcall; external commctrldll name 'ImageList_Copy'; -{$ENDIF} - -function ImageList_BeginDrag(himlTrack:HIMAGELIST;iTrack:cint;dxHotspot:cint;dyHotspot:cint):BOOL; stdcall; external commctrldll name 'ImageList_BeginDrag'; -function ImageList_EndDrag:BOOL; stdcall; external commctrldll name 'ImageList_EndDrag'; -function ImageList_DragEnter(hwndLock:HWND;x:cint;y:cint):BOOL; stdcall; external commctrldll name 'ImageList_DragEnter'; -function ImageList_DragLeave(hwndLock:HWND):BOOL; stdcall; external commctrldll name 'ImageList_DragLeave'; -function ImageList_DragMove(x:cint;y:cint):BOOL; stdcall; external commctrldll name 'ImageList_DragMove'; -function ImageList_SetDragCursorImage(himlDrag:HIMAGELIST;iDrag:cint;dxHotspot:cint;dyHotspot:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetDragCursorImage'; - -function ImageList_DragShowNolock(fShow:BOOL):BOOL; stdcall; external commctrldll name 'ImageList_DragShowNolock'; -function ImageList_GetDragImage(ppt:PPOINT;pptHotspot:PPOINT):HIMAGELIST; stdcall; external commctrldll name 'ImageList_GetDragImage'; - -// Macro 13 -Procedure ImageList_RemoveAll(himl:HIMAGELIST); - -// Macro 14 -function ImageList_ExtractIcon(hi:longint; himl:HIMAGELIST;i:longint):HICON; - - -// Macro 15 -Procedure ImageList_LoadBitmap(hi:HInst;bmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF); - -{$IFDEF __IStream_INTERFACE_DEFINED__} - -function ImageList_Read(pstm:ISTREAM):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Read'; -function ImageList_Write(himl:HIMAGELIST;pstm:ISTREAM):BOOL; stdcall; external commctrldll name 'ImageList_Write'; - -{$ifdef Win32XP} - -CONST - ILP_NORMAL = 0; // Writes or reads the stream using new sematics for this version of comctl32 - ILP_DOWNLEVEL = 1; // Write or reads the stream using downlevel sematics. - - -function ImageList_ReadEx(dwFlags:DWORD;pstm:ISTREAM;riid:TIID;ppv:PPointer):HRESULT; stdcall; external commctrldll name 'ImageList_ReadEx'; -function ImageList_WriteEx(himl:HIMAGELIST;dwFlags:DWORD;pstm:ISTREAM):HRESULT; stdcall; external commctrldll name 'ImageList_WriteEx'; -{$ENDIF} - -{$ENDIF} - -{$IFNDEF IMAGEINFO} -TYPE - - _IMAGEINFO = Record - hbmImage : HBITMAP; - hbmMask : HBITMAP; - Unused1 : cint; - Unused2 : cint; - rcImage : RECT; - END; - IMAGEINFO = _IMAGEINFO; - LPIMAGEINFO = ^_IMAGEINFO; - TIMAGEINFO = _IMAGEINFO; - PIMAGEINFO = ^_IMAGEINFO; - -{$ENDIF} - -function ImageList_GetIconSize(himl:HIMAGELIST;cx:Pint;cy:Pint):BOOL; stdcall; external commctrldll name 'ImageList_GetIconSize'; -function ImageList_GetIconSize(himl:HIMAGELIST;var cx:cint;var cy:cint):BOOL; stdcall; external commctrldll name 'ImageList_GetIconSize'; -function ImageList_SetIconSize(himl:HIMAGELIST;cx:cint;cy:cint):BOOL; stdcall; external commctrldll name 'ImageList_SetIconSize'; -function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;pImageInfo:PIMAGEINFO):BOOL; stdcall; external commctrldll name 'ImageList_GetImageInfo'; -function ImageList_GetImageInfo(himl:HIMAGELIST;i:cint;var pImageInfo:_IMAGEINFO):BOOL; stdcall; external commctrldll name 'ImageList_GetImageInfo'; -function ImageList_Merge(himl1:HIMAGELIST;i1:cint;himl2:HIMAGELIST;i2:cint;dx:cint;dy:cint):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Merge'; -{$ifdef ie4plus} -function ImageList_Duplicate(himl:HIMAGELIST):HIMAGELIST; stdcall; external commctrldll name 'ImageList_Duplicate'; -{$ENDIF} - - -{$ENDIF} - - -{$ENDIF} - - -//====== HEADER CONTROL ======================================================= - -{$IFNDEF NOHEADER} - -{$IFDEF _WIN32} - -CONST - WC_HEADERA = 'SysHeader32'; - WC_HEADERW = {L}'SysHeader32'; -{$IFDEF UNICODE} - WC_HEADER = WC_HEADERW; -{$ELSE} - WC_HEADER = WC_HEADERA; -{$ENDIF} - -{$ELSE} - -CONST - WC_HEADER = 'SysHeader'; -{$ENDIF} - -CONST - -// begin_r_commctrl - - HDS_HORZ = $0000; - HDS_BUTTONS = $0002; -{$ifdef ie3plus} - HDS_HOTTRACK = $0004; -{$ENDIF} - HDS_HIDDEN = $0008; - -{$ifdef ie3plus} - HDS_DRAGDROP = $0040; - HDS_FULLDRAG = $0080; -{$ENDIF} -{$ifdef ie5plus} - HDS_FILTERBAR = $0100; -{$ENDIF} - -{$ifdef win32xp} - HDS_FLAT = $0200; -{$ENDIF} -{$ifdef win32vista} - HDS_CHECKBOXES = $0400; - HDS_NOSIZING = $0800; - HDS_OVERFLOW = $1000; -{$endif} -// end_r_commctrl - -{$ifdef ie5plus} - - HDFT_ISSTRING = $0000; // HD_ITEM.pvFilter points to a HD_TEXTFILTER - HDFT_ISNUMBER = $0001; // HD_ITEM.pvFilter points to a INT - - HDFT_HASNOVALUE = $8000; // clear the filter, by setting this bit - -TYPE - - - _HD_TEXTFILTERA = Record - pszText : LPSTR; // [in] pointer to the buffer containing the filter (ANSI) - cchTextMax : cint; // [in] max size of buffer/edit control buffer - END; - HD_TEXTFILTERA = _HD_TEXTFILTERA; - LPHD_TEXTFILTERA = ^_HD_TEXTFILTERA; - THD_TEXTFILTERA = _HD_TEXTFILTERA; - PHD_TEXTFILTERA = ^_HD_TEXTFILTERA; - - - _HD_TEXTFILTERW = Record - pszText : LPWSTR; // [in] pointer to the buffer contiaining the filter (UNICODE) - cchTextMax : cint; // [in] max size of buffer/edit control buffer - END; - HD_TEXTFILTERW = _HD_TEXTFILTERW; - LPHD_TEXTFILTERW = ^_HD_TEXTFILTERW; - THD_TEXTFILTERW = _HD_TEXTFILTERW; - PHD_TEXTFILTERW = ^_HD_TEXTFILTERW; - -{$IFDEF UNICODE} - HD_TEXTFILTER = HD_TEXTFILTERW; - HDTEXTFILTER = HD_TEXTFILTERW; - LPHD_TEXTFILTER = LPHD_TEXTFILTERW; - LPHDTEXTFILTER = LPHD_TEXTFILTERW; -{$ELSE} - HD_TEXTFILTER = HD_TEXTFILTERA; - HDTEXTFILTER = HD_TEXTFILTERA; - LPHD_TEXTFILTER = LPHD_TEXTFILTERA; - LPHDTEXTFILTER = LPHD_TEXTFILTERA; -{$ENDIF} - - -{$ENDIF} // _WIN32_IE >= 0x0500 - -TYPE - - - _HD_ITEMA = Record - mask : UINT; - cxy : cint; - pszText : LPSTR; - hbm : HBITMAP; - cchTextMax : cint; - fmt : cint; - lParam : LPARAM; -{$ifdef ie3plus} - iImage : cint; // index of bitmap in ImageList - iOrder : cint; // where to draw this item -{$ENDIF} -{$ifdef ie5plus} - _type : UINT; // [in] filter type (defined what pvFilter is a pointer to) - pvFilter : Pointer; // [in] fillter data see above -{$ENDIF} -{$ifdef win32vista} - state : UINT; -{$endif} - END; - HDITEMA = _HD_ITEMA; - pHDITEMA = ^_HD_ITEMA; - - LPHDITEMA = ^_HD_ITEMA; - THD_ITEMA = _HD_ITEMA; - PHD_ITEMA = ^_HD_ITEMA; - THDItem = THD_ITEMA; - PHDItem = PHD_ITEMA; - - -// #define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA, lParam) -// #define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW, lParam) - - - _HD_ITEMW = Record - mask : UINT; - cxy : cint; - pszText : LPWSTR; - hbm : HBITMAP; - cchTextMax : cint; - fmt : cint; - lParam : LPARAM; -{$ifdef ie3plus} - iImage : cint; // index of bitmap in ImageList - iOrder : cint; -{$ENDIF} -{$ifdef ie5plus} - _type : UINT; // [in] filter type (defined what pvFilter is a pointer to) - pvFilter : Pointer; // [in] fillter data see above -{$ENDIF} -{$ifdef win32vista} - state : UINT; -{$endif} - END; - HDITEMW = _HD_ITEMW; - pHDITEMW = ^_HD_ITEMW; - LPHDITEMW = ^_HD_ITEMW; - THD_ITEMW = _HD_ITEMW; - PHD_ITEMW = ^_HD_ITEMW; - - -TYPE -{$IFDEF UNICODE} - HDITEM = HDITEMW; - LPHDITEM = LPHDITEMW; -// HDITEM_V1_SIZE = HDITEMW_V1_SIZE; -{$ELSE} - - HDITEM = HDITEMA; - LPHDITEM = LPHDITEMA; -// HDITEM_V1_SIZE = HDITEMA_V1_SIZE; -{$ENDIF} - - HD_ITEM = HDITEM; - - -CONST - - HDI_WIDTH = $0001; - HDI_HEIGHT = HDI_WIDTH; - HDI_TEXT = $0002; - HDI_FORMAT = $0004; - HDI_LPARAM = $0008; - HDI_BITMAP = $0010; -{$ifdef ie3plus} - HDI_IMAGE = $0020; - HDI_DI_SETITEM = $0040; - HDI_ORDER = $0080; -{$ENDIF} -{$ifdef ie5plus} - HDI_FILTER = $0100; -{$ENDIF} -{$ifdef win32vista} - HDI_STATE = $0200; -{$endif} - - HDF_LEFT = $0000; - HDF_RIGHT = $0001; - HDF_CENTER = $0002; - HDF_JUSTIFYMASK = $0003; - HDF_RTLREADING = $0004; - - HDF_OWNERDRAW = $8000; - HDF_STRING = $4000; - HDF_BITMAP = $2000; -{$ifdef ie3plus} - HDF_BITMAP_ON_RIGHT = $1000; - HDF_IMAGE = $0800; -{$ENDIF} - -{$ifdef win32xp} - HDF_SORTUP = $0400; - HDF_SORTDOWN = $0200; -{$ENDIF} -{$ifdef win32vista} - HDF_CHECKBOX = $0040; - HDF_CHECKED = $0080; - HDF_FIXEDWIDTH = $0100; // Can't resize the column; same as LVCFMT_FIXED_WIDTH - HDF_SPLITBUTTON = $1000000; // Column is a split button; same as LVCFMT_SPLITBUTTON -{$endif} - -{$ifdef win32vista} - HDIS_FOCUSED = $00000001; -{$endif} - - - HDM_GETITEMCOUNT = (HDM_FIRST + 0); - -// Macro 16 -Function Header_GetItemCount( hwndHD : hwnd):cint; - -CONST - HDM_INSERTITEMA = (HDM_FIRST + 1); - HDM_INSERTITEMW = (HDM_FIRST + 10); - -{$IFDEF UNICODE} - HDM_INSERTITEM = HDM_INSERTITEMW; -{$ELSE} - HDM_INSERTITEM = HDM_INSERTITEMA; -{$ENDIF} - -// Macro 17 -Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint; - - -CONST - HDM_DELETEITEM = (HDM_FIRST + 2); - -// Macro 18 -Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL; - -CONST - HDM_GETITEMA = (HDM_FIRST + 3); - HDM_GETITEMW = (HDM_FIRST + 11); - -{$IFDEF UNICODE} - HDM_GETITEM = HDM_GETITEMW; -{$ELSE} - HDM_GETITEM = HDM_GETITEMA; -{$ENDIF} - -// Macro 19 -Function Header_GetItem( hwndHD : hwnd; i : cint;var phdi : HD_ITEM ):BOOL; - -CONST - HDM_SETITEMA = (HDM_FIRST + 4); - HDM_SETITEMW = (HDM_FIRST + 12); - -{$IFDEF UNICODE} - HDM_SETITEM = HDM_SETITEMW; -{$ELSE} - HDM_SETITEM = HDM_SETITEMA; -{$ENDIF} - -// Macro 20 -Function Header_SetItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):BOOL; - -TYPE - - _HD_LAYOUT = Record - prc : PRECT; - pwpos : PWINDOWPOS; - END; - HDLAYOUT = _HD_LAYOUT; - LPHDLAYOUT = ^_HD_LAYOUT; - THD_LAYOUT = _HD_LAYOUT; - PHD_LAYOUT = ^_HD_LAYOUT; - -CONST - HDM_LAYOUT = (HDM_FIRST + 5); - -{$ifdef ie3plus} -TYPE - HD_LAYOUT = HDLAYOUT; -{$ELSE} -// HDLAYOUT = HD_LAYOUT; -{$ENDIF} - - -// Macro 21 -Function Header_Layout( hwndHD : hwnd;var playout : HD_LAYOUT ):BOOL; - -CONST - HHT_NOWHERE = $0001; - HHT_ONHEADER = $0002; - HHT_ONDIVIDER = $0004; - HHT_ONDIVOPEN = $0008; -{$ifdef ie5plus} - HHT_ONFILTER = $0010; - HHT_ONFILTERBUTTON = $0020; -{$ENDIF} - HHT_ABOVE = $0100; - HHT_BELOW = $0200; - HHT_TORIGHT = $0400; - HHT_TOLEFT = $0800; -{$ifdef win32vista} - HHT_ONITEMSTATEICON = $1000; - HHT_ONDROPDOWN = $2000; - HHT_ONOVERFLOW = $4000; -{$endif} - -TYPE - _HD_HITTESTINFO = Record - case integer of - 1: (pt : POINT;flags : UINT;iItem : cint); - { delphi } - 2: (point : POINT;dummyflags : UINT;Item : cint); - END; - HDHITTESTINFO = _HD_HITTESTINFO; - HD_HITTESTINFO = _HD_HITTESTINFO; - LPHDHITTESTINFO = ^_HD_HITTESTINFO; - THD_HITTESTINFO = _HD_HITTESTINFO; - PHD_HITTESTINFO = ^_HD_HITTESTINFO; - THDHitTestInfo = THD_HITTESTINFO; - PHDHitTestInfo = LPHDHITTESTINFO; - - -CONST - HDM_HITTEST = (HDM_FIRST + 6); - -{$ifdef ie3plus} - - HDM_GETITEMRECT = (HDM_FIRST + 7); - -// Macro 22 -Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL; - -CONST - HDM_SETIMAGELIST = (HDM_FIRST + 8); - -// Macro 23 -Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST; - -CONST - HDM_GETIMAGELIST = (HDM_FIRST + 9); - -// Macro 24 -Function Header_GetImageList( hwnd : hwnd):HIMAGELIST; - -CONST - HDM_ORDERTOINDEX = (HDM_FIRST + 15); - -// Macro 25 -Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint; - -CONST - HDM_CREATEDRAGIMAGE = (HDM_FIRST + 16); // wparam = which item (by index) - -// Macro 26 -Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST; - -CONST - HDM_GETORDERARRAY = (HDM_FIRST + 17); - -// Macro 27 -Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL; - -CONST - HDM_SETORDERARRAY = (HDM_FIRST + 18); - -// Macro 28 -Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : PInteger):BOOL;inline; - -// lparam = int array of size HDM_GETITEMCOUNT -// the array specifies the order that all items should be displayed. -// e.g. { 2, 0, 1} -// says the index 2 item should be shown in the 0ths position -// index 0 should be shown in the 1st position -// index 1 should be shown in the 2nd position - - -CONST - HDM_SETHOTDIVIDER = (HDM_FIRST + 19); - -// Macro 29 -Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint; - -// convenience message for external dragdrop -// wParam = BOOL specifying whether the lParam is a dwPos of the cursor -// position or the index of which divider to hotlight -// lParam = depends on wParam (-1 and wParm = FALSE turns off hotlight) -{$ENDIF} // _WIN32_IE >= 0x0300 - -{$ifdef ie5plus} -CONST - HDM_SETBITMAPMARGIN = (HDM_FIRST + 20); - -// Macro 30 -Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint; - -CONST - HDM_GETBITMAPMARGIN = (HDM_FIRST + 21); - -// Macro 31 -Function Header_GetBitmapMargin( hwnd : hwnd):cint; - -{$ENDIF} - - -{$ifdef ie4plus} - -CONST - HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - -// Macro 32 -Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - -CONST - HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; - -// Macro 33 -Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL; - -{$ENDIF} - -{$ifdef ie5plus} -CONST - HDM_SETFILTERCHANGETIMEOUT = (HDM_FIRST+22); - -// Macro 34 -Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint; - -CONST - HDM_EDITFILTER = (HDM_FIRST+23); - -// Macro 35 -Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint; - - -// Clear filter takes -1 as a column value to indicate that all -// the filter should be cleared. When this happens you will -// only receive a single filter changed notification. - -CONST - HDM_CLEARFILTER = (HDM_FIRST+24); - -// Macro 36 -Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint; - -// Macro 37 -Function Header_ClearAllFilters( hwnd : hwnd):cint; - -{$ENDIF} - -{$ifdef win32vista} -// HDM_TRANSLATEACCELERATOR = CCM_TRANSLATEACCELERATOR; // CCM_* not defined anywhere yet in w7 sdk - -const - HDM_GETITEMDROPDOWNRECT = (HDM_FIRST+25); - HDM_GETOVERFLOWRECT = (HDM_FIRST+26); - HDM_GETFOCUSEDITEM = (HDM_FIRST+27); - HDM_SETFOCUSEDITEM = (HDM_FIRST+28); - -// macro 37a through 37d -function Header_GetItemDropDownRect(hwnd : hwnd;iItem:cint; lprc:lprect):bool; -function Header_GetOverflowRect( hwnd : hwnd; lprc:lprect):bool; -function Header_GetFocusedItem (hwnd : hwnd):cint; -function Header_SetFocusedItem (hwnd:hwnd; iItem:cint):BOOL; -{$endif} - -CONST - HDN_ITEMCHANGINGA = (HDN_FIRST-0); - HDN_ITEMCHANGINGW = (HDN_FIRST-20); - HDN_ITEMCHANGEDA = (HDN_FIRST-1); - HDN_ITEMCHANGEDW = (HDN_FIRST-21); - HDN_ITEMCLICKA = (HDN_FIRST-2); - HDN_ITEMCLICKW = (HDN_FIRST-22); - HDN_ITEMDBLCLICKA = (HDN_FIRST-3); - HDN_ITEMDBLCLICKW = (HDN_FIRST-23); - HDN_DIVIDERDBLCLICKA = (HDN_FIRST-5); - HDN_DIVIDERDBLCLICKW = (HDN_FIRST-25); - HDN_BEGINTRACKA = (HDN_FIRST-6); - HDN_BEGINTRACKW = (HDN_FIRST-26); - HDN_ENDTRACKA = (HDN_FIRST-7); - HDN_ENDTRACKW = (HDN_FIRST-27); - HDN_TRACKA = (HDN_FIRST-8); - HDN_TRACKW = (HDN_FIRST-28); -{$ifdef ie3plus} - HDN_GETDISPINFOA = (HDN_FIRST-9); - HDN_GETDISPINFOW = (HDN_FIRST-29); - HDN_BEGINDRAG = (HDN_FIRST-10); - HDN_ENDDRAG = (HDN_FIRST-11); -{$ENDIF} -{$ifdef ie5plus} - HDN_FILTERCHANGE = (HDN_FIRST-12); - HDN_FILTERBTNCLICK = (HDN_FIRST-13); -{$ENDIF} -{$ifdef win32vista} - HDN_BEGINFILTEREDIT = (HDN_FIRST-14); - HDN_ENDFILTEREDIT = (HDN_FIRST-15); - - HDN_ITEMSTATEICONCLICK = (HDN_FIRST-16); - HDN_ITEMKEYDOWN = (HDN_FIRST-17); - HDN_DROPDOWN = (HDN_FIRST-18); - HDN_OVERFLOWCLICK = (HDN_FIRST-19); -{$endif} - -{$IFDEF UNICODE} - HDN_ITEMCHANGING = HDN_ITEMCHANGINGW; - HDN_ITEMCHANGED = HDN_ITEMCHANGEDW; - HDN_ITEMCLICK = HDN_ITEMCLICKW; - HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKW; - HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW; - HDN_BEGINTRACK = HDN_BEGINTRACKW; - HDN_ENDTRACK = HDN_ENDTRACKW; - HDN_TRACK = HDN_TRACKW; -{$ifdef ie3plus} - HDN_GETDISPINFO = HDN_GETDISPINFOW; -{$ENDIF} -{$ELSE} - HDN_ITEMCHANGING = HDN_ITEMCHANGINGA; - HDN_ITEMCHANGED = HDN_ITEMCHANGEDA; - HDN_ITEMCLICK = HDN_ITEMCLICKA; - HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKA; - HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKA; - HDN_BEGINTRACK = HDN_BEGINTRACKA; - HDN_ENDTRACK = HDN_ENDTRACKA; - HDN_TRACK = HDN_TRACKA; -{$ifdef ie3plus} - HDN_GETDISPINFO = HDN_GETDISPINFOA; -{$ENDIF} -{$ENDIF} - -TYPE - tagNMHEADERA = Record - hdr : NMHDR; - case integer of - 1: (iItem : cint;iButton : cint;pitem : PHDITEMA); - { delphi: } - 2: (Item : cint;Button : cint); - END; - NMHEADERA = tagNMHEADERA; - LPNMHEADERA = ^tagNMHEADERA; - TNMHEADERA = tagNMHEADERA; - PNMHEADERA = ^tagNMHEADERA; - - tagNMHEADERW = Record - hdr : NMHDR; - iItem : cint; - iButton : cint; - pitem : PHDITEMW; - END; - NMHEADERW = tagNMHEADERW; - LPNMHEADERW = ^tagNMHEADERW; - TNMHEADERW = tagNMHEADERW; - PNMHEADERW = ^tagNMHEADERW; - - -{$IFDEF UNICODE} - NMHEADER = NMHEADERW; - LPNMHEADER = LPNMHEADERW; -{$ELSE} - NMHEADER = NMHEADERA; - LPNMHEADER = LPNMHEADERA; -{$ENDIF} - - -{$ifdef ie3plus} - HD_NOTIFYA = NMHEADERA; - HD_NOTIFYW = NMHEADERW; -{$ELSE} -// tagNMHEADERA = _HD_NOTIFY; -// NMHEADERA = HD_NOTIFYA; -// tagHMHEADERW = _HD_NOTIFYW; -// NMHEADERW = HD_NOTIFYW; -{$ENDIF} - - HD_NOTIFY = NMHEADER; - THDNotify = HD_NOTIFY; - PHDNotify = ^HD_NOTIFY; - - tagNMHDDISPINFOW = Record - hdr : NMHDR; - iItem : cint; - mask : UINT; - pszText : LPWSTR; - cchTextMax : cint; - iImage : cint; - lParam : LPARAM; - END; - NMHDDISPINFOW = tagNMHDDISPINFOW; - LPNMHDDISPINFOW = ^tagNMHDDISPINFOW; - TNMHDDISPINFOW = tagNMHDDISPINFOW; - PNMHDDISPINFOW = ^tagNMHDDISPINFOW; - - - tagNMHDDISPINFOA = Record - hdr : NMHDR; - iItem : cint; - mask : UINT; - pszText : LPSTR; - cchTextMax : cint; - iImage : cint; - lParam : LPARAM; - END; - NMHDDISPINFOA = tagNMHDDISPINFOA; - LPNMHDDISPINFOA = ^tagNMHDDISPINFOA; - TNMHDDISPINFOA = tagNMHDDISPINFOA; - PNMHDDISPINFOA = ^tagNMHDDISPINFOA; - - - -{$IFDEF UNICODE} - NMHDDISPINFO = NMHDDISPINFOW; - LPNMHDDISPINFO = LPNMHDDISPINFOW; -{$ELSE} - NMHDDISPINFO = NMHDDISPINFOA; - LPNMHDDISPINFO = LPNMHDDISPINFOA; -{$ENDIF} - -{$ifdef ie5plus} - tagNMHDFILTERBTNCLICK = Record - hdr : NMHDR; - iItem : cint; - rc : RECT; - END; - NMHDFILTERBTNCLICK = tagNMHDFILTERBTNCLICK; - LPNMHDFILTERBTNCLICK = ^tagNMHDFILTERBTNCLICK; - TNMHDFILTERBTNCLICK = tagNMHDFILTERBTNCLICK; - PNMHDFILTERBTNCLICK = ^tagNMHDFILTERBTNCLICK; - -{$ENDIF} - -{$ENDIF} // NOHEADER - - -//====== TOOLBAR CONTROL ====================================================== - -{$IFNDEF NOTOOLBAR} - -{$IFDEF _WIN32} - -CONST - TOOLBARCLASSNAMEW = {L}'ToolbarWindow32'; - TOOLBARCLASSNAMEA = 'ToolbarWindow32'; - -{$IFDEF UNICODE} - TOOLBARCLASSNAME = TOOLBARCLASSNAMEW; -{$ELSE} - TOOLBARCLASSNAME = TOOLBARCLASSNAMEA; -{$ENDIF} - -{$ELSE} -CONST - TOOLBARCLASSNAME = 'ToolbarWindow'; -{$ENDIF} - -TYPE - - _TBBUTTON = Record - iBitmap : cint; - idCommand : cint; - fsState : BYTE; - fsStyle : BYTE; -{$IFDEF _WIN64} - bReserved : ARRAY[0..5] OF BYTE; // padding for alignment -{$ELSE} -{$IFDEF _WIN32} - bReserved : ARRAY[0..1] OF BYTE; // padding for alignment -{$ENDIF} -{$ENDIF} - dwData : DWORD_PTR; - iString : INT_PTR; - END; - TBBUTTON = _TBBUTTON; - PTBBUTTON = {NEAR} ^_TBBUTTON; // ??? - LPTBBUTTON = ^_TBBUTTON; - TTBBUTTON = _TBBUTTON; -// PTBBUTTON = ^_TBBUTTON; - - LPCTBBUTTON = {const} ^TBBUTTON; - - - _COLORMAP = Record - xfrom : COLORREF; - xto : COLORREF; - END; - COLORMAP = _COLORMAP; - LPCOLORMAP = ^_COLORMAP; - TCOLORMAP = _COLORMAP; - PCOLORMAP = ^_COLORMAP; - -function CreateToolbarEx(hwnd:HWND;ws:DWORD;wID:UINT;nBitmaps:cint; - hBMInst:HINST; - wBMID:UINT_PTR;lpButtons:LPCTBBUTTON;iNumButtons:cint;dxButton:cint; - dyButton:cint;dxBitmap:cint;dyBitmap:cint;uStructSize:UINT):HWND; stdcall; external commctrldll name 'CreateToolbarEx'; - -function CreateMappedBitmap(hInstance:HINST;idBitmap:INT_PTR;wFlags:UINT;lpColorMap:LPCOLORMAP;iNumMaps:cint):HBITMAP; stdcall; external commctrldll name 'CreateMappedBitmap'; - -CONST - CMB_MASKED = $02; - TBSTATE_CHECKED = $01; - TBSTATE_PRESSED = $02; - TBSTATE_ENABLED = $04; - TBSTATE_HIDDEN = $08; - TBSTATE_INDETERMINATE = $10; - TBSTATE_WRAP = $20; -{$ifdef ie3plus} - TBSTATE_ELLIPSES = $40; -{$ENDIF} -{$ifdef ie4plus} - TBSTATE_MARKED = $80; -{$ENDIF} - - TBSTYLE_BUTTON = $0000; // obsolete; use BTNS_BUTTON instead - TBSTYLE_SEP = $0001; // obsolete; use BTNS_SEP instead - TBSTYLE_CHECK = $0002; // obsolete; use BTNS_CHECK instead - TBSTYLE_GROUP = $0004; // obsolete; use BTNS_GROUP instead - TBSTYLE_CHECKGROUP = (TBSTYLE_GROUP OR TBSTYLE_CHECK);// obsolete; use BTNS_CHECKGROUP instead -{$ifdef ie3plus} - TBSTYLE_DROPDOWN = $0008; // obsolete; use BTNS_DROPDOWN instead -{$ENDIF} -{$ifdef ie4plus} - TBSTYLE_AUTOSIZE = $0010; // obsolete; use BTNS_AUTOSIZE instead - TBSTYLE_NOPREFIX = $0020; // obsolete; use BTNS_NOPREFIX instead -{$ENDIF} - - TBSTYLE_TOOLTIPS = $0100; - TBSTYLE_WRAPABLE = $0200; - TBSTYLE_ALTDRAG = $0400; -{$ifdef ie3plus} - TBSTYLE_FLAT = $0800; - TBSTYLE_LIST = $1000; - TBSTYLE_CUSTOMERASE = $2000; -{$ENDIF} -{$ifdef ie4plus} - TBSTYLE_REGISTERDROP = $4000; - TBSTYLE_TRANSPARENT = $8000; - TBSTYLE_EX_DRAWDDARROWS = $00000001; -{$ENDIF} - -{$ifdef ie5plus} - BTNS_BUTTON = TBSTYLE_BUTTON; // 0x0000 - BTNS_SEP = TBSTYLE_SEP; // 0x0001 - BTNS_CHECK = TBSTYLE_CHECK; // 0x0002 - BTNS_GROUP = TBSTYLE_GROUP; // 0x0004 - BTNS_CHECKGROUP = TBSTYLE_CHECKGROUP; // (TBSTYLE_GROUP | TBSTYLE_CHECK) - BTNS_DROPDOWN = TBSTYLE_DROPDOWN; // 0x0008 - BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE; // 0x0010; automatically calculate the cx of the button - BTNS_NOPREFIX = TBSTYLE_NOPREFIX; // 0x0020; this button should not have accel prefix -{$ifdef ie501plus} - BTNS_SHOWTEXT = $0040; // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set -{$ENDIF} // 0x0501 - BTNS_WHOLEDROPDOWN = $0080; // draw drop-down arrow, but without split arrow section -{$ENDIF} - -{$ifdef ie501plus} - TBSTYLE_EX_MIXEDBUTTONS = $00000008; - TBSTYLE_EX_HIDECLIPPEDBUTTONS = $00000010; // don't show partially obscured buttons -{$ENDIF} // 0x0501 - - -{$ifdef win32xp} - TBSTYLE_EX_DOUBLEBUFFER = $00000080; // Double Buffer the toolbar -{$ENDIF} - -{$ifdef ie4plus} -// Custom Draw Structure -TYPE - - _NMTBCUSTOMDRAW = Record - nmcd : NMCUSTOMDRAW; - hbrMonoDither : HBRUSH; - hbrLines : HBRUSH; // For drawing lines on buttons - hpenLines : HPEN; // For drawing lines on buttons - clrText : COLORREF; // Color of text - clrMark : COLORREF; // Color of text bk when marked. (only if TBSTATE_MARKED) - clrTextHighlight : COLORREF; // Color of text when highlighted - clrBtnFace : COLORREF; // Background of the button - clrBtnHighlight : COLORREF; // 3D highlight - clrHighlightHotTrack : COLORREF; // In conjunction with fHighlightHotTrack - - rcText : RECT; // Rect for text - nStringBkMode : cint; - nHLStringBkMode : cint; -{$ifdef win32xp} - iListGap : cint; -{$ENDIF} - END; - NMTBCUSTOMDRAW = _NMTBCUSTOMDRAW; - LPNMTBCUSTOMDRAW = ^_NMTBCUSTOMDRAW; - TNMTBCUSTOMDRAW = _NMTBCUSTOMDRAW; - PNMTBCUSTOMDRAW = ^_NMTBCUSTOMDRAW; - - -// Toolbar custom draw return flags - -CONST - TBCDRF_NOEDGES = $00010000; // Don't draw button edges - TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked - TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed - TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED - TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items -{$ENDIF} - -{$ifdef ie5plus} - TBCDRF_BLENDICON = $00200000; // Use ILD_BLEND50 on the icon image - TBCDRF_NOBACKGROUND = $00400000; // Use ILD_BLEND50 on the icon image -{$ENDIF} -{$ifdef win32vista} - TBCDRF_USECDCOLORS = $00800000; // Use CustomDrawColors to RenderText regardless of VisualStyle -{$endif} - -CONST - TB_ENABLEBUTTON = (WM_USER + 1); - TB_CHECKBUTTON = (WM_USER + 2); - TB_PRESSBUTTON = (WM_USER + 3); - TB_HIDEBUTTON = (WM_USER + 4); - TB_INDETERMINATE = (WM_USER + 5); -{$ifdef ie4plus} - TB_MARKBUTTON = (WM_USER + 6); -{$ENDIF} - TB_ISBUTTONENABLED = (WM_USER + 9); - TB_ISBUTTONCHECKED = (WM_USER + 10); - TB_ISBUTTONPRESSED = (WM_USER + 11); - TB_ISBUTTONHIDDEN = (WM_USER + 12); - TB_ISBUTTONINDETERMINATE = (WM_USER + 13); -{$ifdef ie4plus} - TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14); -{$ENDIF} - TB_SETSTATE = (WM_USER + 17); - TB_GETSTATE = (WM_USER + 18); - TB_ADDBITMAP = (WM_USER + 19); - -{$IFDEF _WIN32} - -TYPE - - tagTBADDBITMAP = Record - hInst : HINST; - nID : UINT_PTR; - END; - TBADDBITMAP = tagTBADDBITMAP; - LPTBADDBITMAP = ^tagTBADDBITMAP; - TTBADDBITMAP = tagTBADDBITMAP; - PTBADDBITMAP = ^tagTBADDBITMAP; - - - -CONST - HINST_COMMCTRL = HINST(-1); - IDB_STD_SMALL_COLOR = 0; - IDB_STD_LARGE_COLOR = 1; - IDB_VIEW_SMALL_COLOR = 4; - IDB_VIEW_LARGE_COLOR = 5; -{$ifdef ie3plus} - IDB_HIST_SMALL_COLOR = 8; - IDB_HIST_LARGE_COLOR = 9; -{$ENDIF} -{$ifdef win32vista} - IDB_HIST_NORMAL = 12; - IDB_HIST_HOT = 13; - IDB_HIST_DISABLED = 14; - IDB_HIST_PRESSED = 15; -{$endif} - -// icon indexes for standard bitmap - - STD_CUT = 0; - STD_COPY = 1; - STD_PASTE = 2; - STD_UNDO = 3; - STD_REDOW = 4; - STD_DELETE = 5; - STD_FILENEW = 6; - STD_FILEOPEN = 7; - STD_FILESAVE = 8; - STD_PRINTPRE = 9; - STD_PROPERTIES = 10; - STD_HELP = 11; - STD_FIND = 12; - STD_REPLACE = 13; - STD_PRINT = 14; - -// icon indexes for standard view bitmap - - VIEW_LARGEICONS = 0; - VIEW_SMALLICONS = 1; - VIEW_LIST = 2; - VIEW_DETAILS = 3; - VIEW_SORTNAME = 4; - VIEW_SORTSIZE = 5; - VIEW_SORTDATE = 6; - VIEW_SORTTYPE = 7; - VIEW_PARENTFOLDER = 8; - VIEW_NETCONNECT = 9; - VIEW_NETDISCONNECT = 10; - VIEW_NEWFOLDER = 11; -{$ifdef ie4plus} - VIEW_VIEWMENU = 12; -{$ENDIF} - -{$ifdef ie3plus} - HIST_BACK = 0; - HIST_FORWARD = 1; - HIST_FAVORITES = 2; - HIST_ADDTOFAVORITES = 3; - HIST_VIEWTREE = 4; -{$ENDIF} - -{$ENDIF} - -{$ifdef ie4plus} - TB_ADDBUTTONSA = (WM_USER + 20); - TB_INSERTBUTTONA = (WM_USER + 21); -{$ELSE} - TB_ADDBUTTONS = (WM_USER + 20); - TB_INSERTBUTTON = (WM_USER + 21); -{$ENDIF} - - TB_DELETEBUTTON = (WM_USER + 22); - TB_GETBUTTON = (WM_USER + 23); - TB_BUTTONCOUNT = (WM_USER + 24); - TB_COMMANDTOINDEX = (WM_USER + 25); - -{$IFDEF _WIN32} -TYPE - - tagTBSAVEPARAMSA = Record - hkr : HKEY; - pszSubKey : LPCSTR; - pszValueName : LPCSTR; - END; - TBSAVEPARAMSA = tagTBSAVEPARAMSA; - LPTBSAVEPARAMSA = ^tagTBSAVEPARAMSA; - TTBSAVEPARAMSA = tagTBSAVEPARAMSA; - PTBSAVEPARAMSA = ^tagTBSAVEPARAMSA; - - - tagTBSAVEPARAMSW = Record - hkr : HKEY; - pszSubKey : LPCWSTR; - pszValueName : LPCWSTR; - END; - TBSAVEPARAMSW = tagTBSAVEPARAMSW; - LPTBSAVEPARAMW = ^tagTBSAVEPARAMSW; - TTBSAVEPARAMSW = tagTBSAVEPARAMSW; - PTBSAVEPARAMSW = ^tagTBSAVEPARAMSW; - - -{$IFDEF UNICODE} - TBSAVEPARAMS = TBSAVEPARAMSW; - LPTBSAVEPARAMS = LPTBSAVEPARAMSW; -{$ELSE} - TBSAVEPARAMS = TBSAVEPARAMSA; - LPTBSAVEPARAMS = LPTBSAVEPARAMSA; -{$ENDIF} - -{$ENDIF} // _WIN32 - - -CONST - TB_SAVERESTOREA = (WM_USER + 26); - TB_SAVERESTOREW = (WM_USER + 76); - TB_CUSTOMIZE = (WM_USER + 27); - TB_ADDSTRINGA = (WM_USER + 28); - TB_ADDSTRINGW = (WM_USER + 77); - TB_GETITEMRECT = (WM_USER + 29); - TB_BUTTONSTRUCTSIZE = (WM_USER + 30); - TB_SETBUTTONSIZE = (WM_USER + 31); - TB_SETBITMAPSIZE = (WM_USER + 32); - TB_AUTOSIZE = (WM_USER + 33); - TB_GETTOOLTIPS = (WM_USER + 35); - TB_SETTOOLTIPS = (WM_USER + 36); - TB_SETPARENT = (WM_USER + 37); - TB_SETROWS = (WM_USER + 39); - TB_GETROWS = (WM_USER + 40); - TB_SETCMDID = (WM_USER + 42); - TB_CHANGEBITMAP = (WM_USER + 43); - TB_GETBITMAP = (WM_USER + 44); - TB_GETBUTTONTEXTA = (WM_USER + 45); - TB_GETBUTTONTEXTW = (WM_USER + 75); - TB_REPLACEBITMAP = (WM_USER + 46); -{$ifdef ie3plus} - TB_SETINDENT = (WM_USER + 47); - TB_SETIMAGELIST = (WM_USER + 48); - TB_GETIMAGELIST = (WM_USER + 49); - TB_LOADIMAGES = (WM_USER + 50); - TB_GETRECT = (WM_USER + 51); // wParam is the Cmd instead of index - TB_SETHOTIMAGELIST = (WM_USER + 52); - TB_GETHOTIMAGELIST = (WM_USER + 53); - TB_SETDISABLEDIMAGELIST = (WM_USER + 54); - TB_GETDISABLEDIMAGELIST = (WM_USER + 55); - TB_SETSTYLE = (WM_USER + 56); - TB_GETSTYLE = (WM_USER + 57); - TB_GETBUTTONSIZE = (WM_USER + 58); - TB_SETBUTTONWIDTH = (WM_USER + 59); - TB_SETMAXTEXTROWS = (WM_USER + 60); - TB_GETTEXTROWS = (WM_USER + 61); -{$ENDIF} // _WIN32_IE >= 0x0300 - -CONST -{$IFDEF UNICODE} - - TB_SAVERESTORE = TB_SAVERESTOREW; - TB_ADDSTRING = TB_ADDSTRINGW; -{$ELSE} - TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA; - TB_SAVERESTORE = TB_SAVERESTOREA; - TB_ADDSTRING = TB_ADDSTRINGA; -{$ENDIF} -{$ifdef ie4plus} - -CONST - TB_GETOBJECT = (WM_USER + 62); // wParam == IID, lParam void **ppv - TB_GETHOTITEM = (WM_USER + 71); - TB_SETHOTITEM = (WM_USER + 72); // wParam == iHotItem - TB_SETANCHORHIGHLIGHT = (WM_USER + 73); // wParam == TRUE/FALSE - TB_GETANCHORHIGHLIGHT = (WM_USER + 74); - TB_MAPACCELERATORA = (WM_USER + 78); // wParam == ch, lParam int * pidBtn - -TYPE - TBINSERTMARK = Record - iButton : cint; - dwFlags : DWORD; - END; - LPTBINSERTMARK = ^TBINSERTMARK; - TTBINSERTMARK = TBINSERTMARK; - PTBINSERTMARK = ^TBINSERTMARK; - - -CONST - TBIMHT_AFTER = $00000001; // TRUE = insert After iButton, otherwise before - TBIMHT_BACKGROUND = $00000002; // TRUE iff missed buttons completely - - TB_GETINSERTMARK = (WM_USER + 79); // lParam == LPTBINSERTMARK - TB_SETINSERTMARK = (WM_USER + 80); // lParam == LPTBINSERTMARK - TB_INSERTMARKHITTEST = (WM_USER + 81); // wParam == LPPOINT lParam == LPTBINSERTMARK - TB_MOVEBUTTON = (WM_USER + 82); - TB_GETMAXSIZE = (WM_USER + 83); // lParam == LPSIZE - TB_SETEXTENDEDSTYLE = (WM_USER + 84); // For TBSTYLE_EX_* - TB_GETEXTENDEDSTYLE = (WM_USER + 85); // For TBSTYLE_EX_* - TB_GETPADDING = (WM_USER + 86); - TB_SETPADDING = (WM_USER + 87); - TB_SETINSERTMARKCOLOR = (WM_USER + 88); - TB_GETINSERTMARKCOLOR = (WM_USER + 89); - - TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; // lParam is color scheme - TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam - - TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; - - TB_MAPACCELERATORW = (WM_USER + 90); // wParam == ch, lParam int * pidBtn - -CONST -{$IFDEF UNICODE} - TB_MAPACCELERATOR = TB_MAPACCELERATORW; -{$ELSE} - TB_MAPACCELERATOR = TB_MAPACCELERATORA; -{$ENDIF} - -{$ENDIF} // _WIN32_IE >= 0x0400 -TYPE - TBREPLACEBITMAP = Record - hInstOld : HINST; - nIDOld : UINT_PTR; - hInstNew : HINST; - nIDNew : UINT_PTR; - nButtons : cint; - END; - LPTBREPLACEBITMAP = ^TBREPLACEBITMAP; - TTBREPLACEBITMAP = TBREPLACEBITMAP; - PTBREPLACEBITMAP = ^TBREPLACEBITMAP; - - -{$IFDEF _WIN32} - -CONST - TBBF_LARGE = $0001; - TB_GETBITMAPFLAGS = (WM_USER + 41); - -{$ifdef ie4plus} - TBIF_IMAGE = $00000001; - TBIF_TEXT = $00000002; - TBIF_STATE = $00000004; - TBIF_STYLE = $00000008; - TBIF_LPARAM = $00000010; - TBIF_COMMAND = $00000020; - TBIF_SIZE = $00000040; - -{$ifdef ie5plus} - TBIF_BYINDEX = $80000000; // this specifies that the wparam in Get/SetButtonInfo is an index, not id -{$ENDIF} - -TYPE - - TBBUTTONINFOA = Record - cbSize : UINT; - dwMask : DWORD; - idCommand : cint; - iImage : cint; - fsState : BYTE; - fsStyle : BYTE; - cx : WORD; - lParam : DWORD_PTR; - pszText : LPSTR; - cchText : cint; - END; - LPTBBUTTONINFOA = ^TBBUTTONINFOA; - TTBBUTTONINFOA = TBBUTTONINFOA; - PTBBUTTONINFOA = ^TBBUTTONINFOA; - - - TBBUTTONINFOW = Record - cbSize : UINT; - dwMask : DWORD; - idCommand : cint; - iImage : cint; - fsState : BYTE; - fsStyle : BYTE; - cx : WORD; - lParam : DWORD_PTR; - pszText : LPWSTR; - cchText : cint; - END; - LPTBBUTTONINFOW = ^TBBUTTONINFOW; - TTBBUTTONINFOW= TBBUTTONINFOW; - PTBBUTTONINFOW= ^TBBUTTONINFOW; - - -{$IFDEF UNICODE} - TBBUTTONINFO = TBBUTTONINFOW; - LPTBBUTTONINFO = LPTBBUTTONINFOW; -{$ELSE} - TBBUTTONINFO = TBBUTTONINFOA; - LPTBBUTTONINFO = LPTBBUTTONINFOA; -{$ENDIF} - TTBButtonInfo = TBBUTTONINFO; - PTBButtonInfo = LPTBBUTTONINFO; - - -// BUTTONINFO APIs do NOT support the string pool. - -CONST - TB_GETBUTTONINFOW = (WM_USER + 63); - TB_SETBUTTONINFOW = (WM_USER + 64); - TB_GETBUTTONINFOA = (WM_USER + 65); - TB_SETBUTTONINFOA = (WM_USER + 66); - -{$IFDEF UNICODE} -CONST - TB_GETBUTTONINFO = TB_GETBUTTONINFOW; - TB_SETBUTTONINFO = TB_SETBUTTONINFOW; -{$ELSE} -CONST - TB_GETBUTTONINFO = TB_GETBUTTONINFOA; - TB_SETBUTTONINFO = TB_SETBUTTONINFOA; -{$ENDIF} - -CONST - TB_INSERTBUTTONW = (WM_USER + 67); - TB_ADDBUTTONSW = (WM_USER + 68); - - TB_HITTEST = (WM_USER + 69); - -// New post Win95/NT4 for InsertButton and AddButton. if iString member -// is a pointer to a string, it will be handled as a string like listview -// (although LPSTR_TEXTCALLBACK is not supported). - -{$IFDEF UNICODE} -CONST - TB_INSERTBUTTON = TB_INSERTBUTTONW; - TB_ADDBUTTONS = TB_ADDBUTTONSW; -{$ELSE} -CONST - TB_INSERTBUTTON = TB_INSERTBUTTONA; - TB_ADDBUTTONS = TB_ADDBUTTONSA; -{$ENDIF} - - -CONST - TB_SETDRAWTEXTFLAGS = (WM_USER + 70); // wParam == mask lParam == bit values - -{$ENDIF} // _WIN32_IE >= 0x0400 - -{$ifdef ie5plus} - - TB_GETSTRINGW = (WM_USER + 91); - TB_GETSTRINGA = (WM_USER + 92); -{$IFDEF UNICODE} - - TB_GETSTRING = TB_GETSTRINGW; -{$ELSE} - TB_GETSTRING = TB_GETSTRINGA; -{$ENDIF} - - -{$ENDIF} // _WIN32_IE >= 0x0500 - -{$ifdef win32xp} - -CONST - TBMF_PAD = $00000001; - TBMF_BARPAD = $00000002; - TBMF_BUTTONSPACING = $00000004; - -TYPE - - TBMETRICS = Record - cbSize : UINT; - dwMask : DWORD; - cxPad : cint; // PAD - cyPad : cint; - cxBarPad : cint; // BARPAD - cyBarPad : cint; - cxButtonSpacing : cint; // BUTTONSPACING - cyButtonSpacing : cint; - END; - LPTBMETRICS = ^TBMETRICS; - TTBMETRICS = TBMETRICS; - PTBMETRICS = ^TBMETRICS; - -CONST - TB_GETMETRICS = (WM_USER + 101); - TB_SETMETRICS = (WM_USER + 102); -{$ENDIF} - -{$ifdef win32vista} - TB_SETPRESSEDIMAGELIST = (WM_USER + 104); - TB_GETPRESSEDIMAGELIST = (WM_USER + 105); -{$endif} - -{$ifdef win32xp} - TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME; -{$ENDIF} - - TBN_GETBUTTONINFOA = (TBN_FIRST-0); - TBN_BEGINDRAG = (TBN_FIRST-1); - TBN_ENDDRAG = (TBN_FIRST-2); - TBN_BEGINADJUST = (TBN_FIRST-3); - TBN_ENDADJUST = (TBN_FIRST-4); - TBN_RESET = (TBN_FIRST-5); - TBN_QUERYINSERT = (TBN_FIRST-6); - TBN_QUERYDELETE = (TBN_FIRST-7); - TBN_TOOLBARCHANGE = (TBN_FIRST-8); - TBN_CUSTHELP = (TBN_FIRST-9); -{$ifdef ie3plus} - TBN_DROPDOWN = (TBN_FIRST - 10); -{$ENDIF} -{$ifdef ie4plus} - TBN_GETOBJECT = (TBN_FIRST - 12); - -// Structure for TBN_HOTITEMCHANGE notification -// -TYPE - - tagNMTBHOTITEM = Record - hdr : NMHDR; - idOld : cint; - idNew : cint; - dwFlags : DWORD; // HICF_* - END; - NMTBHOTITEM = tagNMTBHOTITEM; - LPNMTBHOTITEM = ^tagNMTBHOTITEM; - TNMTBHOTITEM = tagNMTBHOTITEM; - PNMTBHOTITEM = ^tagNMTBHOTITEM; - - -// Hot item change flags - -CONST - HICF_OTHER = $00000000; - HICF_MOUSE = $00000001; // Triggered by mouse - HICF_ARROWKEYS = $00000002; // Triggered by arrow keys - HICF_ACCELERATOR = $00000004; // Triggered by accelerator - HICF_DUPACCEL = $00000008; // This accelerator is not unique - HICF_ENTERING = $00000010; // idOld is invalid - HICF_LEAVING = $00000020; // idNew is invalid - HICF_RESELECT = $00000040; // hot item reselected - HICF_LMOUSE = $00000080; // left mouse button selected - HICF_TOGGLEDROPDOWN = $00000100; // Toggle button's dropdown state - - - TBN_HOTITEMCHANGE = (TBN_FIRST - 13); - TBN_DRAGOUT = (TBN_FIRST - 14); // this is sent when the user clicks down on a button then drags off the button - TBN_DELETINGBUTTON = (TBN_FIRST - 15); // uses TBNOTIFY - TBN_GETDISPINFOA = (TBN_FIRST - 16); // This is sent when the toolbar needs some display information - TBN_GETDISPINFOW = (TBN_FIRST - 17); // This is sent when the toolbar needs some display information - TBN_GETINFOTIPA = (TBN_FIRST - 18); - TBN_GETINFOTIPW = (TBN_FIRST - 19); - TBN_GETBUTTONINFOW = (TBN_FIRST - 20); -{$ifdef ie5plus} - TBN_RESTORE = (TBN_FIRST - 21); - TBN_SAVE = (TBN_FIRST - 22); - TBN_INITCUSTOMIZE = (TBN_FIRST - 23); - TBNRF_HIDEHELP = $00000001; - TBNRF_ENDCUSTOMIZE = $00000002; -{$ENDIF} // (_WIN32_IE >= 0x0500) - - - -{$ifdef ie5plus} - -TYPE - - tagNMTBSAVE = Record - hdr : NMHDR; - pData : PDWORD; - pCurrent : PDWORD; - cbData : UINT; - iItem : cint; - cButtons : cint; - tbButton : TBBUTTON; - END; - NMTBSAVE = tagNMTBSAVE; - LPNMTBSAVE = ^tagNMTBSAVE; - TNMTBSAVE = tagNMTBSAVE; - PNMTBSAVE = ^tagNMTBSAVE; - - - tagNMTBRESTORE = Record - hdr : NMHDR; - pData : PDWORD; - pCurrent : PDWORD; - cbData : UINT; - iItem : cint; - cButtons : cint; - cbBytesPerRecord : cint; - tbButton : TBBUTTON; - END; - NMTBRESTORE = tagNMTBRESTORE; - LPNMTBRESTORE = ^tagNMTBRESTORE; - TNMTBRESTORE = tagNMTBRESTORE; - PNMTBRESTORE = ^tagNMTBRESTORE; - -{$ENDIF} // (_WIN32_IE >= 0x0500) - - tagNMTBGETINFOTIPA = Record - hdr : NMHDR; - pszText : LPSTR; - cchTextMax : cint; - iItem : cint; - lParam : LPARAM; - END; - NMTBGETINFOTIPA = tagNMTBGETINFOTIPA; - LPNMTBGETINFOTIPA = ^tagNMTBGETINFOTIPA; - TNMTBGETINFOTIPA = tagNMTBGETINFOTIPA; - PNMTBGETINFOTIPA = ^tagNMTBGETINFOTIPA; - - - tagNMTBGETINFOTIPW = Record - hdr : NMHDR; - pszText : LPWSTR; - cchTextMax : cint; - iItem : cint; - lParam : LPARAM; - END; - NMTBGETINFOTIPW = tagNMTBGETINFOTIPW; - LPNMTBGETINFOTIPW = ^tagNMTBGETINFOTIPW; - TNMTBGETINFOTIPW = tagNMTBGETINFOTIPW; - PNMTBGETINFOTIPW = ^tagNMTBGETINFOTIPW; - - -{$IFDEF UNICODE} -CONST - TBN_GETINFOTIP = TBN_GETINFOTIPW; -TYPE - NMTBGETINFOTIP = NMTBGETINFOTIPW; - LPNMTBGETINFOTIP = LPNMTBGETINFOTIPW; -{$ELSE} -CONST - TBN_GETINFOTIP = TBN_GETINFOTIPA; -TYPE - NMTBGETINFOTIP = NMTBGETINFOTIPA; - LPNMTBGETINFOTIP = LPNMTBGETINFOTIPA; -{$ENDIF} - - -CONST - TBNF_IMAGE = $00000001; - TBNF_TEXT = $00000002; - TBNF_DI_SETITEM = $10000000; - -TYPE - - NMTBDISPINFOA = Record - hdr : NMHDR; - dwMask : DWORD; // [in] Specifies the values requested .[out] Client ask the data to be set for future use - idCommand : cint; // [in] id of button we're requesting info for - lParam : DWORD_PTR; // [in] lParam of button - iImage : cint; // [out] image index - pszText : LPSTR; // [out] new text for item - cchText : cint; // [in] size of buffer pointed to by pszText - END; - LPNMTBDISPINFOA = ^NMTBDISPINFOA; - TNMTBDISPINFOA = NMTBDISPINFOA; - PNMTBDISPINFOA = ^NMTBDISPINFOA; - - - NMTBDISPINFOW = Record - hdr : NMHDR; - dwMask : DWORD; //[in] Specifies the values requested .[out] Client ask the data to be set for future use - idCommand : cint; // [in] id of button we're requesting info for - lParam : DWORD_PTR; // [in] lParam of button - iImage : cint; // [out] image index - pszText : LPWSTR; // [out] new text for item - cchText : cint; // [in] size of buffer pointed to by pszText - END; - LPNMTBDISPINFOW = ^NMTBDISPINFOW; - TNMTBDISPINFOW = NMTBDISPINFOW; - PNMTBDISPINFOW = ^NMTBDISPINFOW; - -{$IFDEF UNICODE} -CONST - TBN_GETDISPINFO = TBN_GETDISPINFOW; -TYPE - NMTBDISPINFO = NMTBDISPINFOW; - LPNMTBDISPINFO = LPNMTBDISPINFOW; -{$ELSE} -CONST - TBN_GETDISPINFO = TBN_GETDISPINFOA; -TYPE - NMTBDISPINFO = NMTBDISPINFOA; - LPNMTBDISPINFO = LPNMTBDISPINFOA; -{$ENDIF} - -// Return codes for TBN_DROPDOWN - -CONST - TBDDRET_DEFAULT = 0; - TBDDRET_NODEFAULT = 1; - TBDDRET_TREATPRESSED = 2; // Treat as a standard press button - -{$ENDIF} -{$IFDEF UNICODE} - TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW; -{$ELSE} - TBN_GETBUTTONINFO = TBN_GETBUTTONINFOA; -{$ENDIF} -TYPE - -{$ifdef ie3plus} - tagNMTOOLBARA = Record - hdr : NMHDR; - iItem : cint; - tbButton : TBBUTTON; - cchText : cint; - pszText : LPSTR; -{$ifdef ie5plus} - rcButton : RECT; -{$ENDIF} - END; - NMTOOLBARA = tagNMTOOLBARA; - LPNMTOOLBARA = ^tagNMTOOLBARA; - LPNMTOOLBAR = LPNMTOOLBARA; - TNMTOOLBARA = tagNMTOOLBARA; - PNMTOOLBARA = LPNMTOOLBARA; -{$ENDIF} - LPTBNOTIFY = LPNMTOOLBARA; - TBNOTIFYA = NMTOOLBARA; - - -{$ifdef ie3plus} - tagNMTOOLBARW = Record - hdr : NMHDR; - iItem : cint; - tbButton : TBBUTTON; - cchText : cint; - pszText : LPWSTR; -{$ifdef ie5plus} - rcButton : RECT; -{$ENDIF} - END; - NMTOOLBARW = tagNMTOOLBARW; - LPNMTOOLBARW = ^tagNMTOOLBARW; - TNMTOOLBARW = tagNMTOOLBARW; - PNMTOOLBARW = ^tagNMTOOLBARW; -{$ENDIF} - - -{$ifdef ie3plus} - TBNOTIFYW = NMTOOLBARW; - LPTBNOTIFYA = LPNMTOOLBARA; -{$ELSE} - tagNMTOOLBARA = tagTBNOTIFYA; - NMTOOLBARA = TBNOTIFYA; - LPNMTOOLBARA = LPTBNOTIFYA; - tagNMTOOLBARW = tagTBNOTIFYW; - NMTOOLBARW = TBNOTIFYW; - LPNMTOOLBARW = LPTBNOTIFYW; -{$ENDIF} - - -{$IFDEF UNICODE} - NMTOOLBAR = NMTOOLBARW; - LPNMTOOLBAR = LPNMTOOLBARW; -{$ELSE} - NMTOOLBAR = NMTOOLBARA; - TNMTOOLBAR = NMTOOLBARA; - PNMTOOLBAR = LPNMTOOLBARA; - -{$ENDIF} - - TBNOTIFY = NMTOOLBAR; -{$ENDIF} - -{$ENDIF} // NOTOOLBAR - - LPTBNOTIFYW = LPNMTOOLBARW; - -{$ifdef ie3plus} -//====== REBAR CONTROL ======================================================== - -{$IFNDEF NOREBAR} - -{$IFDEF _WIN32} - -CONST - REBARCLASSNAMEW = {L}'ReBarWindow32'; - REBARCLASSNAMEA = 'ReBarWindow32'; - -{$IFDEF UNICODE} - REBARCLASSNAME = REBARCLASSNAMEW; -{$ELSE} - REBARCLASSNAME = REBARCLASSNAMEA; -{$ENDIF} - -{$ELSE} - -CONST - REBARCLASSNAME = 'ReBarWindow'; -{$ENDIF} - -CONST - RBIM_IMAGELIST = $00000001; - -// begin_r_commctrl - -{$ifdef ie4plus} - RBS_TOOLTIPS = $0100; - RBS_VARHEIGHT = $0200; - RBS_BANDBORDERS = $0400; - RBS_FIXEDORDER = $0800; - RBS_REGISTERDROP = $1000; - RBS_AUTOSIZE = $2000; - RBS_VERTICALGRIPPER = $4000; // this always has the vertical gripper (default for horizontal mode) - RBS_DBLCLKTOGGLE = $8000; -{$ELSE} - RBS_TOOLTIPS = $00000100; - RBS_VARHEIGHT = $00000200; - RBS_BANDBORDERS = $00000400; - RBS_FIXEDORDER = $00000800; -{$ENDIF} // _WIN32_IE >= 0x0400 - - -// end_r_commctrl - -TYPE - - tagREBARINFO = Record - cbSize : UINT; - fMask : UINT; -{$IFNDEF NOIMAGEAPIS} - himl : HIMAGELIST; -{$ELSE} - himl : HANDLE; -{$ENDIF} - END; - REBARINFO = tagREBARINFO; - LPREBARINFO = ^tagREBARINFO; - TREBARINFO = tagREBARINFO; - PREBARINFO = ^tagREBARINFO; - - -CONST - RBBS_BREAK = $00000001; // break to new line - RBBS_FIXEDSIZE = $00000002; // band can't be sized - RBBS_CHILDEDGE = $00000004; // edge around top & bottom of child window - RBBS_HIDDEN = $00000008; // don't show - RBBS_NOVERT = $00000010; // don't show when vertical - RBBS_FIXEDBMP = $00000020; // bitmap doesn't move during band resize -{$ifdef ie4plus } - RBBS_VARIABLEHEIGHT = $00000040; // allow autosizing of this child vertically - RBBS_GRIPPERALWAYS = $00000080; // always show the gripper - RBBS_NOGRIPPER = $00000100; // never show the gripper -{$ifdef ie5plus} - RBBS_USECHEVRON = $00000200; // display drop-down button for this band if it's sized smaller than ideal width -{$ifdef IE501plus} - RBBS_HIDETITLE = $00000400; // keep band title hidden - RBBS_TOPALIGN = $00000800; // keep band title hidden -{$ENDIF} // 0x0501 // -{$ENDIF} // 0x0500 // -{$ENDIF} // 0x0400 // - - RBBIM_STYLE = $00000001; - RBBIM_COLORS = $00000002; - RBBIM_TEXT = $00000004; - RBBIM_IMAGE = $00000008; - RBBIM_CHILD = $00000010; - RBBIM_CHILDSIZE = $00000020; - RBBIM_SIZE = $00000040; - RBBIM_BACKGROUND = $00000080; - RBBIM_ID = $00000100; -{$ifdef ie4plus} - RBBIM_IDEALSIZE = $00000200; - RBBIM_LPARAM = $00000400; - RBBIM_HEADERSIZE = $00000800; // control the size of the header -{$ENDIF} -{$ifdef win32vista} - RBBIM_CHEVRONLOCATION = $00001000; - RBBIM_CHEVRONSTATE = $00002000; -{$endif} - -TYPE - - tagREBARBANDINFOA = Record - cbSize : UINT; - fMask : UINT; - fStyle : UINT; - clrFore : COLORREF; - clrBack : COLORREF; - lpText : LPSTR; - cch : UINT; - iImage : cint; - hwndChild : HWND; - cxMinChild : UINT; - cyMinChild : UINT; - cx : UINT; - hbmBack : HBITMAP; - wID : UINT; -{$ifdef ie4plus} - cyChild : UINT; - cyMaxChild : UINT; - cyIntegral : UINT; - cxIdeal : UINT; - lParam : LPARAM; - cxHeader : UINT; -{$ENDIF} -{$ifdef win32vista} - rcChevronLocation : RECT; // the rect is in client co-ord wrt hwndChild - uChevronState : cUINT; // STATE_SYSTEM_* -{$endif} - END; - REBARBANDINFOA = tagREBARBANDINFOA; - LPREBARBANDINFOA = ^tagREBARBANDINFOA; - TREBARBANDINFOA = tagREBARBANDINFOA; - PREBARBANDINFOA = ^tagREBARBANDINFOA; - - LPCREBARBANDINFOA = ^REBARBANDINFOA; - -// #define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA, wID) -// #define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID) - - tagREBARBANDINFOW = Record - cbSize : UINT; - fMask : UINT; - fStyle : UINT; - clrFore : COLORREF; - clrBack : COLORREF; - lpText : LPWSTR; - cch : UINT; - iImage : cint; - hwndChild : HWND; - cxMinChild : UINT; - cyMinChild : UINT; - cx : UINT; - hbmBack : HBITMAP; - wID : UINT; -{$ifdef ie4plus} - cyChild : UINT; - cyMaxChild : UINT; - cyIntegral : UINT; - cxIdeal : UINT; - lParam : LPARAM; - cxHeader : UINT; -{$ENDIF} -{$ifdef win32vista} - rcChevronLocation : RECT; // the rect is in client co-ord wrt hwndChild - uChevronState : cUINT; // STATE_SYSTEM_* -{$endif} - - END; - REBARBANDINFOW = tagREBARBANDINFOW; - LPREBARBANDINFOW = ^tagREBARBANDINFOW; - TREBARBANDINFOW = tagREBARBANDINFOW; - PREBARBANDINFOW = ^tagREBARBANDINFOW; - - LPCREBARBANDINFOW = {const} ^REBARBANDINFOW; - -{$IFDEF UNICODE} - REBARBANDINFO = REBARBANDINFOW; - LPREBARBANDINFO = LPREBARBANDINFOW; - LPCREBARBANDINFO = LPCREBARBANDINFOW; - -// REBARBANDINFO_V3_SIZE = REBARBANDINFOW_V3_SIZE; -{$ELSE} - - REBARBANDINFO = REBARBANDINFOA; - LPREBARBANDINFO = LPREBARBANDINFOA; - LPCREBARBANDINFO = LPCREBARBANDINFOA; - - TRebarBandInfo = REBARBANDINFO; - PRebarBandInfo = ^LPREBARBANDINFO; - -// REBARBANDINFO_V3_SIZE = REBARBANDINFOA_V3_SIZE; -{$ENDIF} - -CONST - RB_INSERTBANDA = (WM_USER + 1); - RB_DELETEBAND = (WM_USER + 2); - RB_GETBARINFO = (WM_USER + 3); - RB_SETBARINFO = (WM_USER + 4); -{$ifdef IE4plus} - RB_GETBANDINFO = (WM_USER + 5); - RB_GETBANDINFO_PRE_IE4 = (WM_USER + 5); -{$ENDIF} - RB_SETBANDINFOA = (WM_USER + 6); - RB_SETPARENT = (WM_USER + 7); -{$ifdef ie4plus} - RB_HITTEST = (WM_USER + 8); - RB_GETRECT = (WM_USER + 9); -{$ENDIF} - RB_INSERTBANDW = (WM_USER + 10); - RB_SETBANDINFOW = (WM_USER + 11); - RB_GETBANDCOUNT = (WM_USER + 12); - RB_GETROWCOUNT = (WM_USER + 13); - RB_GETROWHEIGHT = (WM_USER + 14); -{$ifdef ie4plus} - RB_IDTOINDEX = (WM_USER + 16); // wParam == id - RB_GETTOOLTIPS = (WM_USER + 17); - RB_SETTOOLTIPS = (WM_USER + 18); - RB_SETBKCOLOR = (WM_USER + 19); // sets the default BK color - RB_GETBKCOLOR = (WM_USER + 20); // defaults to CLR_NONE - RB_SETTEXTCOLOR = (WM_USER + 21); - RB_GETTEXTCOLOR = (WM_USER + 22); // defaults to 0x00000000 - -{$ifdef Win32XP} - RBSTR_CHANGERECT = $0001; // flags for RB_SIZETORECT -{$ENDIF} - - RB_SIZETORECT = (WM_USER + 23); // resize the rebar/break bands and such to this rect (lparam) -{$ENDIF} // _WIN32_IE >= 0x0400 - - RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME; // lParam is color scheme - RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME; // fills in COLORSCHEME pointed to by lParam - -{$IFDEF UNICODE} - RB_INSERTBAND = RB_INSERTBANDW; - RB_SETBANDINFO = RB_SETBANDINFOW; -{$ELSE} - RB_INSERTBAND = RB_INSERTBANDA; - RB_SETBANDINFO = RB_SETBANDINFOA; -{$ENDIF} - -{$ifdef ie4plus} -// for manual drag control -// lparam == cursor pos - // -1 means do it yourself. - // -2 means use what you had saved before - -CONST - RB_BEGINDRAG = (WM_USER + 24); - RB_ENDDRAG = (WM_USER + 25); - RB_DRAGMOVE = (WM_USER + 26); - RB_GETBARHEIGHT = (WM_USER + 27); - RB_GETBANDINFOW = (WM_USER + 28); - RB_GETBANDINFOA = (WM_USER + 29); - -//TYPE -{$IFDEF UNICODE} -// RB_GETBANDINFO = RB_GETBANDINFOW; -{$ELSE} -// RB_GETBANDINFO = RB_GETBANDINFOA; -{$ENDIF} - -CONST - RB_MINIMIZEBAND = (WM_USER + 30); - RB_MAXIMIZEBAND = (WM_USER + 31); - - RB_GETDROPTARGET = (CCM_GETDROPTARGET); - - RB_GETBANDBORDERS = (WM_USER + 34); // returns in lparam = lprc the amount of edges added to band wparam - - RB_SHOWBAND = (WM_USER + 35); // show/hide band - RB_SETPALETTE = (WM_USER + 37); - RB_GETPALETTE = (WM_USER + 38); - RB_MOVEBAND = (WM_USER + 39); - - RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; - -{$ENDIF} // _WIN32_IE >= 0x0400 - -{$ifdef win32xp} - RB_GETBANDMARGINS = (WM_USER + 40); - RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME; -{$ENDIF} -{$ifdef win32vista} - RB_SETEXTENDEDSTYLE = (WM_USER + 41); - RB_GETEXTENDEDSTYLE = (WM_USER + 42); -{$endif} - -{$ifdef ie5plus} - RB_PUSHCHEVRON = (WM_USER + 43); -{$ENDIF} // _WIN32_IE >= 0x0500 - -{$ifdef win32vista} - RB_SETBANDWIDTH = (WM_USER + 44); // set width for docked band -{$endif} - - RBN_HEIGHTCHANGE = (RBN_FIRST - 0); - -{$ifdef ie4plus} - RBN_GETOBJECT = (RBN_FIRST - 1); - RBN_LAYOUTCHANGED = (RBN_FIRST - 2); - RBN_AUTOSIZE = (RBN_FIRST - 3); - RBN_BEGINDRAG = (RBN_FIRST - 4); - RBN_ENDDRAG = (RBN_FIRST - 5); - RBN_DELETINGBAND = (RBN_FIRST - 6); // Uses NMREBAR - RBN_DELETEDBAND = (RBN_FIRST - 7); // Uses NMREBAR - RBN_CHILDSIZE = (RBN_FIRST - 8); - -{$ifdef ie5plus} - RBN_CHEVRONPUSHED = (RBN_FIRST - 10); -{$ENDIF} // _WIN32_IE >= 0x0500 -{$ifdef win32vista} - RBN_SPLITTERDRAG = (RBN_FIRST - 11); -{$endif} - -{$ifdef ie5plus} - RBN_MINMAX = (RBN_FIRST - 21); -{$ENDIF} - -{$ifdef Win32XP} - RBN_AUTOBREAK = (RBN_FIRST - 22); -{$ENDIF} - -TYPE - - tagNMREBARCHILDSIZE = Record - hdr : NMHDR; - uBand : UINT; - wID : UINT; - rcChild : RECT; - rcBand : RECT; - END; - NMREBARCHILDSIZE = tagNMREBARCHILDSIZE; - LPNMREBARCHILDSIZE = ^tagNMREBARCHILDSIZE; - TNMREBARCHILDSIZE = tagNMREBARCHILDSIZE; - PNMREBARCHILDSIZE = ^tagNMREBARCHILDSIZE; - - - tagNMREBAR = Record - hdr : NMHDR; - dwMask : DWORD; // RBNM_* - uBand : UINT; - fStyle : UINT; - wID : UINT; - lParam : LPARAM; - END; - NMREBAR = tagNMREBAR; - LPNMREBAR = ^tagNMREBAR; - TNMREBAR = tagNMREBAR; - PNMREBAR = ^tagNMREBAR; - -// Mask flags for NMREBAR - -CONST - RBNM_ID = $00000001; - RBNM_STYLE = $00000002; - RBNM_LPARAM = $00000004; - -TYPE - - tagNMRBAUTOSIZE = Record - hdr : NMHDR; - fChanged : BOOL; - rcTarget : RECT; - rcActual : RECT; - END; - NMRBAUTOSIZE = tagNMRBAUTOSIZE; - LPNMRBAUTOSIZE = ^tagNMRBAUTOSIZE; - TNMRBAUTOSIZE = tagNMRBAUTOSIZE; - PNMRBAUTOSIZE = ^tagNMRBAUTOSIZE; - - -{$ifdef ie5plus} - tagNMREBARCHEVRON = Record - hdr : NMHDR; - uBand : UINT; - wID : UINT; - lParam : LPARAM; - rc : RECT; - lParamNM : LPARAM; - END; - NMREBARCHEVRON = tagNMREBARCHEVRON; - LPNMREBARCHEVRON = ^tagNMREBARCHEVRON; - TNMREBARCHEVRON = tagNMREBARCHEVRON; - PNMREBARCHEVRON = ^tagNMREBARCHEVRON; - -{$ENDIF} -{$ifdef win32vista} - tagNMREBARSPLITTER = record - hdr: NMHDR; - rcSizing: RECT; - end; - NMREBARSPLITTER = tagNMREBARSPLITTER; - LPNMREBARSPLITTER = ^tagNMREBARSPLITTER; - TNMREBARSPLITTER = tagNMREBARSPLITTER; - PNMREBARSPLITTER = LPNMREBARSPLITTER; -{$endif} - -{$ifdef Win32XP} -CONST - RBAB_AUTOSIZE = $0001; // These are not flags and are all mutually exclusive - RBAB_ADDBAND = $0002; - -TYPE - - tagNMREBARAUTOBREAK = Record - hdr : NMHDR; - uBand : UINT; - wID : UINT; - lParam : LPARAM; - uMsg : UINT; - fStyleCurrent : UINT; - fAutoBreak : BOOL; - END; - NMREBARAUTOBREAK = tagNMREBARAUTOBREAK; - LPNMREBARAUTOBREAK = ^tagNMREBARAUTOBREAK; - TNMREBARAUTOBREAK = tagNMREBARAUTOBREAK; - PNMREBARAUTOBREAK = ^tagNMREBARAUTOBREAK; - -{$ENDIF} - -CONST - RBHT_NOWHERE = $0001; - RBHT_CAPTION = $0002; - RBHT_CLIENT = $0003; - RBHT_GRABBER = $0004; -{$ifdef ie5plus} - RBHT_CHEVRON = $0008; -{$ENDIF} -{$ifdef win32vista} - RBHT_SPLITTER = $0010; -{$endif} - -TYPE - _RB_HITTESTINFO = Record - pt : POINT; - flags : UINT; - iBand : cint; - END; - RBHITTESTINFO = _RB_HITTESTINFO; - LPRBHITTESTINFO = ^_RB_HITTESTINFO; - TRB_HITTESTINFO = _RB_HITTESTINFO; - PRB_HITTESTINFO = ^_RB_HITTESTINFO; - PRBHitTestInfo = PRB_HITTESTINFO; - TRBHitTestInfo = TRB_HITTESTINFO; - - -{$ENDIF} // _WIN32_IE >= 0x0400 -{$ENDIF} // NOREBAR -{$ENDIF} // _WIN32_IE >= 0x0300 - -//====== TOOLTIPS CONTROL ===================================================== - -{$IFNDEF NOTOOLTIPS} - -{$IFDEF _WIN32} - -CONST - TOOLTIPS_CLASSW = {L}'tooltips_class32'; - TOOLTIPS_CLASSA = 'tooltips_class32'; - -{$IFDEF UNICODE} - TOOLTIPS_CLASS = TOOLTIPS_CLASSW; -{$ELSE} - TOOLTIPS_CLASS = TOOLTIPS_CLASSA; -{$ENDIF} - -{$ELSE} - -CONST - TOOLTIPS_CLASS = 'tooltips_class'; -{$ENDIF} - - - -TYPE - - tagTOOLINFOA = Record - cbSize : UINT; - uFlags : UINT; - hwnd : HWND; - uId : UINT_PTR; - rect : RECT; - hinst : HINST; - lpszText : LPSTR; -{$ifdef ie3plus} - lParam : LPARAM; -{$ENDIF} -{$ifdef Win32XP} - lpReserved : Pointer; -{$ENDIF} - END; - TTTOOLINFOA = tagTOOLINFOA; - PTOOLINFOA = {near} ^tagTOOLINFOA; - LPTTTOOLINFOA = ^tagTOOLINFOA; - TTOOLINFOA = tagTOOLINFOA; - LPTOOLINFOA = ^tagTOOLINFOA; - - - tagTOOLINFOW = Record - cbSize : UINT; - uFlags : UINT; - hwnd : HWND; - uId : UINT_PTR; - rect : RECT; - hinst : HINST; - lpszText : LPWSTR; -{$ifdef ie3plus} - lParam : LPARAM; -{$ENDIF} -{$ifdef Win32XP} - lpReserved : Pointer; -{$ENDIF} - END; - TTTOOLINFOW = tagTOOLINFOW; - PTOOLINFOW = {near} ^tagTOOLINFOW; - LPTTTOOLINFOW = ^tagTOOLINFOW; - TTOOLINFOW = tagTOOLINFOW; - LPTOOLINFOW = ^tagTOOLINFOW; - - -{$IFDEF UNICODE} - TTTOOLINFO = TTTOOLINFOW; - PTOOLINFO = PTOOLINFOW; - LPTTTOOLINFO = LPTTTOOLINFOW; -// TTTOOLINFO_V1_SIZE = TTTOOLINFOW_V1_SIZE; -{$ELSE} - PTOOLINFO = PTOOLINFOA; - TTTOOLINFO = TTTOOLINFOA; - LPTTTOOLINFO = LPTTTOOLINFOA; -// TTTOOLINFO_V1_SIZE = TTTOOLINFOA_V1_SIZE; -{$ENDIF} - - -TYPE - -{$ifdef ie3plus} -// LPTOOLINFOA = LPTTTOOLINFOA; -// LPTOOLINFOW = LPTTTOOLINFOW; - TOOLINFOA = TTTOOLINFOA; - TOOLINFOW = TTTOOLINFOW; -{$ELSE} -// TTTOOLINFOA = TOOLINFOA; -// LPTTTOOLINFOA = LPTOOLINFOA; -// TTTOOLINFOW = TOOLINFOW; -// LPTTTOOLINFOW = LPTOOLINFOW; -{$ENDIF} - - - - LPTOOLINFO = LPTTTOOLINFO; - - TOOLINFO = TTTOOLINFO; - -// #define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText) -// #define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText) -// #define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lParam) -// #define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lParam) -// #define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpReserved) -// #define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpReserved) - - -CONST -// begin_r_commctrl - - TTS_ALWAYSTIP = $01; - TTS_NOPREFIX = $02; -{$ifdef ie5plus} - TTS_NOANIMATE = $10; - TTS_NOFADE = $20; - TTS_BALLOON = $40; - TTS_CLOSE = $80; -{$ENDIF} -{$ifdef win32vista} - TTS_USEVISUALSTYLE = $100; // Use themed hyperlinks -{$endif} - -// end_r_commctrl - - TTF_IDISHWND = $0001; - -// Use this to center around trackpoint in trackmode -// -OR- to center around tool in normal mode. -// Use TTF_ABSOLUTE to place the tip exactly at the track coords when -// in tracking mode. TTF_ABSOLUTE can be used in conjunction with TTF_CENTERTIP -// to center the tip absolutely about the track point. - - TTF_CENTERTIP = $0002; - TTF_RTLREADING = $0004; - TTF_SUBCLASS = $0010; -{$ifdef ie3plus} - TTF_TRACK = $0020; - TTF_ABSOLUTE = $0080; - TTF_TRANSPARENT = $0100; -{$ifdef ie501plus} - TTF_PARSELINKS = $1000; -{$ENDIF} // _WIN32_IE >= 0x0501 - TTF_DI_SETITEM = $8000; // valid only on the TTN_NEEDTEXT callback -{$ENDIF} // _WIN32_IE >= 0x0300 - - - TTDT_AUTOMATIC = 0; - TTDT_RESHOW = 1; - TTDT_AUTOPOP = 2; - TTDT_INITIAL = 3; - -// ToolTip Icons (Set with TTM_SETTITLE) - TTI_NONE = 0; - TTI_INFO = 1; - TTI_WARNING = 2; - TTI_ERROR = 3; -{$ifdef win32vista} - TTI_INFO_LARGE = 4; - TTI_WARNING_LARGE = 5; - TTI_ERROR_LARGE = 6; -{$endif} - -// Tool Tip Messages - TTM_ACTIVATE = (WM_USER + 1); - TTM_SETDELAYTIME = (WM_USER + 3); - TTM_ADDTOOLA = (WM_USER + 4); - TTM_ADDTOOLW = (WM_USER + 50); - TTM_DELTOOLA = (WM_USER + 5); - TTM_DELTOOLW = (WM_USER + 51); - TTM_NEWTOOLRECTA = (WM_USER + 6); - TTM_NEWTOOLRECTW = (WM_USER + 52); - TTM_RELAYEVENT = (WM_USER + 7); - - TTM_GETTOOLINFOA = (WM_USER + 8); - TTM_GETTOOLINFOW = (WM_USER + 53); - - TTM_SETTOOLINFOA = (WM_USER + 9); - TTM_SETTOOLINFOW = (WM_USER + 54); - - TTM_HITTESTA = (WM_USER + 10); - TTM_HITTESTW = (WM_USER + 55); - TTM_GETTEXTA = (WM_USER + 11); - TTM_GETTEXTW = (WM_USER + 56); - TTM_UPDATETIPTEXTA = (WM_USER + 12); - TTM_UPDATETIPTEXTW = (WM_USER + 57); - TTM_GETTOOLCOUNT = (WM_USER + 13); - TTM_ENUMTOOLSA = (WM_USER + 14); - TTM_ENUMTOOLSW = (WM_USER + 58); - TTM_GETCURRENTTOOLA = (WM_USER + 15); - TTM_GETCURRENTTOOLW = (WM_USER + 59); - TTM_WINDOWFROMPOINT = (WM_USER + 16); -{$ifdef ie3plus} - TTM_TRACKACTIVATE = (WM_USER + 17); // wParam = TRUE/FALSE start end lparam = LPTOOLINFO - TTM_TRACKPOSITION = (WM_USER + 18); // lParam = dwPos - TTM_SETTIPBKCOLOR = (WM_USER + 19); - TTM_SETTIPTEXTCOLOR = (WM_USER + 20); - TTM_GETDELAYTIME = (WM_USER + 21); - TTM_GETTIPBKCOLOR = (WM_USER + 22); - TTM_GETTIPTEXTCOLOR = (WM_USER + 23); - TTM_SETMAXTIPWIDTH = (WM_USER + 24); - TTM_GETMAXTIPWIDTH = (WM_USER + 25); - TTM_SETMARGIN = (WM_USER + 26); // lParam = lprc - TTM_GETMARGIN = (WM_USER + 27); // lParam = lprc - TTM_POP = (WM_USER + 28); -{$ENDIF} -{$ifdef ie4plus} - TTM_UPDATE = (WM_USER + 29); -{$ENDIF} -{$ifdef ie5plus} - TTM_GETBUBBLESIZE = (WM_USER + 30); - TTM_ADJUSTRECT = (WM_USER + 31); - TTM_SETTITLEA = (WM_USER + 32); // wParam = TTI_*, lParam = char* szTitle - TTM_SETTITLEW = (WM_USER + 33); // wParam = TTI_*, lParam = wchar* szTitle -{$ENDIF} - -{$ifdef Win32XP} - TTM_POPUP = (WM_USER + 34); - TTM_GETTITLE = (WM_USER + 35); // wParam = 0, lParam = TTGETTITLE* - -TYPE - - _TTGETTITLE = Record - dwSize : DWORD; - uTitleBitmap : UINT; - cch : UINT; - pszTitle : PWCHAR; - END; - TTGETTITLE = _TTGETTITLE; - PTTGETTITLE = ^_TTGETTITLE; - TTTGETTITLE = _TTGETTITLE; - PTTTGETTITLE = ^TTTGETTITLE; - -{$ENDIF} - -const -{$IFDEF UNICODE} - TTM_ADDTOOL = TTM_ADDTOOLW; - TTM_DELTOOL = TTM_DELTOOLW; - TTM_NEWTOOLRECT = TTM_NEWTOOLRECTW; - TTM_GETTOOLINFO = TTM_GETTOOLINFOW; - TTM_SETTOOLINFO = TTM_SETTOOLINFOW; - TTM_HITTEST = TTM_HITTESTW; - TTM_GETTEXT = TTM_GETTEXTW; - TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTW; - TTM_ENUMTOOLS = TTM_ENUMTOOLSW; - TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLW; -{$ifdef ie5plus} - TTM_SETTITLE = TTM_SETTITLEW; -{$ENDIF} -{$ELSE} - TTM_ADDTOOL = TTM_ADDTOOLA; - TTM_DELTOOL = TTM_DELTOOLA; - TTM_NEWTOOLRECT = TTM_NEWTOOLRECTA; - TTM_GETTOOLINFO = TTM_GETTOOLINFOA; - TTM_SETTOOLINFO = TTM_SETTOOLINFOA; - TTM_HITTEST = TTM_HITTESTA; - TTM_GETTEXT = TTM_GETTEXTA; - TTM_UPDATETIPTEXT = TTM_UPDATETIPTEXTA; - TTM_ENUMTOOLS = TTM_ENUMTOOLSA; - TTM_GETCURRENTTOOL = TTM_GETCURRENTTOOLA; -{$ifdef ie5plus} - TTM_SETTITLE = TTM_SETTITLEA; -{$ENDIF} -{$ENDIF} - -{$ifdef win32xp} -CONST - TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME; -{$ENDIF} - - -TYPE - - - _TT_HITTESTINFOA = Record - hwnd : HWND; - pt : POINT; - ti : TTTOOLINFOA; - END; - TTHITTESTINFOA = _TT_HITTESTINFOA; - LPTTHITTESTINFOA = ^_TT_HITTESTINFOA; - TTT_HITTESTINFOA = _TT_HITTESTINFOA; - PTT_HITTESTINFOA = ^_TT_HITTESTINFOA; - - - - _TT_HITTESTINFOW = Record - hwnd : HWND; - pt : POINT; - ti : TTTOOLINFOW; - END; - TTHITTESTINFOW = _TT_HITTESTINFOW; - LPTTHITTESTINFOW = ^_TT_HITTESTINFOW; - TTT_HITTESTINFOW = _TT_HITTESTINFOW; - PTT_HITTESTINFOW = ^_TT_HITTESTINFOW; - -{$IFDEF UNICODE} - TTHITTESTINFO = TTHITTESTINFOW; - LPTTHITTESTINFO = LPTTHITTESTINFOW; -{$ELSE} - TTHITTESTINFO = TTHITTESTINFOA; - LPTTHITTESTINFO = LPTTHITTESTINFOA; -{$ENDIF} - LPHITTESTINFO = LPTTHITTESTINFO; -{$ifdef ie3plus} - LPHITTESTINFOW = LPTTHITTESTINFOW; - LPHITTESTINFOA = LPTTHITTESTINFOA; -{$ELSE} -// LPTTHITTESTINFOA = LPHITTESTINFOA; -// LPTTHITTESTINFOW = LPHITTESTINFOW; -{$ENDIF} - -CONST - TTN_GETDISPINFOA = (TTN_FIRST - 0); - TTN_GETDISPINFOW = (TTN_FIRST - 10); - TTN_SHOW = (TTN_FIRST - 1); - TTN_POP = (TTN_FIRST - 2); - TTN_LINKCLICK = (TTN_FIRST - 3); - -CONST -{$IFDEF UNICODE} - TTN_GETDISPINFO = TTN_GETDISPINFOW; -{$ELSE} - TTN_GETDISPINFO = TTN_GETDISPINFOA; -{$ENDIF} - -CONST - TTN_NEEDTEXT = TTN_GETDISPINFO; - - - TTN_NEEDTEXTA = TTN_GETDISPINFOA; - TTN_NEEDTEXTW = TTN_GETDISPINFOW; - - - - - -TYPE - - -// #define NMTTDISPINFOA_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOA, uFlags) -// #define NMTTDISPINFOW_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOW, uFlags) - - tagNMTTDISPINFOA = Record - hdr : NMHDR; - lpszText : LPSTR; - szText : Array[0..79] of char; - hinst : HINST; - uFlags : UINT; -{$ifdef ie3plus} - lParam : LPARAM; -{$ENDIF} - END; - NMTTDISPINFOA = tagNMTTDISPINFOA; - LPNMTTDISPINFOA = ^tagNMTTDISPINFOA; - TNMTTDISPINFOA = tagNMTTDISPINFOA; - PNMTTDISPINFOA = ^tagNMTTDISPINFOA; - - - tagNMTTDISPINFOW = Record - hdr : NMHDR; - lpszText : LPWSTR; - szText : Array[0..79] of WCHAR; - hinst : HINST; - uFlags : UINT; -{$ifdef ie3plus} - lParam : LPARAM; -{$ENDIF} - END; - NMTTDISPINFOW = tagNMTTDISPINFOW; - LPNMTTDISPINFOW = ^tagNMTTDISPINFOW; - TNMTTDISPINFOW = tagNMTTDISPINFOW; - PNMTTDISPINFOW = ^tagNMTTDISPINFOW; - -{$ifdef ie3plus} - TOOLTIPTEXTW = NMTTDISPINFOW; - TOOLTIPTEXTA = NMTTDISPINFOA; - LPTOOLTIPTEXTA = LPNMTTDISPINFOA; - LPTOOLTIPTEXTW = LPNMTTDISPINFOW; - TTOOLTIPTEXTW = NMTTDISPINFOW; - PTOOLTIPTEXTW = LPNMTTDISPINFOW; -{$ELSE} -// tagNMTTDISPINFOA = tagTOOLTIPTEXTA; - NMTTDISPINFOA = TOOLTIPTEXTA; -// LPNMTTDISPINFOA = LPTOOLTIPTEXTA; - tagNMTTDISPINFOW = tagTOOLTIPTEXTW; - NMTTDISPINFOW = TOOLTIPTEXTW; - LPNMTTDISPINFOW = LPTOOLTIPTEXTW; -{$ENDIF} - -TYPE - -{$IFDEF UNICODE} - NMTTDISPINFO = NMTTDISPINFOW; - LPNMTTDISPINFO = LPNMTTDISPINFOW; -// NMTTDISPINFO_V1_SIZE = NMTTDISPINFOW_V1_SIZE; -{$ELSE} - NMTTDISPINFO = NMTTDISPINFOA; - LPNMTTDISPINFO = LPNMTTDISPINFOA; -// NMTTDISPINFO_V1_SIZE = NMTTDISPINFOA_V1_SIZE; -{$ENDIF} - - TOOLTIPTEXT = NMTTDISPINFO; - LPTOOLTIPTEXT = LPNMTTDISPINFO; - -{$ENDIF} // NOTOOLTIPS - - -//====== STATUS BAR CONTROL =================================================== - -{$IFNDEF NOSTATUSBAR} - -// begin_r_commctrl -CONST - SBARS_SIZEGRIP = $0100; -{$ifdef ie5plus} - SBARS_TOOLTIPS = $0800; -{$ENDIF} - -{$ifdef ie4plus} -// this is a status bar flag, preference to SBARS_TOOLTIPS - SBT_TOOLTIPS = $0800; -{$ENDIF} - -// end_r_commctrl - -procedure DrawStatusTextA(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextA'; -Procedure DrawStatusTextW(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextW'; - -function CreateStatusWindowA(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowA'; -function CreateStatusWindowW(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowW'; - -function CreateStatusWindow(style:LONG;lpszText:LPCSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowA'; -procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextA'; -function CreateStatusWindow(style:LONG;lpszText:LPCWSTR;hwndParent:HWND;wID:UINT):HWND; stdcall; external commctrldll name 'CreateStatusWindowW'; -Procedure DrawStatusText(hDC:HDC;lprc:LPRECT;pszText:LPCWSTR;uFlags:UINT); stdcall; external commctrldll name 'DrawStatusTextW'; - -CONST -{$IFDEF _WIN32} - STATUSCLASSNAMEW = {L}'msctls_statusbar32'; - STATUSCLASSNAMEA = 'msctls_statusbar32'; - -{$IFDEF UNICODE} - STATUSCLASSNAME = STATUSCLASSNAMEW; -{$ELSE} - STATUSCLASSNAME = STATUSCLASSNAMEA; -{$ENDIF} -{$ELSE} - STATUSCLASSNAME = 'msctls_statusbar'; -{$ENDIF} - - SB_SETTEXTA = (WM_USER+1); - SB_SETTEXTW = (WM_USER+11); - SB_GETTEXTA = (WM_USER+2); - SB_GETTEXTW = (WM_USER+13); - SB_GETTEXTLENGTHA = (WM_USER+3); - SB_GETTEXTLENGTHW = (WM_USER+12); - - - SB_SETPARTS = (WM_USER+4); - SB_GETPARTS = (WM_USER+6); - SB_GETBORDERS = (WM_USER+7); - SB_SETMINHEIGHT = (WM_USER+8); - SB_SIMPLE = (WM_USER+9); - SB_GETRECT = (WM_USER+10); -{$ifdef ie3plus} - SB_ISSIMPLE = (WM_USER+14); -{$ENDIF} -{$ifdef ie4plus} - SB_SETICON = (WM_USER+15); - SB_SETTIPTEXTA = (WM_USER+16); - SB_SETTIPTEXTW = (WM_USER+17); - SB_GETTIPTEXTA = (WM_USER+18); - SB_GETTIPTEXTW = (WM_USER+19); - SB_GETICON = (WM_USER+20); - SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; -{$ENDIF} -{$IFDEF UNICODE} - SB_GETTEXT = SB_GETTEXTW; - SB_SETTEXT = SB_SETTEXTW; - SB_GETTEXTLENGTH = SB_GETTEXTLENGTHW; -{$ifdef ie4plus} - SB_SETTIPTEXT = SB_SETTIPTEXTW; - SB_GETTIPTEXT = SB_GETTIPTEXTW; -{$ENDIF} -{$ELSE} - SB_GETTEXT = SB_GETTEXTA; - SB_SETTEXT = SB_SETTEXTA; - SB_GETTEXTLENGTH = SB_GETTEXTLENGTHA; -{$ifdef ie4plus} - SB_SETTIPTEXT = SB_SETTIPTEXTA; - SB_GETTIPTEXT = SB_GETTIPTEXTA; -{$ENDIF} -{$ENDIF} - - SBT_OWNERDRAW = $1000; - SBT_NOBORDERS = $0100; - SBT_POPOUT = $0200; - SBT_RTLREADING = $0400; -{$ifdef ie5plus} - SBT_NOTABPARSING = $0800; -{$ENDIF} - - SB_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor - -/// status bar notifications -{$ifdef ie4plus} - SBN_SIMPLEMODECHANGE = (SBN_FIRST - 0); -{$ENDIF} - -{$ifdef ie5plus} -// refers to the data saved for simple mode - SB_SIMPLEID = $00ff; -{$ENDIF} - -{$ENDIF} // NOSTATUSBAR - -//====== MENU HELP ============================================================ - -{$IFNDEF NOMENUHELP} - -Procedure MenuHelp(uMsg:UINT;wParam:WPARAM;lParam:LPARAM;hMainMenu:HMENU;hInst:HINST;hwndStatus:HWND;lpwIDs:PUINT); stdcall; external commctrldll name 'MenuHelp'; -function ShowHideMenuCtl(hWnd:HWND;uFlags:UINT_PTR;lpInfo:LPINT):BOOL; stdcall; external commctrldll name 'ShowHideMenuCtl'; -Procedure GetEffectiveClientRect(hWnd:HWND;lprc:LPRECT;lpInfo:LPINT); stdcall; external commctrldll name 'GetEffectiveClientRect'; - -CONST - MINSYSCOMMAND = SC_SIZE; -{$ENDIF} - - -//====== TRACKBAR CONTROL ===================================================== - -{$IFNDEF NOTRACKBAR} - -CONST - -{$IFDEF _WIN32} - - TRACKBAR_CLASSA = 'msctls_trackbar32'; - TRACKBAR_CLASSW = {L}'msctls_trackbar32'; - -{$IFDEF UNICODE} - TRACKBAR_CLASS = TRACKBAR_CLASSW; -{$ELSE} - TRACKBAR_CLASS = TRACKBAR_CLASSA; -{$ENDIF} -{$ELSE} - TRACKBAR_CLASS = 'msctls_trackbar'; -{$ENDIF} - -// begin_r_commctrl - - TBS_AUTOTICKS = $0001; - TBS_VERT = $0002; - TBS_HORZ = $0000; - TBS_TOP = $0004; - TBS_BOTTOM = $0000; - TBS_LEFT = $0004; - TBS_RIGHT = $0000; - TBS_BOTH = $0008; - TBS_NOTICKS = $0010; - TBS_ENABLESELRANGE = $0020; - TBS_FIXEDLENGTH = $0040; - TBS_NOTHUMB = $0080; -{$ifdef ie3plus} - TBS_TOOLTIPS = $0100; -{$ENDIF} -{$ifdef ie5plus} - TBS_REVERSED = $0200; // Accessibility hint: the smaller number (usually the min value) means "high" and the larger number (usually the max value) means "low" -{$ENDIF} - -{$ifdef ie501plus} - TBS_DOWNISLEFT = $0400; // Down=Left and Up=Right (default is Down=Right and Up=Left) -{$ENDIF} -{$ifdef win32vista} - TBS_NOTIFYBEFOREMOVE = $0800; // Trackbar should notify parent before repositioning the slider due to user action (enables snapping) -{$endif} -{$ifdef NTDDI_VISTA} - TBS_TRANSPARENTBKGND = $1000; // Background is painted by the parent via WM_PRINTCLIENT -{$endif} - -// end_r_commctrl - - TBM_GETPOS = (WM_USER); - TBM_GETRANGEMIN = (WM_USER+1); - TBM_GETRANGEMAX = (WM_USER+2); - TBM_GETTIC = (WM_USER+3); - TBM_SETTIC = (WM_USER+4); - TBM_SETPOS = (WM_USER+5); - TBM_SETRANGE = (WM_USER+6); - TBM_SETRANGEMIN = (WM_USER+7); - TBM_SETRANGEMAX = (WM_USER+8); - TBM_CLEARTICS = (WM_USER+9); - TBM_SETSEL = (WM_USER+10); - TBM_SETSELSTART = (WM_USER+11); - TBM_SETSELEND = (WM_USER+12); - TBM_GETPTICS = (WM_USER+14); - TBM_GETTICPOS = (WM_USER+15); - TBM_GETNUMTICS = (WM_USER+16); - TBM_GETSELSTART = (WM_USER+17); - TBM_GETSELEND = (WM_USER+18); - TBM_CLEARSEL = (WM_USER+19); - TBM_SETTICFREQ = (WM_USER+20); - TBM_SETPAGESIZE = (WM_USER+21); - TBM_GETPAGESIZE = (WM_USER+22); - TBM_SETLINESIZE = (WM_USER+23); - TBM_GETLINESIZE = (WM_USER+24); - TBM_GETTHUMBRECT = (WM_USER+25); - TBM_GETCHANNELRECT = (WM_USER+26); - TBM_SETTHUMBLENGTH = (WM_USER+27); - TBM_GETTHUMBLENGTH = (WM_USER+28); -{$ifdef ie3plus} - TBM_SETTOOLTIPS = (WM_USER+29); - TBM_GETTOOLTIPS = (WM_USER+30); - TBM_SETTIPSIDE = (WM_USER+31); -// TrackBar Tip Side flags - TBTS_TOP = 0; - TBTS_LEFT = 1; - TBTS_BOTTOM = 2; - TBTS_RIGHT = 3; - - TBM_SETBUDDY = (WM_USER+32); // wparam = BOOL fLeft; (or right) - TBM_GETBUDDY = (WM_USER+33); // wparam = BOOL fLeft; (or right) -{$ENDIF} -{$ifdef ie4plus} - TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; -{$ENDIF} - - - TB_LINEUP = 0; - TB_LINEDOWN = 1; - TB_PAGEUP = 2; - TB_PAGEDOWN = 3; - TB_THUMBPOSITION = 4; - TB_THUMBTRACK = 5; - TB_TOP = 6; - TB_BOTTOM = 7; - TB_ENDTRACK = 8; - - -{$ifdef ie3plus} -// custom draw item specs - TBCD_TICS = $0001; - TBCD_THUMB = $0002; - TBCD_CHANNEL = $0003; -{$ENDIF} -{$ifdef win32vista} - TRBN_THUMBPOSCHANGING = (TRBN_FIRST-1); -{$endif} -{$ENDIF} // trackbar - -//====== DRAG LIST CONTROL ==================================================== - -{$IFNDEF NODRAGLIST} -TYPE - - tagDRAGLISTINFO = Record - uNotification : UINT; - hWnd : HWND; - ptCursor : POINT; - END; - DRAGLISTINFO = tagDRAGLISTINFO; - LPDRAGLISTINFO = ^tagDRAGLISTINFO; - TDRAGLISTINFO = tagDRAGLISTINFO; - PDRAGLISTINFO = ^tagDRAGLISTINFO; - - - -CONST - DL_BEGINDRAG = (WM_USER+133); - DL_DRAGGING = (WM_USER+134); - DL_DROPPED = (WM_USER+135); - DL_CANCELDRAG = (WM_USER+136); - - DL_CURSORSET = 0; - DL_STOPCURSOR = 1; - DL_COPYCURSOR = 2; - DL_MOVECURSOR = 3; - - DRAGLISTMSGSTRING = 'commctrl_DragListMsg'; // TEXT("commctrl_DragListMsg"); - -function MakeDragList(hLB:HWND):BOOL; stdcall; external commctrldll name 'MakeDragList'; -Procedure DrawInsert(handParent:HWND;hLB:HWND;nItem:cint); stdcall; external commctrldll name 'DrawInsert'; -function LBItemFromPt(hLB:HWND;pt:POINT;bAutoScroll:BOOL):cint; stdcall; external commctrldll name 'LBItemFromPt'; - -{$ENDIF} - -//====== UPDOWN CONTROL ======================================================= - -{$IFNDEF NOUPDOWN} -CONST -{$IFDEF _WIN32} - - UPDOWN_CLASSA = 'msctls_updown32'; - UPDOWN_CLASSW = {L}'msctls_updown32'; - -{$IFDEF UNICODE} - UPDOWN_CLASS = UPDOWN_CLASSW; -{$ELSE} - UPDOWN_CLASS = UPDOWN_CLASSA; -{$ENDIF} -{$ELSE} - UPDOWN_CLASS = 'msctls_updown'; -{$ENDIF} - -TYPE - - _UDACCEL = Record - nSec : UINT; - nInc : UINT; - END; - UDACCEL = _UDACCEL; - LPUDACCEL = ^_UDACCEL; - TUDACCEL = _UDACCEL; - PUDACCEL = ^_UDACCEL; - -CONST - UD_MAXVAL = $7fff; - UD_MINVAL = (-UD_MAXVAL); - -// begin_r_commctrl - - UDS_WRAP = $0001; - UDS_SETBUDDYINT = $0002; - UDS_ALIGNRIGHT = $0004; - UDS_ALIGNLEFT = $0008; - UDS_AUTOBUDDY = $0010; - UDS_ARROWKEYS = $0020; - UDS_HORZ = $0040; - UDS_NOTHOUSANDS = $0080; -{$ifdef ie3plus} - UDS_HOTTRACK = $0100; -{$ENDIF} - -// end_r_commctrl - - UDM_SETRANGE = (WM_USER+101); - UDM_GETRANGE = (WM_USER+102); - UDM_SETPOS = (WM_USER+103); - UDM_GETPOS = (WM_USER+104); - UDM_SETBUDDY = (WM_USER+105); - UDM_GETBUDDY = (WM_USER+106); - UDM_SETACCEL = (WM_USER+107); - UDM_GETACCEL = (WM_USER+108); - UDM_SETBASE = (WM_USER+109); - UDM_GETBASE = (WM_USER+110); -{$ifdef ie4plus} - UDM_SETRANGE32 = (WM_USER+111); - UDM_GETRANGE32 = (WM_USER+112); // wParam & lParam are LPINT - UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; -{$ENDIF} -{$ifdef ie5plus} - UDM_SETPOS32 = (WM_USER+113); - UDM_GETPOS32 = (WM_USER+114); -{$ENDIF} - -function CreateUpDownControl(dwStyle:DWORD;x:cint;y:cint;cx:cint;cy:cint;hParent:HWND;nID:cint;hInst:HINST;hBuddy:HWND;nUpper:cint;nLower:cint;nPos:cint):HWND; stdcall; external commctrldll name 'CreateUpDownControl'; - -TYPE - _NM_UPDOWN = Record - hdr : NMHDR; - iPos : cint; - iDelta : cint; - END; - NMUPDOWN = _NM_UPDOWN; - LPNMUPDOWN = ^_NM_UPDOWN; - TNM_UPDOWN = _NM_UPDOWN; - PNM_UPDOWN = ^_NM_UPDOWN; - -{$ifdef ie3plus} - NM_UPDOWN = NMUPDOWN; - LPNM_UPDOWN = LPNMUPDOWN; -{$ELSE} - NMUPDOWN = NM_UPDOWN; - LPNMUPDOWN = LPNM_UPDOWN; -{$ENDIF} - -CONST - UDN_DELTAPOS = (UDN_FIRST - 1); - -{$ENDIF} // NOUPDOWN - - -//====== PROGRESS CONTROL ===================================================== - -{$IFNDEF NOPROGRESS} - -CONST - -{$IFDEF _WIN32} - - PROGRESS_CLASSA = 'msctls_progress32'; - PROGRESS_CLASSW = {L}'msctls_progress32'; - -{$IFDEF UNICODE} - PROGRESS_CLASS = PROGRESS_CLASSW; -{$ELSE} - PROGRESS_CLASS = PROGRESS_CLASSA; -{$ENDIF} - -{$ELSE} - PROGRESS_CLASS = 'msctls_progress'; -{$ENDIF} - -// begin_r_commctrl - -{$ifdef ie3plus} - PBS_SMOOTH = $01; - PBS_VERTICAL = $04; -{$ENDIF} - -// end_r_commctrl - - PBM_SETRANGE = (WM_USER+1); - PBM_SETPOS = (WM_USER+2); - PBM_DELTAPOS = (WM_USER+3); - PBM_SETSTEP = (WM_USER+4); - PBM_STEPIT = (WM_USER+5); -{$ifdef ie3plus} - PBM_SETRANGE32 = (WM_USER+6); // lParam = high, wParam = low - -TYPE - PBRANGE = Record - iLow : cint; - iHigh : cint; - END; - PPBRANGE = ^PBRANGE; - TPBRANGE = PBRANGE; -// PPBRANGE = ^PBRANGE; - - -CONST - PBM_GETRANGE = (WM_USER+7); // wParam = return (TRUE ? low : high). lParam = PPBRANGE or NULL - PBM_GETPOS = (WM_USER+8); -{$ifdef ie4plus} - PBM_SETBARCOLOR = (WM_USER+9); // lParam = bar color -{$ENDIF} // _WIN32_IE >= 0x0400 - PBM_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor -{$ENDIF} // _WIN32_IE >= 0x0300 - -{$ifdef win32xp} //_WIN32_WINNT >= 0x0501 - PBS_MARQUEE = $08; - PBM_SETMARQUEE = (WM_USER+10); -{$endif} //_WIN32_WINNT >= 0x0501 - -{$ifdef win32vista} - PBS_SMOOTHREVERSE = $10; -{$endif} - -{$ifdef win32vista} - - PBM_GETSTEP = (WM_USER+13); - PBM_GETBKCOLOR = (WM_USER+14); - PBM_GETBARCOLOR = (WM_USER+15); - PBM_SETSTATE = (WM_USER+16); // wParam = PBST_[State] (NORMAL, ERROR, PAUSED) - PBM_GETSTATE = (WM_USER+17); - - PBST_NORMAL = $0001; - PBST_ERROR = $0002; - PBST_PAUSED = $0003; -{$endif} - -// end_r_commctrl - - -{$ENDIF} // NOPROGRESS - - -//====== HOTKEY CONTROL ======================================================= - -{$IFNDEF NOHOTKEY} - HOTKEYF_SHIFT = $01; - HOTKEYF_CONTROL = $02; - HOTKEYF_ALT = $04; -{$IFDEF _MAC} - HOTKEYF_EXT = $80; -{$ELSE} - HOTKEYF_EXT = $08; -{$ENDIF} - HKCOMB_NONE = $0001; - HKCOMB_S = $0002; - HKCOMB_C = $0004; - HKCOMB_A = $0008; - HKCOMB_SC = $0010; - HKCOMB_SA = $0020; - HKCOMB_CA = $0040; - HKCOMB_SCA = $0080; - - HKM_SETHOTKEY = (WM_USER+1); - HKM_GETHOTKEY = (WM_USER+2); - HKM_SETRULES = (WM_USER+3); - -{$IFDEF _WIN32} - HOTKEY_CLASSA = 'msctls_hotkey32'; - HOTKEY_CLASSW = widestring('msctls_hotkey32'); -{$IFDEF UNICODE} - HOTKEY_CLASS = HOTKEY_CLASSW; -{$ELSE} - HOTKEY_CLASS = HOTKEY_CLASSA; -{$ENDIF} -{$ELSE} - HOTKEY_CLASS = 'msctls_hotkey'; -{$ENDIF} - -{$ENDIF} // NOHOTKEY - HOTKEYCLASS = HOTKEY_CLASSA; - -// begin_r_commctrl - -//====== COMMON CONTROL STYLES ================================================ - - CCS_TOP = DWORD($00000001){L}; - CCS_NOMOVEY = DWORD($00000002){L}; - CCS_BOTTOM = DWORD($00000003){L}; - CCS_NORESIZE = DWORD($00000004){L}; - CCS_NOPARENTALIGN = DWORD($00000008){L}; - CCS_ADJUSTABLE = DWORD($00000020){L}; - CCS_NODIVIDER = DWORD($00000040){L}; -{$ifdef ie3plus} - CCS_VERT = DWORD($00000080){L}; - CCS_LEFT = (CCS_VERT OR CCS_TOP); - CCS_RIGHT = (CCS_VERT OR CCS_BOTTOM); - CCS_NOMOVEX = (CCS_VERT OR CCS_NOMOVEY); -{$ENDIF} - -// end_r_commctrl - -//====== LISTVIEW CONTROL ===================================================== - -{$IFNDEF NOLISTVIEW} - -{$IFDEF _WIN32} - WC_LISTVIEWA = 'SysListView32'; - WC_LISTVIEWW = {L}'SysListView32'; -{$IFDEF UNICODE} - WC_LISTVIEW = WC_LISTVIEWW; -{$ELSE} - WC_LISTVIEW = WC_LISTVIEWA; -{$ENDIF} -{$ELSE} - WC_LISTVIEW = 'SysListView'; -{$ENDIF} - -// begin_r_commctrl - - LVS_ICON = $0000; - LVS_REPORT = $0001; - LVS_SMALLICON = $0002; - LVS_LIST = $0003; - LVS_TYPEMASK = $0003; - LVS_SINGLESEL = $0004; - LVS_SHOWSELALWAYS = $0008; - LVS_SORTASCENDING = $0010; - LVS_SORTDESCENDING = $0020; - LVS_SHAREIMAGELISTS = $0040; - LVS_NOLABELWRAP = $0080; - LVS_AUTOARRANGE = $0100; - LVS_EDITLABELS = $0200; -{$ifdef ie3plus} - LVS_OWNERDATA = $1000; -{$ENDIF} - LVS_NOSCROLL = $2000; - - LVS_TYPESTYLEMASK = $fc00; - - LVS_ALIGNTOP = $0000; - LVS_ALIGNLEFT = $0800; - LVS_ALIGNMASK = $0c00; - - LVS_OWNERDRAWFIXED = $0400; - LVS_NOCOLUMNHEADER = $4000; - LVS_NOSORTHEADER = $8000; - -// end_r_commctrl - -{$ifdef ie4plus} - LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - -// Macro 38 -Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - -CONST - LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; - -// Macro 39 -Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL; - -{$ENDIF} -CONST - LVM_GETBKCOLOR = (LVM_FIRST + 0); - -// Macro 40 -Function ListView_GetBkColor( hwnd : hwnd):COLORREF; - -CONST - LVM_SETBKCOLOR = (LVM_FIRST + 1); - -// Macro 41 -Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL; - -CONST - LVM_GETIMAGELIST = (LVM_FIRST + 2); - -// Macro 42 -Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST; - -CONST - LVSIL_NORMAL = 0; - LVSIL_SMALL = 1; - LVSIL_STATE = 2; - LVSIL_GROUPHEADER = 3; - LVM_SETIMAGELIST = (LVM_FIRST + 3); - -// Macro 43 -Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST; - -CONST - LVM_GETITEMCOUNT = (LVM_FIRST + 4); - -// Macro 44 -Function ListView_GetItemCount( hwnd : hwnd):cint; - -CONST - LVIF_TEXT = $0001; - LVIF_IMAGE = $0002; - LVIF_PARAM = $0004; - LVIF_STATE = $0008; -{$ifdef ie3plus} - LVIF_INDENT = $0010; - LVIF_NORECOMPUTE = $0800; -{$ENDIF} -{$ifdef win32xp} - LVIF_GROUPID = $0100; - LVIF_COLUMNS = $0200; -{$ENDIF} -{$ifdef win32vista} - LVIF_COLFMT = $00010000; // The piColFmt member is valid in addition to puColumns -{$endif} - - LVIS_FOCUSED = $0001; - LVIS_SELECTED = $0002; - LVIS_CUT = $0004; - LVIS_DROPHILITED = $0008; - LVIS_GLOW = $0010; - LVIS_ACTIVATING = $0020; - - LVIS_OVERLAYMASK = $0F00; - LVIS_STATEIMAGEMASK = $F000; - -// Macro 45 -// #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) - - -CONST - I_INDENTCALLBACK = (-1); -{$ENDIF} - - -{$ifdef win32xp} - -CONST - I_GROUPIDCALLBACK = (-1); - I_GROUPIDNONE = (-2); -{$ENDIF} - - -// #define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA, lParam) -// #define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW, lParam) - -TYPE - tagLVITEMA = Record - mask : UINT; - iItem : cint; - iSubItem : cint; - state : UINT; - stateMask : UINT; - pszText : LPSTR; - cchTextMax : cint; - iImage : cint; - lParam : LPARAM; -{$ifdef ie3plus} - iIndent : cint; -{$ENDIF} -{$ifdef win32xp} - iGroupId : cint; - cColumns : UINT; // tile view columns - puColumns : PUINT; -{$ENDIF} -{$ifdef win32vista} - piColFmt : pcint; - iGroup : cint; // readonly. only valid for owner data. -{$endif} - END; - LVITEMA = tagLVITEMA; - LPLVITEMA = ^tagLVITEMA; - TLVITEMA = tagLVITEMA; - PLVITEMA = ^tagLVITEMA; - - - tagLVITEMW = Record - mask : UINT; - iItem : cint; - iSubItem : cint; - state : UINT; - stateMask : UINT; - pszText : LPWSTR; - cchTextMax : cint; - iImage : cint; - lParam : LPARAM; -{$ifdef ie3plus} - iIndent : cint; -{$ENDIF} -{$ifdef win32xp} - iGroupId : cint; - cColumns : UINT; // tile view columns - puColumns : PUINT; -{$ENDIF} -{$ifdef win32vista} - piColFmt : pcint; - iGroup : cint; // readonly. only valid for owner data. -{$endif} - END; - - LVITEMW = tagLVITEMW; - LPLVITEMW = ^tagLVITEMW; - TLVITEMW = tagLVITEMW; - PLVITEMW = ^tagLVITEMW; - -{$IFDEF UNICODE} - LVITEM = LVITEMW; - LPLVITEM = LPLVITEMW; - -// LVITEM_V1_SIZE = LVITEMW_V1_SIZE; -{$ELSE} - -TYPE - LVITEM = LVITEMA; - LPLVITEM = LPLVITEMA; - -// LVITEM_V1_SIZE = LVITEMA_V1_SIZE; -{$ENDIF} - -Type -{$ifdef ie3plus} - - LV_ITEMA = LVITEMA; - LV_ITEMW = LVITEMW; -{$ELSE} - - tagLVITEMA = _LV_ITEMA; - LVITEMA = LV_ITEMA; - tagLVITEMW = _LV_ITEMW; - LVITEMW = LV_ITEMW; -{$ENDIF} - LV_ITEM = LVITEM; - TLVItem = LVITEM; - PLVItem = LPLVITEM; - TLV_ITEM = LVITEM; - PLV_ITEM = PLVITEM; -CONST - LPSTR_TEXTCALLBACKW = LPWSTR(-1); - LPSTR_TEXTCALLBACKA = LPSTR (-1); -{$IFDEF UNICODE} - LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKW; -{$ELSE} - LPSTR_TEXTCALLBACK = LPSTR_TEXTCALLBACKA; -{$ENDIF} - - -CONST - I_IMAGECALLBACK = (-1); -{$ifdef ie501plus} - I_IMAGENONE = (-2); -{$ENDIF} // 0x0501 - -{$ifdef win32xp} -// For tileview - I_COLUMNSCALLBACK = UINT(-1); -{$ENDIF} - - LVM_GETITEMA = (LVM_FIRST + 5); - LVM_GETITEMW = (LVM_FIRST + 75); - -{$IFDEF UNICODE} - LVM_GETITEM = LVM_GETITEMW; -{$ELSE} - LVM_GETITEM = LVM_GETITEMA; -{$ENDIF} - -// Macro 46 -Function ListView_GetItem( hwnd : hwnd;var pitem : LV_ITEM ):BOOL; - -CONST - LVM_SETITEMA = (LVM_FIRST + 6); - LVM_SETITEMW = (LVM_FIRST + 76); - -{$IFDEF UNICODE} - LVM_SETITEM = LVM_SETITEMW; -{$ELSE} - LVM_SETITEM = LVM_SETITEMA; -{$ENDIF} - -// Macro 47 -Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL; - - -CONST - LVM_INSERTITEMA = (LVM_FIRST + 7); - LVM_INSERTITEMW = (LVM_FIRST + 77); -{$IFDEF UNICODE} - LVM_INSERTITEM = LVM_INSERTITEMW; -{$ELSE} - LVM_INSERTITEM = LVM_INSERTITEMA; -{$ENDIF} - -// Macro 48 -Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint; - -CONST - LVM_DELETEITEM = (LVM_FIRST + 8); - -// Macro 49 -Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL; - -CONST - LVM_DELETEALLITEMS = (LVM_FIRST + 9); - -// Macro 50 -Function ListView_DeleteAllItems( hwnd : hwnd):BOOL; - -CONST - LVM_GETCALLBACKMASK = (LVM_FIRST + 10); - -// Macro 51 -Function ListView_GetCallbackMask( hwnd : hwnd):BOOL; - - -CONST - LVM_SETCALLBACKMASK = (LVM_FIRST + 11); - -// Macro 52 -Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL; - - -CONST - LVNI_ALL = $0000; - LVNI_FOCUSED = $0001; - LVNI_SELECTED = $0002; - LVNI_CUT = $0004; - LVNI_DROPHILITED = $0008; - - LVNI_ABOVE = $0100; - LVNI_BELOW = $0200; - LVNI_TOLEFT = $0400; - LVNI_TORIGHT = $0800; - - - LVM_GETNEXTITEM = (LVM_FIRST + 12); - -// Macro 53 -Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint ):cint; - -CONST - LVFI_PARAM = $0001; - LVFI_STRING = $0002; - LVFI_PARTIAL = $0008; - LVFI_WRAP = $0020; - LVFI_NEARESTXY = $0040; - - -TYPE - - tagLVFINDINFOA = Record - flags : UINT; - psz : LPCSTR; - lParam : LPARAM; - pt : POINT; - vkDirection : UINT; - END; - LVFINDINFOA = tagLVFINDINFOA; - LPFINDINFOA = ^tagLVFINDINFOA; - TLVFINDINFOA = tagLVFINDINFOA; - PLVFINDINFOA = ^tagLVFINDINFOA; - - - tagLVFINDINFOW = Record - flags : UINT; - psz : LPCWSTR; - lParam : LPARAM; - pt : POINT; - vkDirection : UINT; - END; - LVFINDINFOW = tagLVFINDINFOW; - LPFINDINFOW = ^tagLVFINDINFOW; - TLVFINDINFOW = tagLVFINDINFOW; - PLVFINDINFOW = ^tagLVFINDINFOW; - -{$IFDEF UNICODE} - LVFINDINFO = LVFINDINFOW; -{$ELSE} - LVFINDINFO = LVFINDINFOA; -{$ENDIF} - -{$ifdef ie3plus} - LV_FINDINFOA = LVFINDINFOA; - LV_FINDINFOW = LVFINDINFOW; -{$ELSE} - tagLVFINDINFOA = _LV_FINDINFOA; - LVFINDINFOA = LV_FINDINFOA; - tagLVFINDINFOW = _LV_FINDINFOW; - LVFINDINFOW = LV_FINDINFOW; -{$ENDIF} - - TLVFindInfo = LVFINDINFO; - PLVFindInfo = ^LVFindInfo; - - LV_FINDINFO = LVFINDINFO; - -CONST - LVM_FINDITEMA = (LVM_FIRST + 13); - LVM_FINDITEMW = (LVM_FIRST + 83); -{$IFDEF UNICODE} - LVM_FINDITEM = LVM_FINDITEMW; -{$ELSE} - LVM_FINDITEM = LVM_FINDITEMA; -{$ENDIF} - -// Macro 54 -Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint; - -CONST - LVIR_BOUNDS = 0; - LVIR_ICON = 1; - LVIR_LABEL = 2; - LVIR_SELECTBOUNDS = 3; - - - LVM_GETITEMRECT = (LVM_FIRST + 14); - -// Macro 55 NI -Function ListView_GetItemRect( hwnd : hwnd; i : cint;var prc : TRect;code : cint):BOOL; - -CONST - LVM_SETITEMPOSITION = (LVM_FIRST + 15); - -// Macro 56 -Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL; - -CONST - LVM_GETITEMPOSITION = (LVM_FIRST + 16); - -// Macro 57 -Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var ppt : POINT ):BOOL; - -CONST - LVM_GETSTRINGWIDTHA = (LVM_FIRST + 17); - LVM_GETSTRINGWIDTHW = (LVM_FIRST + 87); -{$IFDEF UNICODE} - LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHW; -{$ELSE} - LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA; -{$ENDIF} - -// Macro 58 -Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint; - -CONST - LVHT_NOWHERE = $0001; - LVHT_ONITEMICON = $0002; - LVHT_ONITEMLABEL = $0004; - LVHT_ONITEMSTATEICON = $0008; - LVHT_ONITEM = (LVHT_ONITEMICON OR LVHT_ONITEMLABEL OR LVHT_ONITEMSTATEICON); - - LVHT_ABOVE = $0008; - LVHT_BELOW = $0010; - LVHT_TORIGHT = $0020; - LVHT_TOLEFT = $0040; - - - -// #define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO, iItem) - -TYPE - - tagLVHITTESTINFO = Record - pt : POINT; - flags : UINT; - iItem : cint; -{$ifdef ie3plus} - iSubItem : cint; // this is was NOT in win95. valid only for LVM_SUBITEMHITTEST -{$ENDIF} -{$ifdef win32vista} - iGroup : cint; // readonly. index of group. only valid for owner data. - // supports single item in multiple groups. -{$endif} - END; - LVHITTESTINFO = tagLVHITTESTINFO; - LPLVHITTESTINFO = ^tagLVHITTESTINFO; - TLVHITTESTINFO = tagLVHITTESTINFO; - PLVHITTESTINFO = ^tagLVHITTESTINFO; - -{$ifdef ie3plus} - LV_HITTESTINFO = LVHITTESTINFO; -{$ELSE} - tagLVHITTESTINFO = _LV_HITTESTINFO; - LVHITTESTINFO = LV_HITTESTINFO; -{$ENDIF} - -CONST - LVM_HITTEST = (LVM_FIRST + 18); - -// Macro 59 -Function ListView_HitTest( hwndLV : hwnd;var pinfo : LV_HITTESTINFO ):cint; - -CONST - LVM_ENSUREVISIBLE = (LVM_FIRST + 19); - -// Macro 60 -Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;inline; -Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : BOOL ):BOOL;inline; - -CONST - LVM_SCROLL = (LVM_FIRST + 20); - -// Macro 61 -Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL; - -CONST - LVM_REDRAWITEMS = (LVM_FIRST + 21); - -// Macro 62 -Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL; - -CONST - LVA_DEFAULT = $0000; - LVA_ALIGNLEFT = $0001; - LVA_ALIGNTOP = $0002; - LVA_ALIGNRIGHT = $0003; - LVA_ALIGNBOTTOM = $0004; - LVA_SNAPTOGRID = $0005; - LVA_SORTASCENDING = $0100; - LVA_SORTDESCENDING = $0200; - LVM_ARRANGE = (LVM_FIRST + 22); - -// Macro 63 -Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL; - -CONST - LVM_EDITLABELA = (LVM_FIRST + 23); - LVM_EDITLABELW = (LVM_FIRST + 118); -{$IFDEF UNICODE} - - LVM_EDITLABEL = LVM_EDITLABELW; -{$ELSE} - LVM_EDITLABEL = LVM_EDITLABELA; -{$ENDIF} - -// Macro 64 -Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND; - -CONST - LVM_GETEDITCONTROL = (LVM_FIRST + 24); - -// Macro 65 -Function ListView_GetEditControl( hwndLV : hwnd):HWND; - - -// #define LVCOLUMNA_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNA, iSubItem) -// #define LVCOLUMNW_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNW, iSubItem) - -TYPE - - tagLVCOLUMNA = Record - mask : UINT; - fmt : cint; - cx : cint; - pszText : LPSTR; - cchTextMax : cint; - iSubItem : cint; -{$ifdef ie3plus} - iImage : cint; - iOrder : cint; -{$ENDIF} -{$ifdef win32vista} - cxmin : cint; // min snap point - cxDefault : cint; // default snap point - cxIdeal : cint; // read only. ideal may not eqaul current width if auto sized (LVS_EX_AUTOSIZECOLUMNS) to a lesser width. -{$endif} - END; - LVCOLUMNA = tagLVCOLUMNA; - LPLVCOLUMNA = ^tagLVCOLUMNA; - TLVCOLUMNA = tagLVCOLUMNA; - PLVCOLUMNA = ^tagLVCOLUMNA; - - - tagLVCOLUMNW = Record - mask : UINT; - fmt : cint; - cx : cint; - pszText : LPWSTR; - cchTextMax : cint; - iSubItem : cint; -{$ifdef ie3plus} - iImage : cint; - iOrder : cint; -{$ENDIF} -{$ifdef win32vista} - cxmin : cint; // min snap point - cxDefault : cint; // default snap point - cxIdeal : cint; // read only. ideal may not eqaul current width if auto sized (LVS_EX_AUTOSIZECOLUMNS) to a lesser width. -{$endif} - END; - LVCOLUMNW = tagLVCOLUMNW; - LPLVCOLUMNW = ^tagLVCOLUMNW; - TLVCOLUMNW = tagLVCOLUMNW; - PLVCOLUMNW = ^tagLVCOLUMNW; - - -{$IFDEF UNICODE} - LVCOLUMN = LVCOLUMNW; - LPLVCOLUMN = LPLVCOLUMNW; -// LVCOLUMN_V1_SIZE = LVCOLUMNW_V1_SIZE; -{$ELSE} - LVCOLUMN = LVCOLUMNA; - LPLVCOLUMN = LPLVCOLUMNA; -// LVCOLUMN_V1_SIZE = LVCOLUMNA_V1_SIZE; -{$ENDIF} - -{$ifdef ie3plus} - LV_COLUMNA = LVCOLUMNA; - LV_COLUMNW = LVCOLUMNW; -{$ELSE} - tagLVCOLUMNA = _LV_COLUMNA; - LVCOLUMNA = LV_COLUMNA; - tagLVCOLUMNW = _LV_COLUMNW; - LVCOLUMNW = LV_COLUMNW; -{$ENDIF} - - - LV_COLUMN = LVCOLUMN; - TLVColumn = LVCOLUMN; - PLVColumn = LPLVCOLUMN; - -CONST - LVCF_FMT = $0001; - LVCF_WIDTH = $0002; - LVCF_TEXT = $0004; - LVCF_SUBITEM = $0008; -{$ifdef ie3plus} - LVCF_IMAGE = $0010; - LVCF_ORDER = $0020; -{$ENDIF} -{$ifdef win32vista} - LVCF_MINWIDTH = $0040; - LVCF_DEFAULTWIDTH = $0080; - LVCF_IDEALWIDTH = $0100; -{$endif} - - LVCFMT_LEFT = $0000; - LVCFMT_RIGHT = $0001; - LVCFMT_CENTER = $0002; - LVCFMT_JUSTIFYMASK = $0003; - -{$ifdef ie3plus} - LVCFMT_IMAGE = $0800; - LVCFMT_BITMAP_ON_RIGHT = $1000; - LVCFMT_COL_HAS_IMAGES = $8000; -{$ENDIF} -{$ifdef win32vista} - LVCFMT_FIXED_WIDTH = $00100; // Can't resize the column; same as HDF_FIXEDWIDTH - LVCFMT_NO_DPI_SCALE = $40000; // If not set, CCM_DPISCALE will govern scaling up fixed width - LVCFMT_FIXED_RATIO = $80000; // Width will augment with the row height -{$endif} - - LVM_GETCOLUMNA = (LVM_FIRST + 25); - LVM_GETCOLUMNW = (LVM_FIRST + 95); -{$IFDEF UNICODE} - LVM_GETCOLUMN = LVM_GETCOLUMNW; -{$ELSE} - LVM_GETCOLUMN = LVM_GETCOLUMNA; -{$ENDIF} - -// Macro 66 -Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var pcol : LV_COLUMN ):BOOL; - -CONST - LVM_SETCOLUMNA = (LVM_FIRST + 26); - LVM_SETCOLUMNW = (LVM_FIRST + 96); -{$IFDEF UNICODE} - LVM_SETCOLUMN = LVM_SETCOLUMNW; -{$ELSE} - LVM_SETCOLUMN = LVM_SETCOLUMNA; -{$ENDIF} - -// Macro 67 -Function ListView_SetColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):BOOL; - -CONST - LVM_INSERTCOLUMNA = (LVM_FIRST + 27); - LVM_INSERTCOLUMNW = (LVM_FIRST + 97); - -{$IFDEF UNICODE} // was already not active (spaces) in .h -// # define LVM_INSERTCOLUMN LVM_INSERTCOLUMNW -{$ELSE} -// # define LVM_INSERTCOLUMN LVM_INSERTCOLUMNA -{$ENDIF} - -// Macro 68 -Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;Const pcol : LV_COLUMN ):cint; - -CONST - LVM_DELETECOLUMN = (LVM_FIRST + 28); - -// Macro 69 -Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL; - -CONST - LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29); - -// Macro 70 -Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint; - -CONST - LVSCW_AUTOSIZE = -1; - LVSCW_AUTOSIZE_USEHEADER = -2; - LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30); - -// Macro 71 -Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx : cint ):BOOL; - - -{$ifdef ie3plus} - -CONST - LVM_GETHEADER = (LVM_FIRST + 31); - -// Macro 72 -Function ListView_GetHeader( hwnd : hwnd):HWND; - -{$ENDIF} - -CONST - LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33); - -// Macro 73 -Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;inline; -Function ListView_CreateDragImage( hwnd : hwnd; i : cint; const lpptUpLeft : POINT):HIMAGELIST;inline; - -CONST - LVM_GETVIEWRECT = (LVM_FIRST + 34); - -// Macro 74 -Function ListView_GetViewRect( hwnd : hwnd;var prc : RECT ):BOOL; - -CONST - LVM_GETTEXTCOLOR = (LVM_FIRST + 35); - -// Macro 75 -Function ListView_GetTextColor( hwnd : hwnd):COLORREF; - -CONST - LVM_SETTEXTCOLOR = (LVM_FIRST + 36); - -// Macro 76 -Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL; - -CONST - LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37); - -// Macro 77 -Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF; - -CONST - LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38); - -// Macro 78 -Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL; - - -CONST - LVM_GETTOPINDEX = (LVM_FIRST + 39); - -// Macro 79 -Function ListView_GetTopIndex( hwndLV : hwnd):cint; - -CONST - LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40); - -// Macro 80 -Function ListView_GetCountPerPage( hwndLV : hwnd):cint; - -CONST - LVM_GETORIGIN = (LVM_FIRST + 41); - -// Macro 81 -Function ListView_GetOrigin( hwndLV : hwnd;var ppt : POINT ):BOOL; - -CONST - LVM_UPDATE = (LVM_FIRST + 42); - -// Macro 82 -Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL; - -CONST - LVM_SETITEMSTATE = (LVM_FIRST + 43); - -// Macro 83 -Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT); - -{$ifdef ie3plus} -// Macro 84 -Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : bool ); - -{$ENDIF} - - -CONST - LVM_GETITEMSTATE = (LVM_FIRST + 44); - -// Macro 85 -Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT; - - -{$ifdef ie3plus} - -// Macro 86 -Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT; - -{$ENDIF} - -CONST - LVM_GETITEMTEXTA = (LVM_FIRST + 45); - LVM_GETITEMTEXTW = (LVM_FIRST + 115); - -{$IFDEF UNICODE} - LVM_GETITEMTEXT = LVM_GETITEMTEXTW; -{$ELSE} - LVM_GETITEMTEXT = LVM_GETITEMTEXTA; -{$ENDIF} - -// Macro 87 -Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint); - -CONST - LVM_SETITEMTEXTA = (LVM_FIRST + 46); - LVM_SETITEMTEXTW = (LVM_FIRST + 116); - -{$IFDEF UNICODE} - LVM_SETITEMTEXT = LVM_SETITEMTEXTW; -{$ELSE} - LVM_SETITEMTEXT = LVM_SETITEMTEXTA; -{$ENDIF} - -// Macro 88 -Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer); - -{$ifdef ie3plus} -// these flags only apply to LVS_OWNERDATA listviews in report or list mode - -CONST - LVSICF_NOINVALIDATEALL = $00000001; - LVSICF_NOSCROLL = $00000002; -{$ENDIF} - - LVM_SETITEMCOUNT = (LVM_FIRST + 47); - -// Macro 89 -Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM); - -{$ifdef ie3plus} - -// Macro 90 -Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM); - -{$ENDIF} - -TYPE - PFNLVCOMPARE=Function(a,b,c:LPARAM):cint; - TLVCompare = PFNLVCOMPARE; - -CONST - LVM_SORTITEMS = (LVM_FIRST + 48); - -// Macro 91 -Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL; - -CONST - LVM_SETITEMPOSITION32 = (LVM_FIRST + 49); - -// Macro 92 -Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long); - -CONST - LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50); - -// Macro 93 -Function ListView_GetSelectedCount( hwndLV : hwnd):UINT; - -CONST - LVM_GETITEMSPACING = (LVM_FIRST + 51); - -// Macro 94 -Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD; - -CONST - LVM_GETISEARCHSTRINGA = (LVM_FIRST + 52); - LVM_GETISEARCHSTRINGW = (LVM_FIRST + 117); - -{$IFDEF UNICODE} - LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGW; -{$ELSE} - LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGA; -{$ENDIF} - -// Macro 95 -Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL; - - -{$ifdef ie3plus} - -CONST - LVM_SETICONSPACING = (LVM_FIRST + 53); -// -1 for cx and cy means we'll use the default (system settings) -// 0 for cx or cy means use the current setting (allows you to change just one param) - -// Macro 96 -Function ListView_SetIconSpacing( hwndLV : hwnd; cx, cy : cint ):DWORD; - -CONST - LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54); // optional wParam == mask - -// Macro 97 -Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw : cint ):DWORD; - -{$ifdef ie4plus} - -// Macro 98 -Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD; - -{$ENDIF} - -CONST - LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55); - -// Macro 99 -Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD; - -CONST - LVS_EX_GRIDLINES = $00000001; - LVS_EX_SUBITEMIMAGES = $00000002; - LVS_EX_CHECKBOXES = $00000004; - LVS_EX_TRACKSELECT = $00000008; - LVS_EX_HEADERDRAGDROP = $00000010; - LVS_EX_FULLROWSELECT = $00000020; // applies to report mode only - LVS_EX_ONECLICKACTIVATE = $00000040; - LVS_EX_TWOCLICKACTIVATE = $00000080; -{$ifdef ie4plus} - LVS_EX_FLATSB = $00000100; - LVS_EX_REGIONAL = $00000200; - LVS_EX_INFOTIP = $00000400; // listview does InfoTips for you - LVS_EX_UNDERLINEHOT = $00000800; - LVS_EX_UNDERLINECOLD = $00001000; - LVS_EX_MULTIWORKAREAS = $00002000; -{$ENDIF} -{$ifdef ie5plus} - LVS_EX_LABELTIP = $00004000; // listview unfolds partly hidden labels if it does not have infotip text - LVS_EX_BORDERSELECT = $00008000; // border selection style instead of highlight -{$ENDIF} // End (_WIN32_IE >= 0x0500) -{$ifdef win32xp} - LVS_EX_DOUBLEBUFFER = $00010000; - LVS_EX_HIDELABELS = $00020000; - LVS_EX_SINGLEROW = $00040000; - LVS_EX_SNAPTOGRID = $00080000; // Icons automatically snap to grid. - LVS_EX_SIMPLESELECT = $00100000; // Also changes overlay rendering to top right for icon mode. -{$ENDIF} -{$ifdef win32vista} - LVS_EX_JUSTIFYCOLUMNS = $00200000; // Icons are lined up in columns that use up the whole view area. - LVS_EX_TRANSPARENTBKGND = $00400000; // Background is painted by the parent via WM_PRINTCLIENT - LVS_EX_TRANSPARENTSHADOWTEXT = $00800000; // Enable shadow text on transparent backgrounds only (useful with bitmaps) - LVS_EX_AUTOAUTOARRANGE = $01000000; // Icons automatically arrange if no icon positions have been set - LVS_EX_HEADERINALLVIEWS = $02000000; // Display column header in all view modes - LVS_EX_AUTOCHECKSELECT = $08000000; - LVS_EX_AUTOSIZECOLUMNS = $10000000; - LVS_EX_COLUMNSNAPPOINTS = $40000000; - LVS_EX_COLUMNOVERFLOW = $80000000; -{$endif} - - LVM_GETSUBITEMRECT = (LVM_FIRST + 56); - -// Macro 100 -Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL; - -CONST - LVM_SUBITEMHITTEST = (LVM_FIRST + 57); - -// Macro 101 -Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint; - -CONST - LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58); - -// Macro 102 -Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL; - -CONST - LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59); - -// Macro 103 -Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL; - - -CONST - LVM_SETHOTITEM = (LVM_FIRST + 60); - -// Macro 104 -Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint; - -CONST - LVM_GETHOTITEM = (LVM_FIRST + 61); - -// Macro 105 -Function ListView_GetHotItem( hwnd : hwnd):cint; - -CONST - LVM_SETHOTCURSOR = (LVM_FIRST + 62); - -// Macro 106 -Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR; - -CONST - LVM_GETHOTCURSOR = (LVM_FIRST + 63); - -// Macro 107 -Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR; - -CONST - LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64); - -// Macro 108 -Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD; - -{$ENDIF} // _WIN32_IE >= 0x0300 - -{$ifdef ie4plus} - -CONST - LV_MAX_WORKAREAS = 16; - LVM_SETWORKAREAS = (LVM_FIRST + 65); - -// Macro 109 -Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;inline; -Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint; prc : PRECT ):BOOL;inline; - -CONST - LVM_GETWORKAREAS = (LVM_FIRST + 70); - -// Macro 110 -Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL; - -CONST - LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73); - -// Macro 111 -Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var pnWorkAreas : UINT ):BOOL; - -CONST - LVM_GETSELECTIONMARK = (LVM_FIRST + 66); - -// Macro 112 -Function ListView_GetSelectionMark( hwnd : hwnd):cint; - -CONST - LVM_SETSELECTIONMARK = (LVM_FIRST + 67); - -// Macro 113 -Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint; - -CONST - LVM_SETHOVERTIME = (LVM_FIRST + 71); - -// Macro 114 -Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD; - -CONST - LVM_GETHOVERTIME = (LVM_FIRST + 72); - -// Macro 115 -Function ListView_GetHoverTime( hwndLV : hwnd):DWORD; - -CONST - LVM_SETTOOLTIPS = (LVM_FIRST + 74); - -// Macro 116 -Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND; - -CONST - LVM_GETTOOLTIPS = (LVM_FIRST + 78); - -// Macro 117 -Function ListView_GetToolTips( hwndLV : hwnd):HWND; - -CONST - LVM_SORTITEMSEX = (LVM_FIRST + 81); - -// Macro 118 -Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL; - -TYPE - - tagLVBKIMAGEA = Record - ulFlags : ULONG; // LVBKIF_* - hbm : HBITMAP; - pszImage : LPSTR; - cchImageMax : UINT; - xOffsetPercent : cint; - yOffsetPercent : cint; - END; - LVBKIMAGEA = tagLVBKIMAGEA; - LPLVBKIMAGEA = ^tagLVBKIMAGEA; - TLVBKIMAGEA = tagLVBKIMAGEA; - PLVBKIMAGEA = ^tagLVBKIMAGEA; - - tagLVBKIMAGEW = Record - ulFlags : ULONG; // LVBKIF_* - hbm : HBITMAP; - pszImage : LPWSTR; - cchImageMax : UINT; - xOffsetPercent : cint; - yOffsetPercent : cint; - END; - LVBKIMAGEW = tagLVBKIMAGEW; - LPLVBKIMAGEW = ^tagLVBKIMAGEW; - TLVBKIMAGEW = tagLVBKIMAGEW; - PLVBKIMAGEW = ^tagLVBKIMAGEW; - -CONST - LVBKIF_SOURCE_NONE = $00000000; - LVBKIF_SOURCE_HBITMAP = $00000001; - LVBKIF_SOURCE_URL = $00000002; - LVBKIF_SOURCE_MASK = $00000003; - LVBKIF_STYLE_NORMAL = $00000000; - LVBKIF_STYLE_TILE = $00000010; - LVBKIF_STYLE_MASK = $00000010; -{$ifdef win32xp} - LVBKIF_FLAG_TILEOFFSET = $00000100; - LVBKIF_TYPE_WATERMARK = $10000000; -{$ENDIF} - - LVM_SETBKIMAGEA = (LVM_FIRST + 68); - LVM_SETBKIMAGEW = (LVM_FIRST + 138); - LVM_GETBKIMAGEA = (LVM_FIRST + 69); - LVM_GETBKIMAGEW = (LVM_FIRST + 139); - -{$ifdef win32xp} - LVM_SETSELECTEDCOLUMN = (LVM_FIRST + 140); - -// Macro 119 -Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM); - -CONST - LVM_SETTILEWIDTH = (LVM_FIRST + 141); - -// Macro 120 -Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM); - -CONST - LV_VIEW_ICON = $0000; - LV_VIEW_DETAILS = $0001; - LV_VIEW_SMALLICON = $0002; - LV_VIEW_LIST = $0003; - LV_VIEW_TILE = $0004; - LV_VIEW_MAX = $0004; - LVM_SETVIEW = (LVM_FIRST + 142); - -// Macro 121 -Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD; - -CONST - LVM_GETVIEW = (LVM_FIRST + 143); - -// Macro 122 -Function ListView_GetView( hwnd : hwnd):DWORD; - -CONST - LVGF_NONE = $00000000; - LVGF_HEADER = $00000001; - LVGF_FOOTER = $00000002; - LVGF_STATE = $00000004; - LVGF_ALIGN = $00000008; - LVGF_GROUPID = $00000010; - -{$ifdef win32vista} - LVGF_SUBTITLE = $00000100; // pszSubtitle is valid - LVGF_TASK = $00000200; // pszTask is valid - LVGF_DESCRIPTIONTOP = $00000400; // pszDescriptionTop is valid - LVGF_DESCRIPTIONBOTTOM = $00000800; // pszDescriptionBottom is valid - LVGF_TITLEIMAGE = $00001000; // iTitleImage is valid - LVGF_EXTENDEDIMAGE = $00002000; // iExtendedImage is valid - LVGF_ITEMS = $00004000; // iFirstItem and cItems are valid - LVGF_SUBSET = $00008000; // pszSubsetTitle is valid - LVGF_SUBSETITEMS = $00010000; // readonly, cItems holds count of items in visible subset, iFirstItem is valid -{$endif} - - LVGS_NORMAL = $00000000; - LVGS_COLLAPSED = $00000001; - LVGS_HIDDEN = $00000002; - - LVGA_HEADER_LEFT = $00000001; - LVGA_HEADER_CENTER = $00000002; - LVGA_HEADER_RIGHT = $00000004; // Don't forget to validate exclusivity - LVGA_FOOTER_LEFT = $00000008; - LVGA_FOOTER_CENTER = $00000010; - LVGA_FOOTER_RIGHT = $00000020; // Don't forget to validate exclusivity - -TYPE - - tagLVGROUP = Record - cbSize : UINT; - mask : UINT; - pszHeader : LPWSTR; - cchHeader : cint; - pszFooter : LPWSTR; - cchFooter : cint; - iGroupId : cint; - stateMask : UINT; - state : UINT; - uAlign : UINT; -{$ifdef win32vista} - pszSubtitle : LPWSTR; - cchSubtitle : UINT; - pszTask : LPWSTR; - cchTask : UINT; - pszDescriptionTop : LPWSTR; - cchDescriptionTop : UINT; - pszDescriptionBottom: LPWSTR; - cchDescriptionBottom: UINT; - iTitleImage : cint; - iExtendedImage : cint; - iFirstItem : cint; // Read only - cItems : UINT; // Read only - pszSubsetTitle : LPWSTR;// NULL if group is not subset - cchSubsetTitle : UINT; -{$endif} - END; - LVGROUP = tagLVGROUP; - PLVGROUP = ^tagLVGROUP; - TLVGROUP = tagLVGROUP; - - -CONST - LVM_INSERTGROUP = (LVM_FIRST + 145); - -// Macro 123 -Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM); - -CONST - LVM_SETGROUPINFO = (LVM_FIRST + 147); - -// Macro 124 -Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM); - -CONST - LVM_GETGROUPINFO = (LVM_FIRST + 149); - -// Macro 125 -Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM); - -CONST - LVM_REMOVEGROUP = (LVM_FIRST + 150); - -// Macro 126 -Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM); - -CONST - LVM_MOVEGROUP = (LVM_FIRST + 151); - -// Macro 127 -Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM); - -CONST - LVM_MOVEITEMTOGROUP = (LVM_FIRST + 154); - -// Macro 128 -Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM); - -CONST - LVGMF_NONE = $00000000; - LVGMF_BORDERSIZE = $00000001; - LVGMF_BORDERCOLOR = $00000002; - LVGMF_TEXTCOLOR = $00000004; - -TYPE - - tagLVGROUPMETRICS = Record - cbSize : UINT; - mask : UINT; - Left : UINT; - Top : UINT; - Right : UINT; - Bottom : UINT; - crLeft : COLORREF; - crTop : COLORREF; - crRight : COLORREF; - crBottom : COLORREF; - crHeader : COLORREF; - crFooter : COLORREF; - END; - LVGROUPMETRICS = tagLVGROUPMETRICS; - PLVGROUPMETRICS = ^tagLVGROUPMETRICS; - TLVGROUPMETRICS = tagLVGROUPMETRICS; - -CONST - LVM_SETGROUPMETRICS = (LVM_FIRST + 155); - -// Macro 129 -Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM); - -CONST - LVM_GETGROUPMETRICS = (LVM_FIRST + 156); - -// Macro 130 -Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM); - -CONST - LVM_ENABLEGROUPVIEW = (LVM_FIRST + 157); - -// Macro 131 -Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM); - -TYPE - PFNLVGROUPCOMPARE = function(i,j:cint;k:pointer):cint; StdCall; - -CONST - LVM_SORTGROUPS = (LVM_FIRST + 158); - -// Macro 132 -Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM); - -TYPE - - tagLVINSERTGROUPSORTED = Record - pfnGroupCompare : PFNLVGROUPCOMPARE; - pvData : Pointer; - lvGroup : LVGROUP; - END; - LVINSERTGROUPSORTED = tagLVINSERTGROUPSORTED; - PLVINSERTGROUPSORTED = ^tagLVINSERTGROUPSORTED; - TLVINSERTGROUPSORTED = tagLVINSERTGROUPSORTED; - - -CONST - LVM_INSERTGROUPSORTED = (LVM_FIRST + 159); - -// Macro 133 -Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM); - -CONST - LVM_REMOVEALLGROUPS = (LVM_FIRST + 160); - -// Macro 134 -Procedure ListView_RemoveAllGroups( hwnd : hwnd); - -CONST - LVM_HASGROUP = (LVM_FIRST + 161); - -// Macro 135 -Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId : DWORD ); - -CONST - LVTVIF_AUTOSIZE = $00000000; - LVTVIF_FIXEDWIDTH = $00000001; - LVTVIF_FIXEDHEIGHT = $00000002; - LVTVIF_FIXEDSIZE = $00000003; -{$ifdef win32vista} - LVTVIF_EXTENDED = $00000004; -{$endif} - LVTVIM_TILESIZE = $00000001; - LVTVIM_COLUMNS = $00000002; - LVTVIM_LABELMARGIN = $00000004; - - -TYPE - - tagLVTILEVIEWINFO = Record - cbSize : UINT; - dwMask : DWORD; //LVTVIM_* - dwFlags : DWORD; //LVTVIF_* - sizeTile : SIZE; - cLines : cint; - rcLabelMargin : RECT; - END; - LVTILEVIEWINFO = tagLVTILEVIEWINFO; - PLVTILEVIEWINFO = ^tagLVTILEVIEWINFO; - TLVTILEVIEWINFO = tagLVTILEVIEWINFO; - - - tagLVTILEINFO = Record - cbSize : UINT; - iItem : cint; - cColumns : UINT; - puColumns : PUINT; - {$ifdef win32vista} - piColFmt : PCINT; - {$endif} - END; - LVTILEINFO = tagLVTILEINFO; - PLVTILEINFO = ^tagLVTILEINFO; - TLVTILEINFO = tagLVTILEINFO; - - -CONST - LVM_SETTILEVIEWINFO = (LVM_FIRST + 162); - -// Macro 136 -Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM); - -CONST - LVM_GETTILEVIEWINFO = (LVM_FIRST + 163); - -// Macro 137 -Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM); - -CONST - LVM_SETTILEINFO = (LVM_FIRST + 164); - -// Macro 138 -Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM); - -CONST - LVM_GETTILEINFO = (LVM_FIRST + 165); - -// Macro 139 -Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM); - -TYPE - - LVINSERTMARK = Record - cbSize : UINT; - dwFlags : DWORD; - iItem : cint; - dwReserved : DWORD; - END; - LPLVINSERTMARK = ^LVINSERTMARK; - TLVINSERTMARK = LVINSERTMARK; - PLVINSERTMARK = ^LVINSERTMARK; - -CONST - LVIM_AFTER = $00000001; // TRUE = insert After iItem, otherwise before - - LVM_SETINSERTMARK = (LVM_FIRST + 166); - -// Macro 140 -Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL; - -CONST - LVM_GETINSERTMARK = (LVM_FIRST + 167); - -// Macro 141 -Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL; - -CONST - LVM_INSERTMARKHITTEST = (LVM_FIRST + 168); - -// Macro 142 -Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint; - -CONST - LVM_GETINSERTMARKRECT = (LVM_FIRST + 169); - -// Macro 143 -Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint; - -CONST - LVM_SETINSERTMARKCOLOR = (LVM_FIRST + 170); - -// Macro 144 -Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF; - -CONST - LVM_GETINSERTMARKCOLOR = (LVM_FIRST + 171); - -// Macro 145 -Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF; - -TYPE - - tagLVSETINFOTIP = Record - cbSize : UINT; - dwFlags : DWORD; - pszText : LPWSTR; - iItem : cint; - iSubItem : cint; - END; - LVSETINFOTIP = tagLVSETINFOTIP; - PLVSETINFOTIP = ^tagLVSETINFOTIP; - TLVSETINFOTIP = tagLVSETINFOTIP; - - -CONST - LVM_SETINFOTIP = (LVM_FIRST + 173); - -// Macro 146 -Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL; - -CONST - LVM_GETSELECTEDCOLUMN = (LVM_FIRST + 174); - -// Macro 147 -Function ListView_GetSelectedColumn( hwnd : hwnd):UINT; - -CONST - LVM_ISGROUPVIEWENABLED = (LVM_FIRST + 175); - -// Macro 148 -Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL; - -CONST - LVM_GETOUTLINECOLOR = (LVM_FIRST + 176); - -// Macro 149 -Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF; - -CONST - LVM_SETOUTLINECOLOR = (LVM_FIRST + 177); - -// Macro 150 -Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF; - -CONST - LVM_CANCELEDITLABEL = (LVM_FIRST + 179); - -// Macro 151 -Procedure ListView_CancelEditLabel( hwnd : hwnd); - -// These next to methods make it easy to identify an item that can be repositioned -// within listview. For example: Many developers use the lParam to store an identifier that is -// unique. Unfortunatly, in order to find this item, they have to iterate through all of the items -// in the listview. Listview will maintain a unique identifier. The upper bound is the size of a DWORD. - -CONST - LVM_MAPINDEXTOID = (LVM_FIRST + 180); - -// Macro 152 -Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT; - -CONST - LVM_MAPIDTOINDEX = (LVM_FIRST + 181); - -// Macro 153 -Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT; - -const LVM_ISITEMVISIBLE = (LVM_FIRST + 182); - -// macro 153b -function ListView_IsItemVisible(hwnd:hwnd; aindex:cuint):cuint; -// (UINT)SNDMSG((hwnd), LVM_ISITEMVISIBLE, (WPARAM)(index), (LPARAM)0) - -{$ENDIF} - -{$ifdef win32vista} -CONST - LVM_GETEMPTYTEXT = (LVM_FIRST + 204); - LVM_GETFOOTERRECT = (LVM_FIRST + 205); - LVM_GETFOOTERINFO = (LVM_FIRST + 206); - LVM_GETFOOTERITEMRECT = (LVM_FIRST + 207); - LVM_GETFOOTERITEM = (LVM_FIRST + 208); - LVM_GETITEMINDEXRECT = (LVM_FIRST + 209); - LVM_SETITEMINDEXSTATE = (LVM_FIRST + 210); - LVM_GETNEXTITEMINDEX = (LVM_FIRST + 211); - -// footer flags - LVFF_ITEMCOUNT = $00000001; - -// footer item flags - LVFIF_TEXT = $00000001; - LVFIF_STATE = $00000002; - -// footer item state - LVFIS_FOCUSED = $0001; - -TYPE - tagLVFOOTERINFO = Record - mask : CUINT; // LVFF_* - pszText : LPWSTR; - cchTextMax: CINT; - cItems : CUINT; - end; - - LVFOOTERINFO = tagLVFOOTERINFO; - LPLVFOOTERINFO = ^tagLVFOOTERINFO; - TLVFOOTERINFO = tagLVFOOTERINFO; - PLVFOOTERINFO = LPLVFOOTERINFO; - - - tagLVFOOTERITEM = Record - mask : CUINT; // LVFIF_* - iItem : CINT; - pszText : LPWSTR; - cchTextMax: CINT; - state : CUINT; // LVFIS_* - stateMask : CUINT; // LVFIS_* - end; - - LVFOOTERITEM = tagLVFOOTERITEM; - LPLVFOOTERITEM = ^tagLVFOOTERITEM; - TLVFOOTERITEM = tagLVFOOTERITEM; - PLVFOOTERITEM = LPLVFOOTERITEM; - -// supports a single item in multiple groups. - tagLVITEMINDEX = Record - iItem : CINT; // listview item index - iGroup : CINT; // group index (must be -1 if group view is not enabled) - end; - LVITEMINDEX = tagLVITEMINDEX; - PLVITEMINDEX = ^tagLVITEMINDEX; - tLVITEMINDEX = TAGLVITEMINDEX; - - -function ListView_SetGroupHeaderImageList(hwnd:HWNd;himl:HIMAGELIST):HIMAGELIST; - -function ListView_GetGroupHeaderImageList(hwnd:HWND):HIMAGELIST; - -function ListView_GetEmptyText(hwnd:HWND;pszText:LPWSTR; cchText:CUINT):BOOL; - -function ListView_GetFooterRect(hwnd:HWND; prc:PRECT):BOOL; - -function ListView_GetFooterInfo(hwnd:HWND;plvfi: LPLVFOOTERINFO ):BOOL; - -function ListView_GetFooterItemRect(hwnd:HWND;iItem:CUINT;prc:PRECT):BOOL; - -function ListView_GetFooterItem(hwnd:HWND;iItem:CUINT; pfi:PLVFOOTERITEM):BOOL; - -function ListView_GetItemIndexRect(hwnd:hwnd; plvii:PLVITEMINDEX; iSubItem:clong; code:clong; prc:LPRECT) :BOOL; - -function ListView_SetItemIndexState(hwndLV:HWND; plvii:PLVITEMINDEX; data:CUINT; mask:CUINT):HRESULT; - -function ListView_GetNextItemIndex(hwnd:HWND;plvii:PLVITEMINDEX; flags:LPARAM):BOOL; - -{$endif} - -Type - -{$IFDEF UNICODE} - LVBKIMAGE = LVBKIMAGEW; - LPLVBKIMAGE = LPLVBKIMAGEW; -CONST - LVM_SETBKIMAGE = LVM_SETBKIMAGEW; - LVM_GETBKIMAGE = LVM_GETBKIMAGEW; -{$ELSE} - LVBKIMAGE = LVBKIMAGEA; - LPLVBKIMAGE = LPLVBKIMAGEA; -CONST - LVM_SETBKIMAGE = LVM_SETBKIMAGEA; - LVM_GETBKIMAGE = LVM_GETBKIMAGEA; -{$ENDIF} - - -// Macro 154 -Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL; - -// Macro 155 -Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL; - -{$ENDIF} // _WIN32_IE >= 0x0400 - -TYPE - - tagNMLISTVIEW = Record - hdr : NMHDR; - iItem : cint; - iSubItem : cint; - uNewState : UINT; - uOldState : UINT; - uChanged : UINT; - ptAction : POINT; - lParam : LPARAM; - END; - NMLISTVIEW = tagNMLISTVIEW; - LPNMLISTVIEW = ^tagNMLISTVIEW; - TNMLISTVIEW = tagNMLISTVIEW; - PNMLISTVIEW = ^tagNMLISTVIEW; - -{$ifdef IE4plus} -// NMITEMACTIVATE is used instead of NMLISTVIEW in IE >= 0x400 -// therefore all the fields are the same except for extra uKeyFlags -// they are used to store key flags at the time of the single click with -// delayed activation - because by the time the timer goes off a user may -// not hold the keys (shift, ctrl) any more - tagNMITEMACTIVATE = Record - hdr : NMHDR; - iItem : cint; - iSubItem : cint; - uNewState : UINT; - uOldState : UINT; - uChanged : UINT; - ptAction : POINT; - lParam : LPARAM; - uKeyFlags : UINT; - END; - NMITEMACTIVATE = tagNMITEMACTIVATE; - LPNMITEMACTIVATE = ^tagNMITEMACTIVATE; - TNMITEMACTIVATE = tagNMITEMACTIVATE; - PNMITEMACTIVATE = ^tagNMITEMACTIVATE; - -// key flags stored in uKeyFlags - -CONST - LVKF_ALT = $0001; - LVKF_CONTROL = $0002; - LVKF_SHIFT = $0004; -{$ENDIF} //(_WIN32_IE >= 0x0400) -Type - -{$ifdef ie3plus} - LPNM_LISTVIEW = LPNMLISTVIEW; - NM_LISTVIEW = NMLISTVIEW; -{$ELSE} - tagNMLISTVIEW = _NM_LISTVIEW; - NMLISTVIEW = NM_LISTVIEW; - LPNMLISTVIEW = LPNM_LISTVIEW; -{$ENDIF} - - -{$ifdef ie3plus} -// #define NMLVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMLVCUSTOMDRW, clrTextBk) - -TYPE - - tagNMLVCUSTOMDRAW = Record - nmcd : NMCUSTOMDRAW; - clrText : COLORREF; - clrTextBk : COLORREF; -{$ifdef ie4plus} - iSubItem : cint; -{$ENDIF} -{$ifdef win32xp} - dwItemType : DWORD; - - clrFace : COLORREF; - iIconEffect : cint; - iIconPhase : cint; - iPartId : cint; - iStateId : cint; - - rcText : RECT; - uAlign : UINT; // Alignment. Use LVGA_HEADER_CENTER, LVGA_HEADER_RIGHT, LVGA_HEADER_LEFT -{$ENDIF} - END; - NMLVCUSTOMDRAW = tagNMLVCUSTOMDRAW; - LPNMLVCUSTOMDRAW = ^tagNMLVCUSTOMDRAW; - TNMLVCUSTOMDRAW = tagNMLVCUSTOMDRAW; - PNMLVCUSTOMDRAW = ^tagNMLVCUSTOMDRAW; - - -// dwItemType - -CONST - LVCDI_ITEM = $00000000; - LVCDI_GROUP = $00000001; - -// ListView custom draw return values - LVCDRF_NOSELECT = $00010000; - LVCDRF_NOGROUPFRAME = $00020000; - -TYPE - - tagNMLVCACHEHINT = Record - hdr : NMHDR; - iFrom : cint; - iTo : cint; - END; - NMLVCACHEHINT = tagNMLVCACHEHINT; - LPNMLVCACHEHINT = ^tagNMLVCACHEHINT; - TNMLVCACHEHINT = tagNMLVCACHEHINT; - PNMLVCACHEHINT = ^tagNMLVCACHEHINT; - - - LPNM_CACHEHINT = LPNMLVCACHEHINT; - PNM_CACHEHINT = LPNMLVCACHEHINT; - - NM_CACHEHINT = NMLVCACHEHINT; - - tagNMLVFINDITEMA = Record - hdr : NMHDR; - iStart : cint; - lvfi : LVFINDINFOA; - END; - NMLVFINDITEMA = tagNMLVFINDITEMA; - LPNMLVFINDITEMA = ^tagNMLVFINDITEMA; - TNMLVFINDITEMA = tagNMLVFINDITEMA; - PNMLVFINDITEMA = ^tagNMLVFINDITEMA; - - - tagNMLVFINDITEMW = Record - hdr : NMHDR; - iStart : cint; - lvfi : LVFINDINFOW; - END; - NMLVFINDITEMW = tagNMLVFINDITEMW; - LPNMLVFINDITEMW = ^tagNMLVFINDITEMW; - TNMLVFINDITEMW = tagNMLVFINDITEMW; - PNMLVFINDITEMW = ^tagNMLVFINDITEMW; - - - PNM_FINDITEMA = LPNMLVFINDITEMA; - LPNM_FINDITEMA = LPNMLVFINDITEMA; - NM_FINDITEMA = NMLVFINDITEMA; - - PNM_FINDITEMW = LPNMLVFINDITEMW; - LPNM_FINDITEMW = LPNMLVFINDITEMW; - NM_FINDITEMW = NMLVFINDITEMW; - -{$IFDEF UNICODE} - PNM_FINDITEM = PNM_FINDITEMW; - LPNM_FINDITEM = LPNM_FINDITEMW; - NM_FINDITEM = NM_FINDITEMW; - NMLVFINDITEM = NMLVFINDITEMW; - LPNMLVFINDITEM = LPNMLVFINDITEMW; -{$ELSE} - PNM_FINDITEM = PNM_FINDITEMA; - LPNM_FINDITEM = LPNM_FINDITEMA; - NM_FINDITEM = NM_FINDITEMA; - NMLVFINDITEM = NMLVFINDITEMA; - LPNMLVFINDITEM = LPNMLVFINDITEMA; -{$ENDIF} - PNMLVFindItem = LPNMLVFINDITEM; - TNMLVFindItem = NMLVFINDITEM; - - tagNMLVODSTATECHANGE = Record - hdr : NMHDR; - iFrom : cint; - iTo : cint; - uNewState : UINT; - uOldState : UINT; - END; - NMLVODSTATECHANGE = tagNMLVODSTATECHANGE; - LPNMLVODSTATECHANGE = ^tagNMLVODSTATECHANGE; - TNMLVODSTATECHANGE = tagNMLVODSTATECHANGE; - PNMLVODSTATECHANGE = ^tagNMLVODSTATECHANGE; - - - PNM_ODSTATECHANGE = LPNMLVODSTATECHANGE; - LPNM_ODSTATECHANGE = LPNMLVODSTATECHANGE; - - - NM_ODSTATECHANGE = NMLVODSTATECHANGE; -{$ENDIF} // _WIN32_IE >= 0x0300 - -CONST - LVN_ITEMCHANGING = (LVN_FIRST-0); - LVN_ITEMCHANGED = (LVN_FIRST-1); - LVN_INSERTITEM = (LVN_FIRST-2); - LVN_DELETEITEM = (LVN_FIRST-3); - LVN_DELETEALLITEMS = (LVN_FIRST-4); - LVN_BEGINLABELEDITA = (LVN_FIRST-5); - LVN_BEGINLABELEDITW = (LVN_FIRST-75); - LVN_ENDLABELEDITA = (LVN_FIRST-6); - LVN_ENDLABELEDITW = (LVN_FIRST-76); - LVN_COLUMNCLICK = (LVN_FIRST-8); - LVN_BEGINDRAG = (LVN_FIRST-9); - LVN_BEGINRDRAG = (LVN_FIRST-11); - -{$ifdef ie3plus} - LVN_ODCACHEHINT = (LVN_FIRST-13); - LVN_ODFINDITEMA = (LVN_FIRST-52); - LVN_ODFINDITEMW = (LVN_FIRST-79); - - LVN_ITEMACTIVATE = (LVN_FIRST-14); - LVN_ODSTATECHANGED = (LVN_FIRST-15); - -Const -{$IFDEF UNICODE} - LVN_ODFINDITEM = LVN_ODFINDITEMW; -{$ELSE} - LVN_ODFINDITEM = LVN_ODFINDITEMA; -{$ENDIF} -{$ENDIF} // _WIN32_IE >= 0x0300 - - -CONST -{$ifdef ie4plus} - LVN_HOTTRACK = (LVN_FIRST-21); -{$ENDIF} - - LVN_GETDISPINFOA = (LVN_FIRST-50); - LVN_GETDISPINFOW = (LVN_FIRST-77); - LVN_SETDISPINFOA = (LVN_FIRST-51); - LVN_SETDISPINFOW = (LVN_FIRST-78); - -Const -{$IFDEF UNICODE} - LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITW; - LVN_ENDLABELEDIT = LVN_ENDLABELEDITW; - LVN_GETDISPINFO = LVN_GETDISPINFOW; - LVN_SETDISPINFO = LVN_SETDISPINFOW; -{$ELSE} - LVN_BEGINLABELEDIT = LVN_BEGINLABELEDITA; - LVN_ENDLABELEDIT = LVN_ENDLABELEDITA; - LVN_GETDISPINFO = LVN_GETDISPINFOA; - LVN_SETDISPINFO = LVN_SETDISPINFOA; -{$ENDIF} - -CONST - LVIF_DI_SETITEM = $1000; - -TYPE - - tagLVDISPINFO = Record - hdr : NMHDR; - item : LVITEMA; - END; - NMLVDISPINFOA = tagLVDISPINFO; - LPNMLVDISPINFOA = ^tagLVDISPINFO; - TLVDISPINFO = tagLVDISPINFO; - PLVDISPINFO = ^tagLVDISPINFO; - - - tagLVDISPINFOW = Record - hdr : NMHDR; - item : LVITEMW; - END; - NMLVDISPINFOW = tagLVDISPINFOW; - LPNMLVDISPINFOW = ^tagLVDISPINFOW; - TLVDISPINFOW = tagLVDISPINFOW; - PLVDISPINFOW = ^tagLVDISPINFOW; - - -{$IFDEF UNICODE} - NMLVDISPINFO = NMLVDISPINFOW; -{$ELSE} - NMLVDISPINFO = NMLVDISPINFOA; -{$ENDIF} - -{$ifdef ie3plus} - LV_DISPINFOA = NMLVDISPINFOA; - LV_DISPINFOW = NMLVDISPINFOW; -{$ELSE} - tagLVDISPINFO = _LV_DISPINFO; - NMLVDISPINFOA = LV_DISPINFOA; - tagLVDISPINFOW = _LV_DISPINFOW; - NMLVDISPINFOW = LV_DISPINFOW; -{$ENDIF} - - - LV_DISPINFO = NMLVDISPINFO; - -CONST - LVN_KEYDOWN = (LVN_FIRST-55); - - - -{$IFDEF _WIN32} -// include -{$ENDIF} - -TYPE - tagLVKEYDOWN = Record - hdr : NMHDR; - wVKey : WORD; - flags : UINT; - END; - NMLVKEYDOWN = tagLVKEYDOWN; - LPNMLVKEYDOWN = ^tagLVKEYDOWN; - TLVKEYDOWN = tagLVKEYDOWN; - PLVKEYDOWN = ^tagLVKEYDOWN; - - -{$IFDEF _WIN32} -//include -{$ENDIF} - -{$ifdef ie3plus} -CONST - LVN_MARQUEEBEGIN = (LVN_FIRST-56); -{$ENDIF} - -{$ifdef win32vista} -Type - tagNMLVLIN = Record - hdr: NMHDR; - link: LITEM; - iItem: cint; - iSubItem: cint; - end; - NMLVLINK = tagNMLVLIN; - TNMLVLINK = tagNMLVLIN; - PNMLVLINK = ^tagNMLVLIN; -{$endif} - -{$ifdef ie4plus} -TYPE - - tagNMLVGETINFOTIPA = Record - hdr : NMHDR; - dwFlags : DWORD; - pszText : LPSTR; - cchTextMax : cint; - iItem : cint; - iSubItem : cint; - lParam : LPARAM; - END; - NMLVGETINFOTIPA = tagNMLVGETINFOTIPA; - LPNMLVGETINFOTIPA = ^tagNMLVGETINFOTIPA; - TNMLVGETINFOTIPA = tagNMLVGETINFOTIPA; - PNMLVGETINFOTIPA = ^tagNMLVGETINFOTIPA; - - - tagNMLVGETINFOTIPW = Record - hdr : NMHDR; - dwFlags : DWORD; - pszText : LPWSTR; - cchTextMax : cint; - iItem : cint; - iSubItem : cint; - lParam : LPARAM; - END; - NMLVGETINFOTIPW = tagNMLVGETINFOTIPW; - LPNMLVGETINFOTIPW = ^tagNMLVGETINFOTIPW; - TNMLVGETINFOTIPW = tagNMLVGETINFOTIPW; - PNMLVGETINFOTIPW = ^tagNMLVGETINFOTIPW; - -{$ifdef ie3plus} - LV_KEYDOWN = NMLVKEYDOWN; -{$ELSE} - tagLVKEYDOWN = _LV_KEYDOWN; - NMLVKEYDOWN = LV_KEYDOWN; -{$ENDIF} - - -// NMLVGETINFOTIPA.dwFlag values - -CONST - LVGIT_UNFOLDED = $0001; - - LVN_GETINFOTIPA = (LVN_FIRST-57); - LVN_GETINFOTIPW = (LVN_FIRST-58); - LVN_INCREMENTALSEARCHA = (LVN_FIRST-62); - LVN_INCREMENTALSEARCHW = (LVN_FIRST-63); - - LVNSCH_DEFAULT = -1; - LVNSCH_ERROR = -2; - LVNSCH_IGNORE = -3; - -{$ifdef win32vista} - LVN_COLUMNDROPDOWN = (LVN_FIRST-64); - LVN_COLUMNOVERFLOWCLICK = (LVN_FIRST-66); -{$endif} - -Const -{$IFDEF UNICODE} - LVN_GETINFOTIP = LVN_GETINFOTIPW; -type - NMLVGETINFOTIP = NMLVGETINFOTIPW; - LPNMLVGETINFOTIP = LPNMLVGETINFOTIPW; -{$ELSE} - LVN_GETINFOTIP = LVN_GETINFOTIPA; -type - NMLVGETINFOTIP = NMLVGETINFOTIPA; - LPNMLVGETINFOTIP = LPNMLVGETINFOTIPA; -{$ENDIF} -{$ENDIF} // _WIN32_IE >= 0x0400 - - -{$ifdef win32xp} // actually 2003 - tagNMLVSCROLL = Record - hdr : NMHDR; - dx : cint; - dy : cint; - END; - NMLVSCROLL = tagNMLVSCROLL; - LPNMLVSCROLL = ^tagNMLVSCROLL; - TNMLVSCROLL = tagNMLVSCROLL; - PNMLVSCROLL = ^tagNMLVSCROLL; - - -CONST - LVN_BEGINSCROLL = (LVN_FIRST-80); - LVN_ENDSCROLL = (LVN_FIRST-81); -// {$ENDIF} - -{$ifdef win32vista} - LVN_LINKCLICK = (LVN_FIRST-84); - LVN_GETEMPTYMARKUP = (LVN_FIRST-87); - - EMF_CENTERED = $00000001; // render markup centered in the listview area - -Type - tagNMLVEMPTYMARKUP = Record - hdr : NMHDR; - // out params from client back to listview - dwFlags :DWORD; // EMF_* - szMarkup : array[0..L_MAX_URL_LENGTH-1] of wchar; // markup displayed - end; - NMLVEMPTYMARKUP = tagNMLVEMPTYMARKUP; - TNMLVEMPTYMARKUP = tagNMLVEMPTYMARKUP; - PNMLVEMPTYMARKUP = ^tagNMLVEMPTYMARKUP; - -{$endif} - -{$ENDIF} // NOLISTVIEW - -//====== TREEVIEW CONTROL ===================================================== - -{$IFNDEF NOTREEVIEW} - -CONST -{$IFDEF _WIN32} - WC_TREEVIEWA = 'SysTreeView32'; - WC_TREEVIEWW = {L}'SysTreeView32'; - -{$IFDEF UNICODE} - WC_TREEVIEW = WC_TREEVIEWW; -{$ELSE} - WC_TREEVIEW = WC_TREEVIEWA; -{$ENDIF} -{$ELSE} - WC_TREEVIEW = 'SysTreeView'; -{$ENDIF} - -// begin_r_commctrl - - TVS_HASBUTTONS = $0001; - TVS_HASLINES = $0002; - TVS_LINESATROOT = $0004; - TVS_EDITLABELS = $0008; - TVS_DISABLEDRAGDROP = $0010; - TVS_SHOWSELALWAYS = $0020; -{$ifdef ie3plus} - TVS_RTLREADING = $0040; - - TVS_NOTOOLTIPS = $0080; - TVS_CHECKBOXES = $0100; - TVS_TRACKSELECT = $0200; -{$ifdef ie4plus} - TVS_SINGLEEXPAND = $0400; - TVS_INFOTIP = $0800; - TVS_FULLROWSELECT = $1000; - TVS_NOSCROLL = $2000; - TVS_NONEVENHEIGHT = $4000; -{$ENDIF} -{$ifdef ie5plus} - TVS_NOHSCROLL = $8000; // TVS_NOSCROLL overrides this -{$ENDIF} -{$ifdef win32vista} - TVS_EX_MULTISELECT = $0002; - TVS_EX_DOUBLEBUFFER = $0004; - TVS_EX_NOINDENTSTATE = $0008; - TVS_EX_RICHTOOLTIP = $0010; - TVS_EX_AUTOHSCROLL = $0020; - TVS_EX_FADEINOUTEXPANDOS = $0040; - TVS_EX_PARTIALCHECKBOXES = $0080; - TVS_EX_EXCLUSIONCHECKBOXES = $0100; - TVS_EX_DIMMEDCHECKBOXES = $0200; - TVS_EX_DRAWIMAGEASYNC = $0400; -{$endif} -{$ENDIF} - -// end_r_commctrl - -TYPE - HTREEITEM = ^TREEITEM; - -CONST - TVIF_TEXT = $0001; - TVIF_IMAGE = $0002; - TVIF_PARAM = $0004; - TVIF_STATE = $0008; - TVIF_HANDLE = $0010; - TVIF_SELECTEDIMAGE = $0020; - TVIF_CHILDREN = $0040; -{$ifdef ie4plus} - TVIF_INTEGRAL = $0080; -{$ENDIF} -{$ifdef win32vista} - TVIF_STATEEX = $0100; - TVIF_EXPANDEDIMAGE = $0200; -{$endif} - TVIS_SELECTED = $0002; - TVIS_CUT = $0004; - TVIS_DROPHILITED = $0008; - TVIS_BOLD = $0010; - TVIS_EXPANDED = $0020; - TVIS_EXPANDEDONCE = $0040; -{$ifdef ie3plus} - TVIS_EXPANDPARTIAL = $0080; -{$ENDIF} - - TVIS_OVERLAYMASK = $0F00; - TVIS_STATEIMAGEMASK = $F000; - TVIS_USERMASK = $F000; - -// IE6 - TVIS_EX_FLAT = $0001; -{$ifdef win32vista} - TVIS_EX_DISABLED = $0002; -{$endif} - TVIS_EX_ALL = $0002; -Type - -// Structure for TreeView's NM_TVSTATEIMAGECHANGING notification - tagNMTVSTATEIMAGECHANGING = Record - hdr : NMHDR; - hti : HTREEITEM; - iOldStateImageIndex : cint; - iNewStateImageIndex : cint; - end; - NMTVSTATEIMAGECHANGING = tagNMTVSTATEIMAGECHANGING; - LPNMTVSTATEIMAGECHANGING = ^tagNMTVSTATEIMAGECHANGING; - -Const - I_CHILDRENCALLBACK = (-1); -Type - tagTVITEMA = Record - mask : UINT; - hItem : HTREEITEM; - state : UINT; - stateMask : UINT; - pszText : LPSTR; - cchTextMax : cint; - iImage : cint; - iSelectedImage : cint; - cChildren : cint; - lParam : LPARAM; -{$ifdef ie6plus} - uStateEx : cUINT; - hwnd : HWND; - iExpandedImage : cint; -{$endif} -{$ifdef NTDDI_WIN7} - iPadding : cint; -{$endif} - END; - TVITEMA = tagTVITEMA; - LPTVITEMA = ^tagTVITEMA; - TTVITEMA = tagTVITEMA; - PTVITEMA = ^tagTVITEMA; - - - tagTVITEMW = Record - mask : UINT; - hItem : HTREEITEM; - state : UINT; - stateMask : UINT; - pszText : LPWSTR; - cchTextMax : cint; - iImage : cint; - iSelectedImage : cint; - cChildren : cint; - lParam : LPARAM; -{$ifdef ie6plus} - uStateEx : cUINT; - hwnd : HWND; - iExpandedImage : cint; -{$endif} -{$ifdef NTDDI_WIN7} - iPadding : cint; -{$endif} - END; - TVITEMW = tagTVITEMW; - LPTVITEMW = ^tagTVITEMW; - TTVITEMW = tagTVITEMW; - PTVITEMW = ^tagTVITEMW; - - -{$ifdef ie4plus} -// only used for Get and Set messages. no notifies - tagTVITEMEXA = Record - mask : UINT; - hItem : HTREEITEM; - state : UINT; - stateMask : UINT; - pszText : LPSTR; - cchTextMax : cint; - iImage : cint; - iSelectedImage : cint; - cChildren : cint; - lParam : LPARAM; - iIntegral : cint; - END; - TVITEMEXA = tagTVITEMEXA; - LPTVITEMEXA = ^tagTVITEMEXA; - TTVITEMEXA = tagTVITEMEXA; - PTVITEMEXA = ^tagTVITEMEXA; - -// only used for Get and Set messages. no notifies - tagTVITEMEXW = Record - mask : UINT; - hItem : HTREEITEM; - state : UINT; - stateMask : UINT; - pszText : LPWSTR; - cchTextMax : cint; - iImage : cint; - iSelectedImage : cint; - cChildren : cint; - lParam : LPARAM; - iIntegral : cint; - END; - TVITEMEXW = tagTVITEMEXW; - LPTVITEMEXW = ^tagTVITEMEXW; - TTVITEMEXW = tagTVITEMEXW; - PTVITEMEXW = ^tagTVITEMEXW; - - -TYPE -{$ifdef ie3plus} - LPTV_ITEMW = LPTVITEMW; - LPTV_ITEMA = LPTVITEMA; - TV_ITEMW = TVITEMW; - TV_ITEMA = TVITEMA; -{$ELSE} - tagTVITEMA = _TV_ITEMA; - TVITEMA = TV_ITEMA; - LPTVITEMA = LPTV_ITEMA; - tagTVITEMW = _TV_ITEMW; - TVITEMW = TV_ITEMW; - LPTVITEMW = LPTV_ITEMW; -{$ENDIF} - TTVItem = TVITEMA; - PTVItem = LPTVITEMA; - - - - - -{$IFDEF UNICODE} - TVITEMEX = TVITEMEXW; - LPTVITEMEX = LPTVITEMEXW; -{$ELSE} - TVITEMEX = TVITEMEXA; - LPTVITEMEX = LPTVITEMEXA; -{$ENDIF} // UNICODE - - -{$ENDIF} - -{$IFDEF UNICODE} - TVITEM = TVITEMW; - LPTVITEM = LPTVITEMW; -{$ELSE} - TVITEM = TVITEMA; - LPTVITEM = LPTVITEMA; -{$ENDIF} - - LPTV_ITEM = LPTVITEM; - TV_ITEM = TVITEM; - -CONST - TVI_ROOT = HTREEITEM(ULONG_PTR(-$10000)); - TVI_FIRST = HTREEITEM(ULONG_PTR(-$0FFFF)); - TVI_LAST = HTREEITEM(ULONG_PTR(-$0FFFE)); - TVI_SORT = HTREEITEM(ULONG_PTR(-$0FFFD)); - - - -// #define TVINSERTSTRUCTA_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTA, item) -// #define TVINSERTSTRUCTW_V1_SIZE CCSIZEOF_STRUCT(TVINSERTSTRUCTW, item) -Type - tagTVINSERTSTRUCTA = Record - hParent : HTREEITEM; - hInsertAfter : HTREEITEM; -{$ifdef ie4plus} - case boolean of - false: (itemex : TVITEMEXA); - True: (item : TV_ITEMA); -{$ELSE} - item : TV_ITEMA; -{$ENDIF} - END; - TVINSERTSTRUCTA = tagTVINSERTSTRUCTA; - LPTVINSERTSTRUCTA = ^tagTVINSERTSTRUCTA; - TTVINSERTSTRUCTA = tagTVINSERTSTRUCTA; - PTVINSERTSTRUCTA = ^tagTVINSERTSTRUCTA; - TTVINSERTSTRUCT = TTVINSERTSTRUCTA; - PTVINSERTSTRUCT = PTVINSERTSTRUCTA; - - - tagTVINSERTSTRUCTW = Record - hParent : HTREEITEM; - hInsertAfter : HTREEITEM; -{$ifdef ie4plus} - case boolean of - false: (itemex : TVITEMEXW); - True: (item : TV_ITEMW); -{$ELSE} - item : TV_ITEMW; -{$ENDIF} - END; - TVINSERTSTRUCTW = tagTVINSERTSTRUCTW; - LPTVINSERTSTRUCTW = ^tagTVINSERTSTRUCTW; - TTVINSERTSTRUCTW = tagTVINSERTSTRUCTW; - PTVINSERTSTRUCTW = ^tagTVINSERTSTRUCTW; - - -{$IFDEF UNICODE} - TVINSERTSTRUCT = TVINSERTSTRUCTW; - LPTVINSERTSTRUCT = LPTVINSERTSTRUCTW; -// TVINSERTSTRUCT_V1_SIZE = TVINSERTSTRUCTW_V1_SIZE; -{$ELSE} - TVINSERTSTRUCT = TVINSERTSTRUCTA; - LPTVINSERTSTRUCT = LPTVINSERTSTRUCTA; -// TVINSERTSTRUCT_V1_SIZE = TVINSERTSTRUCTA_V1_SIZE; -{$ENDIF} -CONST - TVM_INSERTITEMA = (TV_FIRST + 0); - TVM_INSERTITEMW = (TV_FIRST + 50); -{$IFDEF UNICODE} - TVM_INSERTITEM = TVM_INSERTITEMW; -{$ELSE} - TVM_INSERTITEM = TVM_INSERTITEMA; -{$ENDIF} - -TYPE -{$ifdef ie3plus} - LPTV_INSERTSTRUCTA = LPTVINSERTSTRUCTA; - LPTV_INSERTSTRUCTW = LPTVINSERTSTRUCTW; - TV_INSERTSTRUCTA = TVINSERTSTRUCTA; - TV_INSERTSTRUCTW = TVINSERTSTRUCTW; -{$ELSE} - tagTVINSERTSTRUCTA = _TV_INSERTSTRUCTA; - TVINSERTSTRUCTA = TV_INSERTSTRUCTA; - LPTVINSERTSTRUCTA = LPTV_INSERTSTRUCTA; - tagTVINSERTSTRUCTW = _TV_INSERTSTRUCTW; - TVINSERTSTRUCTW = TV_INSERTSTRUCTW; - LPTVINSERTSTRUCTW = LPTV_INSERTSTRUCTW; -{$ENDIF} - - - TV_INSERTSTRUCT = TVINSERTSTRUCT; - LPTV_INSERTSTRUCT = LPTVINSERTSTRUCT; - - -// Macro 156 -Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;inline; -Function TreeView_InsertItem( hwnd : hwnd; const lpis : TV_INSERTSTRUCT):HTREEITEM;inline; - -CONST - TVM_DELETEITEM = (TV_FIRST + 1); - -// Macro 157 -Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL; - -// Macro 158 -Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL; - -CONST - TVM_EXPAND = (TV_FIRST + 2); - -// Macro 159 -Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL; - -CONST - TVE_COLLAPSE = $0001; - TVE_EXPAND = $0002; - TVE_TOGGLE = $0003; -{$ifdef ie3plus} - TVE_EXPANDPARTIAL = $4000; -{$ENDIF} - TVE_COLLAPSERESET = $8000; - - - TVM_GETITEMRECT = (TV_FIRST + 4); - -// Macro 160 -Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; code : WPARAM; prc : pRECT):BOOL;inline; -Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; var prc : TRECT;code : Bool):BOOL;inline; - -CONST - TVM_GETCOUNT = (TV_FIRST + 5); - -// Macro 161 -Function TreeView_GetCount( hwnd : hwnd):UINT; - -CONST - TVM_GETINDENT = (TV_FIRST + 6); - -// Macro 162 -Function TreeView_GetIndent( hwnd : hwnd):UINT; - -CONST - TVM_SETINDENT = (TV_FIRST + 7); - -// Macro 163 -Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL; - -CONST - TVM_GETIMAGELIST = (TV_FIRST + 8); - -// Macro 164 -Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST; - -CONST - TVSIL_NORMAL = 0; - TVSIL_STATE = 2; - - - TVM_SETIMAGELIST = (TV_FIRST + 9); - -// Macro 165 -Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint):HIMAGELIST; - -CONST - TVM_GETNEXTITEM = (TV_FIRST + 10); - -// Macro 166 -Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM; - -CONST - TVGN_ROOT = $0000; - TVGN_NEXT = $0001; - TVGN_PREVIOUS = $0002; - TVGN_PARENT = $0003; - TVGN_CHILD = $0004; - TVGN_FIRSTVISIBLE = $0005; - TVGN_NEXTVISIBLE = $0006; - TVGN_PREVIOUSVISIBLE = $0007; - TVGN_DROPHILITE = $0008; - TVGN_CARET = $0009; -{$ifdef ie4plus} - TVGN_LASTVISIBLE = $000A; -{$ENDIF} // _WIN32_IE >= 0x0400 -{$ifdef ie6plus} - TVGN_NEXTSELECTED = $000B; -{$endif} -{$ifdef win32xp} // 0x501 - TVSI_NOSINGLEEXPAND = $8000; // Should not conflict with TVGN flags. -{$ENDIF} - -function TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -function TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -function TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -function TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -function TreeView_GetFirstVisible(hwnd:hwnd) : HTREEITEM;inline; -function TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -function TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -function TreeView_GetSelection(hwnd:hwnd) : HTREEITEM;inline; -function TreeView_GetDropHilight(hwnd:hwnd) : HTREEITEM;inline; -function TreeView_GetDropHilite(hwnd:hwnd) : HTREEITEM;inline; -function TreeView_GetRoot(hwnd:hwnd) : HTREEITEM;inline; -function TreeView_GetLastVisible(hwnd:hwnd) : HTREEITEM;inline; - -{$ifdef win32vista} -function TreeView_GetNextSelected(hwnd:hwnd; hitem:HTREEITEM):HTREEITEM;inline; -{$endif} - -CONST - TVM_SELECTITEM = (TV_FIRST + 11); - -// Macro 178 -Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL; - -// Macro 179 -Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM); - -// Macro 180 -Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM); - -// Macro 181 -Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM); - -CONST - TVM_GETITEMA = (TV_FIRST + 12); - TVM_GETITEMW = (TV_FIRST + 62); - -{$IFDEF UNICODE} - -TYPE - TVM_GETITEM = TVM_GETITEMW; -{$ELSE} - TVM_GETITEM = TVM_GETITEMA; -{$ENDIF} - -// Macro 182 - - -Function TreeView_GetItem( hwnd : hwnd;var pitem : TV_ITEM ):BOOL; - - - - -CONST - TVM_SETITEMA = (TV_FIRST + 13); - TVM_SETITEMW = (TV_FIRST + 63); - -{$IFDEF UNICODE} - -TYPE - TVM_SETITEM = TVM_SETITEMW; -{$ELSE} - TVM_SETITEM = TVM_SETITEMA; -{$ENDIF} - -// Macro 183 - - -Function TreeView_SetItem( hwnd : hwnd;const pitem : TV_ITEM ):BOOL; - - -CONST - TVM_EDITLABELA = (TV_FIRST + 14); - TVM_EDITLABELW = (TV_FIRST + 65); -{$IFDEF UNICODE} - -TYPE - TVM_EDITLABEL = TVM_EDITLABELW; -{$ELSE} - TVM_EDITLABEL = TVM_EDITLABELA; -{$ENDIF} - -// Macro 184 - - -Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND; - - - - -CONST - TVM_GETEDITCONTROL = (TV_FIRST + 15); -// Macro 185 - - -Function TreeView_GetEditControl( hwnd : hwnd):HWND; - - - - -CONST - TVM_GETVISIBLECOUNT = (TV_FIRST + 16); -// Macro 186 - - -Function TreeView_GetVisibleCount( hwnd : hwnd):UINT; - - - - -CONST - TVM_HITTEST = (TV_FIRST + 17); - -TYPE - - tagTVHITTESTINFO = Record - pt : POINT; - flags : UINT; - hItem : HTREEITEM; - END; - TVHITTESTINFO = tagTVHITTESTINFO; - LPTVHITTESTINFO = ^tagTVHITTESTINFO; - TTVHITTESTINFO = tagTVHITTESTINFO; - PTVHITTESTINFO = ^tagTVHITTESTINFO; - - -{$ifdef ie3plus} - LPTV_HITTESTINFO = LPTVHITTESTINFO; - TV_HITTESTINFO = TVHITTESTINFO; -{$ELSE} - tagTVHITTESTINFO = _TV_HITTESTINFO; - TVHITTESTINFO = TV_HITTESTINFO; - - LPTVHITTESTINFO = LPTV_HITTESTINFO; -{$ENDIF} - - -CONST - TVHT_NOWHERE = $0001; - TVHT_ONITEMICON = $0002; - TVHT_ONITEMLABEL = $0004; - TVHT_ONITEM = (TVHT_ONITEMICON OR TVHT_ONITEMLABEL OR TVHT_ONITEMSTATEICON); - TVHT_ONITEMINDENT = $0008; - TVHT_ONITEMBUTTON = $0010; - TVHT_ONITEMRIGHT = $0020; - TVHT_ONITEMSTATEICON = $0040; - - TVHT_ABOVE = $0100; - TVHT_BELOW = $0200; - TVHT_TORIGHT = $0400; - TVHT_TOLEFT = $0800; - - - TVM_CREATEDRAGIMAGE = (TV_FIRST + 18); - -// Macro 187 -Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;inline; -Function TreeView_HitTest( hwnd : hwnd; var lpht : TV_HITTESTINFO):HTREEITEM;inline; - - -// Macro 188 - - -Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST; - - - - -CONST - TVM_SORTCHILDREN = (TV_FIRST + 19); -// Macro 189 - - -Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL; - - - - -CONST - TVM_ENSUREVISIBLE = (TV_FIRST + 20); -// Macro 190 - - -Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL; - - - - - -CONST - TVM_ENDEDITLABELNOW = (TV_FIRST + 22); -// Macro 192 - - -Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;inline; -Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : Bool):BOOL;inline; - - - - -CONST - TVM_GETISEARCHSTRINGA = (TV_FIRST + 23); - TVM_GETISEARCHSTRINGW = (TV_FIRST + 64); - -{$IFDEF UNICODE} - -TYPE - TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGW; -{$ELSE} - TVM_GETISEARCHSTRING= TVM_GETISEARCHSTRINGA; -{$ENDIF} - -{$ifdef ie3plus} - -CONST - TVM_SETTOOLTIPS = (TV_FIRST + 24); -// Macro 193 - - -Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND; - - -CONST - TVM_GETTOOLTIPS = (TV_FIRST + 25); -// Macro 194 - - -Function TreeView_GetToolTips( hwnd : hwnd):HWND; - -{$ENDIF} - -// Macro 195 - - -Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL; - - -{$ifdef ie4plus} - -CONST - TVM_SETINSERTMARK = (TV_FIRST + 26); -// Macro 196 - - -Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LPARAM ; fAfter : WPARAM ):BOOL; - - - -CONST - TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; -// Macro 197 - - -Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - - - -CONST - TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; -// Macro 198 - - -Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL; - - -{$ENDIF} - -{$ifdef ie4plus} - -CONST - TVM_SETITEMHEIGHT = (TV_FIRST + 27); -// Macro 199 - - -Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint; - - -CONST - TVM_GETITEMHEIGHT = (TV_FIRST + 28); -// Macro 200 - - -Function TreeView_GetItemHeight( hwnd : hwnd):cint; - - - -CONST - TVM_SETBKCOLOR = (TV_FIRST + 29); -// Macro 201 - - -Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF; - - - -CONST - TVM_SETTEXTCOLOR = (TV_FIRST + 30); -// Macro 202 - - -Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF; - - - -CONST - TVM_GETBKCOLOR = (TV_FIRST + 31); - -// Macro 203 -Function TreeView_GetBkColor( hwnd : hwnd):COLORREF; - - -CONST - TVM_GETTEXTCOLOR = (TV_FIRST + 32); - -// Macro 204 -Function TreeView_GetTextColor( hwnd : hwnd):COLORREF; - - - -CONST - TVM_SETSCROLLTIME = (TV_FIRST + 33); - -// Macro 205 -Function TreeView_SetScrollTime( hwnd : hwnd; uTime :wparam ):UINT; - - - -CONST - TVM_GETSCROLLTIME = (TV_FIRST + 34); -// Macro 206 - - -Function TreeView_GetScrollTime( hwnd : hwnd):UINT; - - - - -CONST - TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37); -// Macro 207 - - -Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF; - - -CONST - TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38); -// Macro 208 - - -Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF; - - -{$ENDIF} // (_WIN32_IE >= 0x0400) - -{$ifdef ie5plus} -// tvm_?etitemstate only uses mask, state and stateMask. -// so unicode or ansi is irrelevant. -// Macro 209 - -Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT); - - -// Macro 210 - -Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool ); - - -CONST - TVM_GETITEMSTATE = (TV_FIRST + 39); - -// Macro 211 -Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT; - - -// Macro 212 -Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT; - - -CONST - TVM_SETLINECOLOR = (TV_FIRST + 40); -// Macro 213 -Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF; - -CONST - TVM_GETLINECOLOR = (TV_FIRST + 41); - -// Macro 214 -Function TreeView_GetLineColor( hwnd : hwnd):COLORREF; - - -{$ENDIF} - -{$ifdef Win32XP} - -CONST - TVM_MAPACCIDTOHTREEITEM = (TV_FIRST + 42); - -// Macro 215 -Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id : UINT ):HTREEITEM; - - - -CONST - TVM_MAPHTREEITEMTOACCID = (TV_FIRST + 43); - -// Macro 216 -Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT; - -{$ENDIF} - -{$ifdef win32vista} -CONST - TVM_GETSELECTEDCOUNT = (TV_FIRST + 70); - TVM_SHOWINFOTIP = (TV_FIRST + 71); - TVM_GETITEMPARTRECT = (TV_FIRST + 72); - -Type - TVITEMPART = (TVGIPR_BUTTON = $0001); - pTVITEMPART = ^TVITEMPART; - - tagTVGETITEMPARTRECTINFO = Record - hti :HTREEITEM ; - prc :PRECT; - partID :TVITEMPART; - end; - TVGETITEMPARTRECTINFO = tagTVGETITEMPARTRECTINFO; - -function TreeView_GetSelectedCount(hwnd:hwnd):DWORD; -// (DWORD)SNDMSG((hwnd), TVM_GETSELECTEDCOUNT, 0, 0) - -function TreeView_ShowInfoTip(hwnd:HWND; hitem:HTREEITEM):DWORD; -// (DWORD)SNDMSG((hwnd), TVM_SHOWINFOTIP, 0, (LPARAM)(hitem)) - -function TreeView_GetItemPartRect(hwnd:HWND; hitem:HTREEITEM; prc:prect; partid:TVITEMPART):bool; -//{ TVGETITEMPARTRECTINFO info; \ -// info.hti = (hitem); \ -// info.prc = (prc); \ -// info.partID = (partid); \ -// (BOOL)SNDMSG((hwnd), TVM_GETITEMPARTRECT, 0, (LPARAM)&info); \ - -{$endif} - - -TYPE - PFNTVCOMPARE =function (lparam1:LPARAM;lparam2:LPARAM;lParamSort:LParam): cint; STDCALL; - TTVCompare = PFNTVCOMPARE; - - - tagTVSORTCB = Record - hParent : HTREEITEM; - lpfnCompare : PFNTVCOMPARE; - lParam : LPARAM; - END; - TVSORTCB = tagTVSORTCB; - LPTVSORTCB = ^tagTVSORTCB; - TTVSORTCB = tagTVSORTCB; - PTVSORTCB = ^tagTVSORTCB; - -{$ifdef ie3plus} - LPTV_SORTCB = LPTVSORTCB; - - - TV_SORTCB = TVSORTCB; -{$ELSE} - tagTVSORTCB = _TV_SORTCB; - TVSORTCB = TV_SORTCB; - - - LPTVSORTCB = LPTV_SORTCB; -{$ENDIF} - - - tagNMTREEVIEWA = Record - hdr : NMHDR; - action : UINT; - itemOld : TVITEMA; - itemNew : TVITEMA; - ptDrag : POINT; - END; - NMTREEVIEWA = tagNMTREEVIEWA; - LPNMTREEVIEWA = ^tagNMTREEVIEWA; - TNMTREEVIEWA = tagNMTREEVIEWA; - PNMTREEVIEWA = ^tagNMTREEVIEWA; - PNMTreeView = PNMTreeViewA; - TNMTreeView = TNMTreeViewA; - - - - tagNMTREEVIEWW = Record - hdr : NMHDR; - action : UINT; - itemOld : TVITEMW; - itemNew : TVITEMW; - ptDrag : POINT; - END; - NMTREEVIEWW = tagNMTREEVIEWW; - LPNMTREEVIEWW = ^tagNMTREEVIEWW; - TNMTREEVIEWW = tagNMTREEVIEWW; - PNMTREEVIEWW = ^tagNMTREEVIEWW; - - - -{$IFDEF UNICODE} - NMTREEVIEW = NMTREEVIEWW; - LPNMTREEVIEW = LPNMTREEVIEWW; -{$ELSE} - NMTREEVIEW = NMTREEVIEWA; - LPNMTREEVIEW = LPNMTREEVIEWA; -{$ENDIF} - -{$ifdef ie3plus} - LPNM_TREEVIEWA = LPNMTREEVIEWA; - LPNM_TREEVIEWW = LPNMTREEVIEWW; - NM_TREEVIEWW = NMTREEVIEWW; - NM_TREEVIEWA = NMTREEVIEWA; -{$ELSE} - tagNMTREEVIEWA = _NM_TREEVIEWA; - tagNMTREEVIEWW = _NM_TREEVIEWW; - NMTREEVIEWA = NM_TREEVIEWA; - NMTREEVIEWW = NM_TREEVIEWW; - LPNMTREEVIEWA = LPNM_TREEVIEWA; - LPNMTREEVIEWW = LPNM_TREEVIEWW; -{$ENDIF} - - LPNM_TREEVIEW = LPNMTREEVIEW; - NM_TREEVIEW = NMTREEVIEW; - - - -CONST - TVN_SELCHANGINGA = (TVN_FIRST-1); - TVN_SELCHANGINGW = (TVN_FIRST-50); - TVN_SELCHANGEDA = (TVN_FIRST-2); - TVN_SELCHANGEDW = (TVN_FIRST-51); - - TVC_UNKNOWN = $0000; - TVC_BYMOUSE = $0001; - TVC_BYKEYBOARD = $0002; - - TVN_GETDISPINFOA = (TVN_FIRST-3); - TVN_GETDISPINFOW = (TVN_FIRST-52); - TVN_SETDISPINFOA = (TVN_FIRST-4); - TVN_SETDISPINFOW = (TVN_FIRST-53); - - TVIF_DI_SETITEM = $1000; - -Type - tagTVDISPINFOA = Record - hdr : NMHDR; - item : TVITEMA; - END; - NMTVDISPINFOA = tagTVDISPINFOA; - LPNMTVDISPINFOA = ^tagTVDISPINFOA; - TTVDISPINFOA = tagTVDISPINFOA; - PTVDISPINFOA = ^tagTVDISPINFOA; - TTVDispInfo = TTVDISPINFOA; - PTVDispInfo = PTVDISPINFOA; - - - tagTVDISPINFOW = Record - hdr : NMHDR; - item : TVITEMW; - END; - NMTVDISPINFOW = tagTVDISPINFOW; - LPNMTVDISPINFOW = ^tagTVDISPINFOW; - TTVDISPINFOW = tagTVDISPINFOW; - PTVDISPINFOW = ^tagTVDISPINFOW; - -{$IFDEF UNICODE} - NMTVDISPINFO = NMTVDISPINFOW; - LPNMTVDISPINFO = LPNMTVDISPINFOW; -{$ELSE} - NMTVDISPINFO = NMTVDISPINFOA; - LPNMTVDISPINFO = LPNMTVDISPINFOA; -{$ENDIF} - -{$ifdef IE6plus} - tagTVDISPINFOEXA = Record - hdr : NMHDR; - item :TVITEMEXA; - end; - NMTVDISPINFOEXA = tagTVDISPINFOEXA; - LPNMTVDISPINFOEXA = ^tagTVDISPINFOEXA; - - tagTVDISPINFOEXW = Record - hdr : NMHDR; - item :TVITEMEXW; - end; - NMTVDISPINFOEXW = tagTVDISPINFOEXW; - LPNMTVDISPINFOEXW = ^tagTVDISPINFOEXW; - -{$IFDEF UNICODE} - NMTVDISPINFOEX = NMTVDISPINFOEXW; - LPNMTVDISPINFOEX = LPNMTVDISPINFOEXW; -{$ELSE} - NMTVDISPINFOEX = NMTVDISPINFOEXA; - LPNMTVDISPINFOEX = LPNMTVDISPINFOEXA; -{$ENDIF} - - TV_DISPINFOEXA = NMTVDISPINFOEXA; - TV_DISPINFOEXW = NMTVDISPINFOEXW; - TV_DISPINFOEX = NMTVDISPINFOEX; - - -{$endif} - -{$ifdef ie3plus} - TV_DISPINFOA = NMTVDISPINFOA; - TV_DISPINFOW = NMTVDISPINFOW; -{$ELSE} - tagTVDISPINFOA = _TV_DISPINFOA; - NMTVDISPINFOA = TV_DISPINFOA; - tagTVDISPINFOW = _TV_DISPINFOW; - NMTVDISPINFOW = TV_DISPINFOW; -{$ENDIF} - TV_DISPINFO = NMTVDISPINFO; - - -CONST - TVM_SORTCHILDRENCB = (TV_FIRST + 21); - -// Macro 191 -Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;inline; -Function TreeView_SortChildrenCB( hwnd : hwnd;const psort :tagTVsortcb; recurse : WPARAM):BOOL;inline; - -CONST - TVN_ITEMEXPANDINGA = (TVN_FIRST-5); - TVN_ITEMEXPANDINGW = (TVN_FIRST-54); - TVN_ITEMEXPANDEDA = (TVN_FIRST-6); - TVN_ITEMEXPANDEDW = (TVN_FIRST-55); - TVN_BEGINDRAGA = (TVN_FIRST-7); - TVN_BEGINDRAGW = (TVN_FIRST-56); - TVN_BEGINRDRAGA = (TVN_FIRST-8); - TVN_BEGINRDRAGW = (TVN_FIRST-57); - TVN_DELETEITEMA = (TVN_FIRST-9); - TVN_DELETEITEMW = (TVN_FIRST-58); - TVN_BEGINLABELEDITA = (TVN_FIRST-10); - TVN_BEGINLABELEDITW = (TVN_FIRST-59); - TVN_ENDLABELEDITA = (TVN_FIRST-11); - TVN_ENDLABELEDITW = (TVN_FIRST-60); - TVN_KEYDOWN = (TVN_FIRST-12); - -{$ifdef ie4plus} - TVN_GETINFOTIPA = (TVN_FIRST-13); - TVN_GETINFOTIPW = (TVN_FIRST-14); - TVN_SINGLEEXPAND = (TVN_FIRST-15); - - TVNRET_DEFAULT = 0; - TVNRET_SKIPOLD = 1; - TVNRET_SKIPNEW = 2; - -{$ifdef win32vista} - TVN_ITEMCHANGINGA = (TVN_FIRST-16); - TVN_ITEMCHANGINGW = (TVN_FIRST-17); - TVN_ITEMCHANGEDA = (TVN_FIRST-18); - TVN_ITEMCHANGEDW = (TVN_FIRST-19); - TVN_ASYNCDRAW = (TVN_FIRST-20); -{$endif} - -{$ENDIF} // 0x400 - - - -{$IFDEF _WIN32} -// #include -{$ENDIF} - -TYPE - - tagTVKEYDOWN = Record - hdr : NMHDR; - wVKey : WORD; - flags : UINT; - END; - NMTVKEYDOWN = tagTVKEYDOWN; - LPNMTVKEYDOWN = ^tagTVKEYDOWN; - TTVKEYDOWN = tagTVKEYDOWN; - PTVKEYDOWN = ^tagTVKEYDOWN; - -{$ifdef ie3plus} - TV_KEYDOWN = NMTVKEYDOWN; -{$ELSE} - tagTVKEYDOWN = _TV_KEYDOWN; - NMTVKEYDOWN = TV_KEYDOWN; -{$ENDIF} - - -{$IFDEF _WIN32} -// #include -{$ENDIF} - -Const - -{$IFDEF UNICODE} - TVN_SELCHANGING = TVN_SELCHANGINGW; - TVN_SELCHANGED = TVN_SELCHANGEDW; - TVN_GETDISPINFO = TVN_GETDISPINFOW; - TVN_SETDISPINFO = TVN_SETDISPINFOW; - TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGW; - TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDW; - TVN_BEGINDRAG = TVN_BEGINDRAGW; - TVN_BEGINRDRAG = TVN_BEGINRDRAGW; - TVN_DELETEITEM = TVN_DELETEITEMW; - TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITW; - TVN_ENDLABELEDIT = TVN_ENDLABELEDITW; -{$ELSE} - TVN_SELCHANGING = TVN_SELCHANGINGA; - TVN_SELCHANGED = TVN_SELCHANGEDA; - TVN_GETDISPINFO = TVN_GETDISPINFOA; - TVN_SETDISPINFO = TVN_SETDISPINFOA; - TVN_ITEMEXPANDING = TVN_ITEMEXPANDINGA; - TVN_ITEMEXPANDED = TVN_ITEMEXPANDEDA; - TVN_BEGINDRAG = TVN_BEGINDRAGA; - TVN_BEGINRDRAG = TVN_BEGINRDRAGA; - TVN_DELETEITEM = TVN_DELETEITEMA; - TVN_BEGINLABELEDIT = TVN_BEGINLABELEDITA; - TVN_ENDLABELEDIT = TVN_ENDLABELEDITA; -{$ENDIF} - - -{$ifdef ie3plus} -// #define NMTVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMTVCUSTOMDRAW, clrTextBk) -Type - tagNMTVCUSTOMDRAW = Record - nmcd : NMCUSTOMDRAW; - clrText : COLORREF; - clrTextBk : COLORREF; -{$ifdef ie4plus} - iLevel : cint; -{$ENDIF} - END; - NMTVCUSTOMDRAW = tagNMTVCUSTOMDRAW; - LPNMTVCUSTOMDRAW = ^tagNMTVCUSTOMDRAW; - TNMTVCUSTOMDRAW = tagNMTVCUSTOMDRAW; - PNMTVCUSTOMDRAW = ^tagNMTVCUSTOMDRAW; - -{$ENDIF} - - -{$ifdef ie4plus} - -// for tooltips - - tagNMTVGETINFOTIPA = Record - hdr : NMHDR; - pszText : LPSTR; - cchTextMax : cint; - hItem : HTREEITEM; - lParam : LPARAM; - END; - NMTVGETINFOTIPA = tagNMTVGETINFOTIPA; - LPNMTVGETINFOTIPA = ^tagNMTVGETINFOTIPA; - TNMTVGETINFOTIPA = tagNMTVGETINFOTIPA; - PNMTVGETINFOTIPA = ^tagNMTVGETINFOTIPA; - - - tagNMTVGETINFOTIPW = Record - hdr : NMHDR; - pszText : LPWSTR; - cchTextMax : cint; - hItem : HTREEITEM; - lParam : LPARAM; - END; - NMTVGETINFOTIPW = tagNMTVGETINFOTIPW; - LPNMTVGETINFOTIPW = ^tagNMTVGETINFOTIPW; - TNMTVGETINFOTIPW = tagNMTVGETINFOTIPW; - PNMTVGETINFOTIPW = ^tagNMTVGETINFOTIPW; - - -CONST -{$IFDEF UNICODE} - TVN_GETINFOTIP = TVN_GETINFOTIPW; -TYPE - NMTVGETINFOTIP = NMTVGETINFOTIPW; - LPNMTVGETINFOTIP = LPNMTVGETINFOTIPW; -{$ELSE} - TVN_GETINFOTIP = TVN_GETINFOTIPA; -TYPE - NMTVGETINFOTIP = NMTVGETINFOTIPA; - LPNMTVGETINFOTIP = LPNMTVGETINFOTIPA; -{$ENDIF} - -// treeview's customdraw return meaning don't draw images. valid on CDRF_NOTIFYITEMPREPAINT - -CONST - TVCDRF_NOIMAGES = $00010000; - -{$ENDIF} // _WIN32_IE >= 0x0400 - -{$ifdef ie6plus} -Type - tagTVITEMCHANGE = packed record - hdr : NMHDR; - uChanged : UINT; - hItem : HTREEITEM; - uStateNew : UINT; - uStateOld : UINT; - lParam : LPARAM; - end; - NMTVITEMCHANGE = tagTVITEMCHANGE; - PNMTVITEMCHANGE = ^NMTVITEMCHANGE; - - tagNMTVASYNCDRAW = packed record - hdr : NMHDR; - pimldp : PIMAGELISTDRAWPARAMS; { the draw that failed } - hr : HRESULT; { why it failed } - hItem : HTREEITEM; { item that failed to draw icon } - lParam : LPARAM; { its data } - dwRetFlags : DWORD; { Out Params } - iRetImageIndex : longint; { What listview should do on return } - end; { used if ADRF_DRAWIMAGE is returned } - NMTVASYNCDRAW = tagNMTVASYNCDRAW; - PNMTVASYNCDRAW = ^NMTVASYNCDRAW; - -CONST -{$IFDEF UNICODE} - TVN_ITEMCHANGING = TVN_ITEMCHANGINGW; - TVN_ITEMCHANGED = TVN_ITEMCHANGEDW; -{$ELSE} - TVN_ITEMCHANGING = TVN_ITEMCHANGINGA; - TVN_ITEMCHANGED = TVN_ITEMCHANGEDA; -{$ENDIF} -{$endif} - -{$ENDIF} // NOTREEVIEW - -{$ifdef ie3plus} - -{$IFNDEF NOUSEREXCONTROLS} - -//////////////////// ComboBoxEx //////////////////////////////// - - WC_COMBOBOXEXW = {L}'ComboBoxEx32'; - WC_COMBOBOXEXA = 'ComboBoxEx32'; - - -{$IFDEF UNICODE} - WC_COMBOBOXEX = WC_COMBOBOXEXW; -{$ELSE} - WC_COMBOBOXEX = WC_COMBOBOXEXA; -{$ENDIF} - -CONST - CBEIF_TEXT = $00000001; - CBEIF_IMAGE = $00000002; - CBEIF_SELECTEDIMAGE = $00000004; - CBEIF_OVERLAY = $00000008; - CBEIF_INDENT = $00000010; - CBEIF_LPARAM = $00000020; - CBEIF_DI_SETITEM = $10000000; - -TYPE - - tagCOMBOBOXEXITEMA = Record - mask : UINT; - iItem : INT_PTR; - pszText : LPSTR; - cchTextMax : cint; - iImage : cint; - iSelectedImage : cint; - iOverlay : cint; - iIndent : cint; - lParam : LPARAM; - END; - COMBOBOXEXITEMA = tagCOMBOBOXEXITEMA; - PCOMBOBOXEXITEMA = ^tagCOMBOBOXEXITEMA; - TCOMBOBOXEXITEMA = tagCOMBOBOXEXITEMA; -// PCOMBOBOXEXITEMA = ^tagCOMBOBOXEXITEMA; - - PCCOMBOBOXEXITEMA = ^COMBOBOXEXITEMA; - - - tagCOMBOBOXEXITEMW = Record - mask : UINT; - iItem : INT_PTR; - pszText : LPWSTR; - cchTextMax : cint; - iImage : cint; - iSelectedImage : cint; - iOverlay : cint; - iIndent : cint; - lParam : LPARAM; - END; - COMBOBOXEXITEMW = tagCOMBOBOXEXITEMW; - PCOMBOBOXEXITEMW = ^tagCOMBOBOXEXITEMW; - TCOMBOBOXEXITEMW = tagCOMBOBOXEXITEMW; -// PCOMBOBOXEXITEMW = ^tagCOMBOBOXEXITEMW; - - PCCOMBOBOXEXITEMW = ^COMBOBOXEXITEMW; - -{$IFDEF UNICODE} - COMBOBOXEXITEM = COMBOBOXEXITEMW; - PCOMBOBOXEXITEM = PCOMBOBOXEXITEMW; - PCCOMBOBOXEXITEM = PCCOMBOBOXEXITEMW; -{$ELSE} - COMBOBOXEXITEM = COMBOBOXEXITEMA; - PCOMBOBOXEXITEM = PCOMBOBOXEXITEMA; - PCCOMBOBOXEXITEM = PCCOMBOBOXEXITEMA; -{$ENDIF} - TComboBoxExItem = COMBOBOXEXITEM; - - -CONST - CBEM_INSERTITEMA = (WM_USER + 1); - CBEM_SETIMAGELIST = (WM_USER + 2); - CBEM_GETIMAGELIST = (WM_USER + 3); - CBEM_GETITEMA = (WM_USER + 4); - CBEM_SETITEMA = (WM_USER + 5); - CBEM_DELETEITEM = CB_DELETESTRING; - CBEM_GETCOMBOCONTROL = (WM_USER + 6); - CBEM_GETEDITCONTROL = (WM_USER + 7); -{$ifdef ie4plus} - CBEM_SETEXSTYLE = (WM_USER + 8); // use SETEXTENDEDSTYLE instead - CBEM_SETEXTENDEDSTYLE = (WM_USER + 14); // lparam == new style, wParam (optional) == mask - CBEM_GETEXSTYLE = (WM_USER + 9); // use GETEXTENDEDSTYLE instead - CBEM_GETEXTENDEDSTYLE = (WM_USER + 9); - CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; -{$ELSE} - CBEM_SETEXSTYLE = (WM_USER + 8); - CBEM_GETEXSTYLE = (WM_USER + 9); -{$ENDIF} - CBEM_HASEDITCHANGED = (WM_USER + 10); - CBEM_INSERTITEMW = (WM_USER + 11); - CBEM_SETITEMW = (WM_USER + 12); - CBEM_GETITEMW = (WM_USER + 13); - -{$IFDEF UNICODE} - - CBEM_INSERTITEM = CBEM_INSERTITEMW; - CBEM_SETITEM = CBEM_SETITEMW; - CBEM_GETITEM = CBEM_GETITEMW; -{$ELSE} - CBEM_INSERTITEM = CBEM_INSERTITEMA; - CBEM_SETITEM = CBEM_SETITEMA; - CBEM_GETITEM = CBEM_GETITEMA; -{$ENDIF} - -{$ifdef win32xp} - - CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME; -{$ENDIF} - - CBES_EX_NOEDITIMAGE = $00000001; - CBES_EX_NOEDITIMAGEINDENT = $00000002; - CBES_EX_PATHWORDBREAKPROC = $00000004; -{$ifdef ie4plus} - CBES_EX_NOSIZELIMIT = $00000008; - CBES_EX_CASESENSITIVE = $00000010; -{$ifdef win32vista} - CBES_EX_TEXTENDELLIPSIS = $00000020; -{$endif} -TYPE - - DummyStruct9 = Record - hdr : NMHDR; - ceItem : COMBOBOXEXITEMA; - END; - NMCOMBOBOXEXA = DummyStruct9; - PNMCOMBOBOXEXA = ^DummyStruct9; - TDummyStruct9 = DummyStruct9; - PDummyStruct9 = ^DummyStruct9; - - - DummyStruct10 = Record - hdr : NMHDR; - ceItem : COMBOBOXEXITEMW; - END; - NMCOMBOBOXEXW = DummyStruct10; - PNMCOMBOBOXEXW = ^DummyStruct10; - TDummyStruct10 = DummyStruct10; - PDummyStruct10 = ^DummyStruct10; - - - -{$ELSE} - DummyStruct11 = Record - hdr : NMHDR; - ceItem : COMBOBOXEXITEM; - END; - NMCOMBOBOXEX = DummyStruct11; - PNMCOMBOBOXEX = ^DummyStruct11; - TDummyStruct11 = DummyStruct11; - PDummyStruct11 = ^DummyStruct11; - - - -CONST - CBEN_GETDISPINFO = (CBEN_FIRST - 0); - -{$ENDIF} // _WIN32_IE >= 0x0400 -CONST -{$ifdef ie4plus} - CBEN_GETDISPINFOA = (CBEN_FIRST - 0); -{$ENDIF} - CBEN_INSERTITEM = (CBEN_FIRST - 1); - CBEN_DELETEITEM = (CBEN_FIRST - 2); - CBEN_BEGINEDIT = (CBEN_FIRST - 4); - CBEN_ENDEDITA = (CBEN_FIRST - 5); - CBEN_ENDEDITW = (CBEN_FIRST - 6); - -{$ifdef ie4plus} - CBEN_GETDISPINFOW = (CBEN_FIRST - 7); -{$ENDIF} - -{$ifdef ie4plus} - CBEN_DRAGBEGINA = (CBEN_FIRST - 8); - CBEN_DRAGBEGINW = (CBEN_FIRST - 9); - -{$IFDEF UNICODE} - - CBEN_DRAGBEGIN = CBEN_DRAGBEGINW; -{$ELSE} - CBEN_DRAGBEGIN = CBEN_DRAGBEGINA; -{$ENDIF} - -{$ENDIF} //(_WIN32_IE >= 0x0400) -TYPE -{$IFDEF UNICODE} - NMCOMBOBOXEX = NMCOMBOBOXEXW; - PNMCOMBOBOXEX = PNMCOMBOBOXEXW; -CONST - CBEN_GETDISPINFO = CBEN_GETDISPINFOW; -{$ELSE} - NMCOMBOBOXEX = NMCOMBOBOXEXA; - PNMCOMBOBOXEX = PNMCOMBOBOXEXA; -CONST - CBEN_GETDISPINFO = CBEN_GETDISPINFOA; -{$ENDIF} - -// lParam specifies why the endedit is happening -{$IFDEF UNICODE} - CBEN_ENDEDIT = CBEN_ENDEDITW; -{$ELSE} - CBEN_ENDEDIT = CBEN_ENDEDITA; -{$ENDIF} - - -CONST - CBENF_KILLFOCUS = 1; - CBENF_RETURN = 2; - CBENF_ESCAPE = 3; - CBENF_DROPDOWN = 4; - - CBEMAXSTRLEN = 260; - -{$ifdef ie4plus} -// CBEN_DRAGBEGIN sends this information ... - -TYPE - - DummyStruct12 = Record - hdr : NMHDR; - iItemid : cint; - szText : Array[0..CBEMAXSTRLEN-1] OF WCHAR; - END; - NMCBEDRAGBEGINW = DummyStruct12; - LPNMCBEDRAGBEGINW = ^DummyStruct12; - PNMCBEDRAGBEGINW = ^DummyStruct12; - TDummyStruct12 = DummyStruct12; - PDummyStruct12 = ^DummyStruct12; - - - - DummyStruct13 = Record - hdr : NMHDR; - iItemid : cint; - szText : Array[0..CBEMAXSTRLEN-1] OF char; - END; - NMCBEDRAGBEGINA = DummyStruct13; - LPNMCBEDRAGBEGINA = ^DummyStruct13; - PNMCBEDRAGBEGINA = ^DummyStruct13; - TDummyStruct13 = DummyStruct13; - PDummyStruct13 = ^DummyStruct13; - - -{$IFDEF UNICODE} - NMCBEDRAGBEGIN = NMCBEDRAGBEGINW; - LPNMCBEDRAGBEGIN = LPNMCBEDRAGBEGINW; - PNMCBEDRAGBEGIN = PNMCBEDRAGBEGINW; -{$ELSE} - NMCBEDRAGBEGIN = NMCBEDRAGBEGINA; - LPNMCBEDRAGBEGIN = LPNMCBEDRAGBEGINA; - PNMCBEDRAGBEGIN = PNMCBEDRAGBEGINA; -{$ENDIF} -{$ENDIF} // _WIN32_IE >= 0x0400 - -// CBEN_ENDEDIT sends this information... -// fChanged if the user actually did anything -// iNewSelection gives what would be the new selection unless the notify is failed -// iNewSelection may be CB_ERR if there's no match - DummyStruct14 = Record - hdr : NMHDR; - fChanged : BOOL; - iNewSelection : cint; - szText : Array[0..CBEMAXSTRLEN-1] OF WCHAR; - iWhy : cint; - END; - NMCBEENDEDITW = DummyStruct14; - LPNMCBEENDEDITW = ^DummyStruct14; - PNMCBEENDEDITW = ^DummyStruct14; - TDummyStruct14 = DummyStruct14; - PDummyStruct14 = ^DummyStruct14; - - - DummyStruct15 = Record - hdr : NMHDR; - fChanged : BOOL; - iNewSelection : cint; - szText : Array[0..CBEMAXSTRLEN-1] OF char; - iWhy : cint; - END; - NMCBEENDEDITA = DummyStruct15; - LPNMCBEENDEDITA = ^DummyStruct15; - PNMCBEENDEDITA = ^DummyStruct15; - TDummyStruct15 = DummyStruct15; - PDummyStruct15 = ^DummyStruct15; - - -{$IFDEF UNICODE} - NMCBEENDEDIT = NMCBEENDEDITW; - LPNMCBEENDEDIT = LPNMCBEENDEDITW; - PNMCBEENDEDIT = PNMCBEENDEDITW; -{$ELSE} - NMCBEENDEDIT = NMCBEENDEDITA; - LPNMCBEENDEDIT = LPNMCBEENDEDITA; - PNMCBEENDEDIT = PNMCBEENDEDITA; -{$ENDIF} - -{$ENDIF} - -{$ENDIF} // _WIN32_IE >= 0x0300 - - - -//====== TAB CONTROL ========================================================== - -{$IFNDEF NOTABCONTROL} - -{$IFDEF _WIN32} - - -CONST - WC_TABCONTROLA = 'SysTabControl32'; - WC_TABCONTROLW = {L}'SysTabControl32'; - -{$IFDEF UNICODE} - -TYPE - WC_TABCONTROL = WC_TABCONTROLW; -{$ELSE} - WC_TABCONTROL = WC_TABCONTROLA; -{$ENDIF} - -{$ELSE} - -CONST - WC_TABCONTROL = 'SysTabControl'; -{$ENDIF} - -// begin_r_commctrl - -{$ifdef ie3plus} - TCS_SCROLLOPPOSITE = $0001; // assumes multiline tab - TCS_BOTTOM = $0002; - TCS_RIGHT = $0002; - TCS_MULTISELECT = $0004; // allow multi-select in button mode -{$ENDIF} -{$ifdef ie4plus} - TCS_FLATBUTTONS = $0008; -{$ENDIF} - TCS_FORCEICONLEFT = $0010; - TCS_FORCELABELLEFT = $0020; -{$ifdef ie3plus} - TCS_HOTTRACK = $0040; - TCS_VERTICAL = $0080; -{$ENDIF} - TCS_TABS = $0000; - TCS_BUTTONS = $0100; - TCS_SINGLELINE = $0000; - TCS_MULTILINE = $0200; - TCS_RIGHTJUSTIFY = $0000; - TCS_FIXEDWIDTH = $0400; - TCS_RAGGEDRIGHT = $0800; - TCS_FOCUSONBUTTONDOWN = $1000; - TCS_OWNERDRAWFIXED = $2000; - TCS_TOOLTIPS = $4000; - TCS_FOCUSNEVER = $8000; - -// end_r_commctrl - -{$ifdef ie4plus} -// EX styles for use with TCM_SETEXTENDEDSTYLE - TCS_EX_FLATSEPARATORS = $00000001; - TCS_EX_REGISTERDROP = $00000002; -{$ENDIF} - - - TCM_GETIMAGELIST = (TCM_FIRST + 2); -// Macro 217 - - -Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST; - - - - -CONST - TCM_SETIMAGELIST = (TCM_FIRST + 3); -// Macro 218 - - -Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST; - - - - -CONST - TCM_GETITEMCOUNT = (TCM_FIRST + 4); -// Macro 219 - - -Function TabCtrl_GetItemCount( hwnd : hwnd):cint; - - - - -CONST - TCIF_TEXT = $0001; - TCIF_IMAGE = $0002; - TCIF_RTLREADING = $0004; - TCIF_PARAM = $0008; -{$ifdef ie3plus} - TCIF_STATE = $0010; - - - TCIS_BUTTONPRESSED = $0001; -{$ENDIF} -{$ifdef ie4plus} - TCIS_HIGHLIGHTED = $0002; -{$ENDIF} -TYPE - - - - - tagTCITEMHEADERA = Record - mask : UINT; - lpReserved1 : UINT; - lpReserved2 : UINT; - pszText : LPSTR; - cchTextMax : cint; - iImage : cint; - END; - TCITEMHEADERA = tagTCITEMHEADERA; - LPTCITEMHEADERA = ^tagTCITEMHEADERA; - TTCITEMHEADERA = tagTCITEMHEADERA; - PTCITEMHEADERA = ^tagTCITEMHEADERA; - - - tagTCITEMHEADERW = Record - mask : UINT; - lpReserved1 : UINT; - lpReserved2 : UINT; - pszText : LPWSTR; - cchTextMax : cint; - iImage : cint; - END; - TCITEMHEADERW = tagTCITEMHEADERW; - LPTCITEMHEADERW = ^tagTCITEMHEADERW; - TTCITEMHEADERW = tagTCITEMHEADERW; - PTCITEMHEADERW = ^tagTCITEMHEADERW; - - -{$IFDEF UNICODE} - TCITEMHEADER = TCITEMHEADERW; - LPTCITEMHEADER = LPTCITEMHEADERW; -{$ELSE} - TCITEMHEADER = TCITEMHEADERA; - LPTCITEMHEADER = LPTCITEMHEADERA; -{$ENDIF} - - -{$ifdef ie3plus} - TC_ITEMHEADERA = TCITEMHEADERA; - TC_ITEMHEADERW = TCITEMHEADERW; -{$ELSE} - tagTCITEMHEADERA = _TC_ITEMHEADERA; - TCITEMHEADERA = TC_ITEMHEADERA; - tagTCITEMHEADERW = _TC_ITEMHEADERW; - TCITEMHEADERW = TC_ITEMHEADERW; -{$ENDIF} - - - TC_ITEMHEADER = TCITEMHEADER; - - - - - - tagTCITEMA = Record - mask : UINT; -{$ifdef ie3plus} - dwState : DWORD; - dwStateMask : DWORD; -{$ELSE} - lpReserved1 : UINT; - lpReserved2 : UINT; -{$ENDIF} - pszText : LPSTR; - cchTextMax : cint; - iImage : cint; - lParam : LPARAM; - END; - TCITEMA = tagTCITEMA; - LPTCITEMA = ^tagTCITEMA; - TTCITEMA = tagTCITEMA; - PTCITEMA = ^tagTCITEMA; - - - tagTCITEMW = Record - mask : UINT; -{$ifdef ie3plus} - dwState : DWORD; - dwStateMask : DWORD; -{$ELSE} - lpReserved1 : UINT; - lpReserved2 : UINT; -{$ENDIF} - pszText : LPWSTR; - cchTextMax : cint; - iImage : cint; - lParam : LPARAM; - END; - TCITEMW = tagTCITEMW; - LPTCITEMW = ^tagTCITEMW; - TTCITEMW = tagTCITEMW; - PTCITEMW = ^tagTCITEMW; - - -{$IFDEF UNICODE} - TCITEM = TCITEMW; - LPTCITEM = LPTCITEMW; -{$ELSE} - TCITEM = TCITEMA; - LPTCITEM = LPTCITEMA; -{$ENDIF} - - -{$ifdef ie3plus} - TC_ITEMA = TCITEMA; - TC_ITEMW = TCITEMW; -{$ELSE} - tagTCITEMA = _TC_ITEMA; - TCITEMA = TC_ITEMA; - tagTCITEMW = _TC_ITEMW; - TCITEMW = TC_ITEMW; -{$ENDIF} - - - TC_ITEM = TCITEM; - - - - -CONST - TCM_GETITEMA = (TCM_FIRST + 5); - TCM_GETITEMW = (TCM_FIRST + 60); - -{$IFDEF UNICODE} - -TYPE - TCM_GETITEM = TCM_GETITEMW; -{$ELSE} - TCM_GETITEM = TCM_GETITEMA; -{$ENDIF} - -// Macro 220 -Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL; - - - - -CONST - TCM_SETITEMA = (TCM_FIRST + 6); - TCM_SETITEMW = (TCM_FIRST + 61); - -{$IFDEF UNICODE} - -TYPE - TCM_SETITEM = TCM_SETITEMW; -{$ELSE} - TCM_SETITEM = TCM_SETITEMA; -{$ENDIF} - -// Macro 221 -Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL; - - - - -CONST - TCM_INSERTITEMA = (TCM_FIRST + 7); - TCM_INSERTITEMW = (TCM_FIRST + 62); - -{$IFDEF UNICODE} - TCM_INSERTITEM = TCM_INSERTITEMW; -{$ELSE} - TCM_INSERTITEM = TCM_INSERTITEMA; -{$ENDIF} - -// Macro 222 -Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;CONST pitem : TC_ITEM ):cint; - - -CONST - TCM_DELETEITEM = (TCM_FIRST + 8); - -// Macro 223 -Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL; - -CONST - TCM_DELETEALLITEMS = (TCM_FIRST + 9); - -// Macro 224 -Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL; - -CONST - TCM_GETITEMRECT = (TCM_FIRST + 10); - -// Macro 225 -Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var prc : RECT ):BOOL; - -CONST - TCM_GETCURSEL = (TCM_FIRST + 11); -// Macro 226 - -Function TabCtrl_GetCurSel( hwnd : hwnd):cint; - - -CONST - TCM_SETCURSEL = (TCM_FIRST + 12); - -// Macro 227 -Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint; - -CONST - TCHT_NOWHERE = $0001; - TCHT_ONITEMICON = $0002; - TCHT_ONITEMLABEL = $0004; - TCHT_ONITEM = (TCHT_ONITEMICON OR TCHT_ONITEMLABEL); - -TYPE - - tagTCHITTESTINFO = Record - pt : POINT; - flags : UINT; - END; - TCHITTESTINFO = tagTCHITTESTINFO; - LPTCHITTESTINFO = ^tagTCHITTESTINFO; - TTCHITTESTINFO = tagTCHITTESTINFO; - PTCHITTESTINFO = ^tagTCHITTESTINFO; - -{$ifdef ie3plus} - LPTC_HITTESTINFO = LPTCHITTESTINFO; - TC_HITTESTINFO = TCHITTESTINFO; -{$ELSE} - tagTCHITTESTINFO = _TC_HITTESTINFO; - TCHITTESTINFO = TC_HITTESTINFO; - LPTCHITTESTINFO = LPTC_HITTESTINFO; -{$ENDIF} - - -CONST - TCM_HITTEST = (TCM_FIRST + 13); - -// Macro 228 -Function TabCtrl_HitTest( hwndTC : hwnd;var pinfo : TC_HITTESTINFO ):cint;inline; -Function TabCtrl_HitTest( hwndTC : hwnd;pinfo : LPTCHITTESTINFO ):cint;inline; - -CONST - TCM_SETITEMEXTRA = (TCM_FIRST + 14); - -// Macro 229 -Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL; - - - - -CONST - TCM_ADJUSTRECT = (TCM_FIRST + 40); - -// Macro 230 -Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var prc : RECT ):cint; - - - - -CONST - TCM_SETITEMSIZE = (TCM_FIRST + 41); - -// Macro 231 -Function TabCtrl_SetItemSize( hwnd : hwnd; x :wparam ; y : lparam ):DWORD; - -CONST - TCM_REMOVEIMAGE = (TCM_FIRST + 42); - -// Macro 232 -Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : wparam ); - - - - -CONST - TCM_SETPADDING = (TCM_FIRST + 43); - -// Macro 233 -Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : wparam ; cy : lparam ); - - - - -CONST - TCM_GETROWCOUNT = (TCM_FIRST + 44); - -// Macro 234 -Function TabCtrl_GetRowCount( hwnd : hwnd):cint; - - - - -CONST - TCM_GETTOOLTIPS = (TCM_FIRST + 45); - -// Macro 235 -Function TabCtrl_GetToolTips( hwnd : hwnd):HWND; - - - - -CONST - TCM_SETTOOLTIPS = (TCM_FIRST + 46); - -// Macro 236 -Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM); - - - - -CONST - TCM_GETCURFOCUS = (TCM_FIRST + 47); -// Macro 237 - - -Function TabCtrl_GetCurFocus( hwnd : hwnd):cint; - - - -CONST - TCM_SETCURFOCUS = (TCM_FIRST + 48); - -// Macro 238 -Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : LParam ); - - -{$ifdef ie3plus} - -CONST - TCM_SETMINTABWIDTH = (TCM_FIRST + 49); - -// Macro 239 -Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : WParam ):cint; - - -CONST - TCM_DESELECTALL = (TCM_FIRST + 50); - -// Macro 240 -Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus : WPARAM ); - -{$ENDIF} - -{$ifdef ie4plus} -CONST - TCM_HIGHLIGHTITEM = (TCM_FIRST + 51); - -// Macro 241 -Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool):BOOL; - - - -CONST - TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52); // optional wParam == mask - -// Macro 242 -Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw :LPARAM ):DWORD; - - -CONST - TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53); - -// Macro 243 -Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD; - - - -CONST - TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; - -// Macro 244 -Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - - - -CONST - TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; - -// Macro 245 -Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL; - - -{$ENDIF} // _WIN32_IE >= 0x0400 - - -CONST - TCN_KEYDOWN = (TCN_FIRST - 0); - - -{$IFDEF _WIN32} -// #include -{$ENDIF} - -TYPE - - tagTCKEYDOWN = Record - hdr : NMHDR; - wVKey : WORD; - flags : UINT; - END; - NMTCKEYDOWN = tagTCKEYDOWN; - TTCKEYDOWN = tagTCKEYDOWN; - PTCKEYDOWN = ^tagTCKEYDOWN; - -{$ifdef ie3plus} - TC_KEYDOWN = NMTCKEYDOWN; -{$ELSE} - tagTCKEYDOWN = _TC_KEYDOWN; - NMTCKEYDOWN = TC_KEYDOWN; -{$ENDIF} - - -{$IFDEF _WIN32} -// #include -{$ENDIF} - - -CONST - TCN_SELCHANGE = (TCN_FIRST - 1); - TCN_SELCHANGING = (TCN_FIRST - 2); -{$ifdef ie4plus} - TCN_GETOBJECT = (TCN_FIRST - 3); -{$ENDIF} // _WIN32_IE >= 0x0400 -{$ifdef ie5plus} - TCN_FOCUSCHANGE = (TCN_FIRST - 4); -{$ENDIF} // _WIN32_IE >= 0x0500 -{$ENDIF} // NOTABCONTROL - -//====== ANIMATE CONTROL ====================================================== - -{$IFNDEF NOANIMATE} - -{$IFDEF _WIN32} - - ANIMATE_CLASSW = {L}'SysAnimate32'; - ANIMATE_CLASSA = 'SysAnimate32'; - -{$IFDEF UNICODE} - ANIMATE_CLASS = ANIMATE_CLASSW; -{$ELSE} - ANIMATE_CLASS = ANIMATE_CLASSA; -{$ENDIF} - -// begin_r_commctrl - - -CONST - ACS_CENTER = $0001; - ACS_TRANSPARENT = $0002; - ACS_AUTOPLAY = $0004; -{$ifdef ie3plus} - ACS_TIMER = $0008; // don't use threads... use timers -{$ENDIF} - -// end_r_commctrl - - ACM_OPENA = (WM_USER+100); - ACM_OPENW = (WM_USER+103); - -{$IFDEF UNICODE} - - - ACM_OPEN = ACM_OPENW; -{$ELSE} - ACM_OPEN = ACM_OPENA; -{$ENDIF} - - -CONST - ACM_PLAY = (WM_USER+101); - ACM_STOP = (WM_USER+102); - - - ACN_START = 1; - ACN_STOP = 2; - - -// Macro 246 - - -Function Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST):HWND; - -// Macro 247 - -// #define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName)) -// Macro 248 - -// #define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName)) -// Macro 249 - -// #define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to)) -// Macro 250 - -// #define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0) -// Macro 251 - -// #define Animate_Close(hwnd) Animate_Open(hwnd, NULL) -// Macro 252 - -// #define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1) -{$ENDIF} - -{$ENDIF} // NOANIMATE - -{$ifdef ie3plus} -//====== MONTHCAL CONTROL ====================================================== - -{$IFNDEF NOMONTHCAL} -{$IFDEF _WIN32} - - -CONST - MONTHCAL_CLASSW = {L}'SysMonthCal32'; - MONTHCAL_CLASSA = 'SysMonthCal32'; - - -{$IFDEF UNICODE} - MONTHCAL_CLASS = MONTHCAL_CLASSW; -{$ELSE} - MONTHCAL_CLASS = MONTHCAL_CLASSA; -{$ENDIF} - -TYPE -// bit-packed array of "bold" info for a month -// if a bit is on, that day is drawn bold - - MONTHDAYSTATE = DWORD; - LPMONTHDAYSTATE = ^MONTHDAYSTATE; - TMonthDayState = MONTHDAYSTATE; - PMonthDayState = LPMONTHDAYSTATE; - - -CONST - MCM_FIRST = $1000; - -// BOOL MonthCal_GetCurSel(HWND hmc, LPSYSTEMTIME pst) -// returns FALSE if MCS_MULTISELECT -// returns TRUE and sets *pst to the currently selected date otherwise - - - - -CONST - MCM_GETCURSEL = (MCM_FIRST + 1); - -// Macro 253 -// #define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst)) - -function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; - -// BOOL MonthCal_SetCurSel(HWND hmc, LPSYSTEMTIME pst) -// returns FALSE if MCS_MULTISELECT -// returns TURE and sets the currently selected date to *pst otherwise - - - -CONST - MCM_SETCURSEL = (MCM_FIRST + 2); - -// Macro 254 -// #define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst)) -// DWORD MonthCal_GetMaxSelCount(HWND hmc) -// returns the maximum number of selectable days allowed - -function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool;inline; -function MonthCal_SetCurSel(hwndMC:HWND; var lpSysTime :TSYSTEMTIME):Bool;inline; - - -CONST - MCM_GETMAXSELCOUNT = (MCM_FIRST + 3); - -// Macro 255 -// #define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L) -// BOOL MonthCal_SetMaxSelCount(HWND hmc, UINT n) -// sets the max number days that can be selected iff MCS_MULTISELECT - -function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool; - -CONST - MCM_SETMAXSELCOUNT = (MCM_FIRST + 4); - -// Macro 256 -// #define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L) - -function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool; - -// BOOL MonthCal_GetSelRange(HWND hmc, LPSYSTEMTIME rgst) -// sets rgst[0] to the first day of the selection range -// sets rgst[1] to the last day of the selection range - -CONST - MCM_GETSELRANGE = (MCM_FIRST + 5); - -// Macro 257 -// #define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst)) -// BOOL MonthCal_SetSelRange(HWND hmc, LPSYSTEMTIME rgst) -// selects the range of days from rgst[0] to rgst[1] - -function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; - - -CONST - MCM_SETSELRANGE = (MCM_FIRST + 6); - -// Macro 258 -// #define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst)) -// DWORD MonthCal_GetMonthRange(HWND hmc, DWORD gmr, LPSYSTEMTIME rgst) -// if rgst specified, sets rgst[0] to the starting date and -// and rgst[1] to the ending date of the the selectable (non-grayed) -// days if GMR_VISIBLE or all the displayed days (including grayed) -// if GMR_DAYSTATE. -// returns the number of months spanned by the above range. - -function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; - - -CONST - MCM_GETMONTHRANGE = (MCM_FIRST + 7); - -// Macro 259 -// #define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst)) -// BOOL MonthCal_SetDayState(HWND hmc, int cbds, DAYSTATE *rgds) -// cbds is the count of DAYSTATE items in rgds and it must be equal -// to the value returned from MonthCal_GetMonthRange(hmc, GMR_DAYSTATE, NULL) -// This sets the DAYSTATE bits for each month (grayed and non-grayed -// days) displayed in the calendar. The first bit in a month's DAYSTATE -// corresponts to bolding day 1, the second bit affects day 2, etc. - -function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool; - - -CONST - MCM_SETDAYSTATE = (MCM_FIRST + 8); - -// Macro 260 -// #define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds)) -// BOOL MonthCal_GetMinReqRect(HWND hmc, LPRECT prc) -// sets *prc the minimal size needed to display one month -// To display two months, undo the AdjustWindowRect calculation already done to -// this rect, double the width, and redo the AdjustWindowRect calculation -- -// the monthcal control will display two calendars in this window (if you also -// double the vertical size, you will get 4 calendars) -// NOTE: if you want to gurantee that the "Today" string is not clipped, -// get the MCM_GETMAXTODAYWIDTH and use the max of that width and this width - -function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool; - - -CONST - MCM_GETMINREQRECT = (MCM_FIRST + 9); - -// Macro 261 -// #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc)) -// set colors to draw control with -- see MCSC_ bits below - -function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;inline; -function MonthCal_GetMinReqRect(hwndMC:HWND; var lpr :TRect):Bool;inline; - - -CONST - MCM_SETCOLOR = (MCM_FIRST + 10); - -// Macro 262 -// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr) - -function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):DWORD;inline; - - -CONST - MCM_GETCOLOR = (MCM_FIRST + 11); - -// Macro 263 -// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0) - -function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool; - - -CONST - MCSC_BACKGROUND = 0; // the background color (between months) - MCSC_TEXT = 1; // the dates - MCSC_TITLEBK = 2; // background of the title - MCSC_TITLETEXT = 3; - MCSC_MONTHBK = 4; // background within the month cal - MCSC_TRAILINGTEXT = 5; // the text color of header & trailing days - -// set what day is "today" send NULL to revert back to real date - MCM_SETTODAY = (MCM_FIRST + 12); - -// Macro 264 -// #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst)) -// get what day is "today" -// returns BOOL for success/failure - -function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool; - - -CONST - MCM_GETTODAY = (MCM_FIRST + 13); - -// Macro 265 -// #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst)) -// determine what pinfo->pt is over - -function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool; - - -CONST - MCM_HITTEST = (MCM_FIRST + 14); - -TYPE - - DummyStruct16 = Record - cbSize : UINT; - pt : POINT; - uHit : UINT; // out param - st : SYSTEMTIME; -{$ifdef NTDDI_VISTA} - rc : RECT; - iOffset : cint; - iRow : cint; - iCol : cint; -{$endif} - END; - MCHITTESTINFO = DummyStruct16; - PMCHITTESTINFO = ^DummyStruct16; - TDummyStruct16 = DummyStruct16; - PDummyStruct16 = ^DummyStruct16; - - -// Macro 266 -FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD; - - -CONST - MCHT_TITLE = $00010000; - MCHT_CALENDAR = $00020000; - MCHT_TODAYLINK = $00030000; - - MCHT_NEXT = $01000000; // these indicate that hitting - MCHT_PREV = $02000000; // here will go to the next/prev month - - MCHT_NOWHERE = $00000000; - - MCHT_TITLEBK = (MCHT_TITLE); - MCHT_TITLEMONTH = (MCHT_TITLE OR $0001); - MCHT_TITLEYEAR = (MCHT_TITLE OR $0002); - MCHT_TITLEBTNNEXT = (MCHT_TITLE OR MCHT_NEXT OR $0003); - MCHT_TITLEBTNPREV = (MCHT_TITLE OR MCHT_PREV OR $0003); - - MCHT_CALENDARBK = (MCHT_CALENDAR); - MCHT_CALENDARDATE = (MCHT_CALENDAR OR $0001); - MCHT_CALENDARDATENEXT = (MCHT_CALENDARDATE OR MCHT_NEXT); - MCHT_CALENDARDATEPREV = (MCHT_CALENDARDATE OR MCHT_PREV); - MCHT_CALENDARDAY = (MCHT_CALENDAR OR $0002); - MCHT_CALENDARWEEKNUM = (MCHT_CALENDAR OR $0003); - -// set first day of week to iDay: -// 0 for Monday, 1 for Tuesday, ..., 6 for Sunday -// -1 for means use locale info - MCM_SETFIRSTDAYOFWEEK = (MCM_FIRST + 15); -// Macro 267 - - -function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD; - - -// DWORD result... low word has the day. high word is bool if this is app set -// or not (FALSE == using locale info) - -CONST - MCM_GETFIRSTDAYOFWEEK = (MCM_FIRST + 16); -// Macro 268 - - -Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD; - - -// DWORD MonthCal_GetRange(HWND hmc, LPSYSTEMTIME rgst) -// modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum) -// modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum) -// returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit - -CONST - MCM_GETRANGE = (MCM_FIRST + 17); -// Macro 269 - - -Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD; - - -// BOOL MonthCal_SetRange(HWND hmc, DWORD gdtr, LPSYSTEMTIME rgst) -// if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum -// if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum -// returns TRUE on success, FALSE on error (such as invalid parameters) - -CONST - MCM_SETRANGE = (MCM_FIRST + 18); -// Macro 270 - - -Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL; - - -// int MonthCal_GetMonthDelta(HWND hmc) -// returns the number of months one click on a next/prev button moves by - -CONST - MCM_GETMONTHDELTA = (MCM_FIRST + 19); -// Macro 271 - - -Function MonthCal_GetMonthDelta( hmc :hwnd ):cint; - - -// int MonthCal_SetMonthDelta(HWND hmc, int n) -// sets the month delta to n. n==0 reverts to moving by a page of months -// returns the previous value of n. - -CONST - MCM_SETMONTHDELTA = (MCM_FIRST + 20); -// Macro 272 - - -Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint; - - -// DWORD MonthCal_GetMaxTodayWidth(HWND hmc, LPSIZE psz) -// sets *psz to the maximum width/height of the "Today" string displayed -// at the bottom of the calendar (as long as MCS_NOTODAY is not specified) - -CONST - MCM_GETMAXTODAYWIDTH = (MCM_FIRST + 21); -// Macro 273 - - -Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD; - - -{$ifdef ie4plus} - -CONST - MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT; -// Macro 274 - - -Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL; - - -CONST - MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT; -// Macro 275 - - -Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL; - -{$ifdef NTDDI_VISTA} -Const -// View - MCMV_MONTH = 0; - MCMV_YEAR = 1; - MCMV_DECADE = 2; - MCMV_CENTURY = 3; - MCMV_MAX = MCMV_CENTURY; - - MCM_GETCURRENTVIEW = (MCM_FIRST + 22); - MCM_GETCALENDARCOUNT = (MCM_FIRST + 23); - MCM_GETCALENDARGRIDINFO = (MCM_FIRST + 24); - MCM_GETCALID = (MCM_FIRST + 27); - MCM_SETCALID = (MCM_FIRST + 28); -// Returns the min rect that will fit the max number of calendars for the passed in rect. - MCM_SIZERECTTOMIN = (MCM_FIRST + 29); - MCM_SETCALENDARBORDER = (MCM_FIRST + 30); - MCM_GETCALENDARBORDER = (MCM_FIRST + 31); - MCM_SETCURRENTVIEW = (MCM_FIRST + 32); - -// Part - MCGIP_CALENDARCONTROL = 0; - MCGIP_NEXT = 1; - MCGIP_PREV = 2; - MCGIP_FOOTER = 3; - MCGIP_CALENDAR = 4; - MCGIP_CALENDARHEADER = 5; - MCGIP_CALENDARBODY = 6; - MCGIP_CALENDARROW = 7; - MCGIP_CALENDARCELL = 8; - - MCGIF_DATE = $00000001; - MCGIF_RECT = $00000002; - MCGIF_NAME = $00000004; - -// Note: iRow of -1 refers to the row header and iCol of -1 refers to the col header. - -Type - tagMCGRIDINFO = record - cbSize : UINT; - dwPart : DWORD; - dwFlags : DWORD; - iCalendar : longint; - iRow : longint; - iCol : longint; - bSelected : BOOL; - stStart : SYSTEMTIME; - stEnd : SYSTEMTIME; - rc : RECT; - pszName : LPWSTR; - cchName : size_t; - end; - MCGRIDINFO = tagMCGRIDINFO; - TPMCGRIDINFO = MCGRIDINFO; - PMCGRIDINFO = ^MCGRIDINFO; - LPMCGRIDINFO = PMCGRIDINFO; - -function MonthCal_GetCurrentView(hmc:HWND):DWORD; -// (DWORD)SNDMSG(hmc, MCM_GETCURRENTVIEW, 0, 0) - -function MonthCal_GetCalendarCount(hmc:HWND):DWORD; -// (DWORD)SNDMSG(hmc, MCM_GETCALENDARCOUNT, 0, 0) - -function MonthCal_GetCalendarGridInfo(hmc:HWND; pmc:pMCGRIDINFO):BOOL; -// (BOOL)SNDMSG(hmc, MCM_GETCALENDARGRIDINFO, 0, (LPARAM)(PMCGRIDINFO)(pmcGridInfo)) - -function MonthCal_GetCALID(hmc:HWND):CALID; -// (CALID)SNDMSG(hmc, MCM_GETCALID, 0, 0) - -function MonthCal_SetCALID(hmc:HWND; calid:cuint):LRESULT; -// SNDMSG(hmc, MCM_SETCALID, (WPARAM)(calid), 0) - -function MonthCal_SizeRectToMin(hmc:HWND; prc:prect):LRESULT; -// SNDMSG(hmc, MCM_SIZERECTTOMIN, 0, (LPARAM)(prc)) - -function MonthCal_SetCalendarBorder(hmc:HWND; fset:bool; xyborder:cint):LRESULT; -// SNDMSG(hmc, MCM_SETCALENDARBORDER, (WPARAM)(fset), (LPARAM)(xyborder)) - -function MonthCal_GetCalendarBorder(hmc:HWND):cint; -// (int)SNDMSG(hmc, MCM_GETCALENDARBORDER, 0, 0) - -function MonthCal_SetCurrentView(hmc:HWND; dwNewView:DWord):BOOL; -// (BOOL)SNDMSG(hmc, MCM_SETCURRENTVIEW, 0, (LPARAM)(dwNewView)) - - -{$endif} - -{$ENDIF} - -// MCN_SELCHANGE is sent whenever the currently displayed date changes -// via month change, year change, keyboard navigation, prev/next button -// -TYPE - - tagNMSELCHANGE = Record - nmhdr : NMHDR; // this must be first, so we don't break WM_NOTIFY - stSelStart : SYSTEMTIME; - stSelEnd : SYSTEMTIME; - END; - NMSELCHANGE = tagNMSELCHANGE; - LPNMSELCHANGE = ^tagNMSELCHANGE; - TNMSELCHANGE = tagNMSELCHANGE; - PNMSELCHANGE = ^tagNMSELCHANGE; - - - -CONST - MCN_SELCHANGE = (MCN_FIRST + 1); - -// MCN_GETDAYSTATE is sent for MCS_DAYSTATE controls whenever new daystate -// information is needed (month or year scroll) to draw bolding information. -// The app must fill in cDayState months worth of information starting from -// stStart date. The app may fill in the array at prgDayState or change -// prgDayState to point to a different array out of which the information -// will be copied. (similar to tooltips) -// -TYPE - - tagNMDAYSTATE = Record - nmhdr : NMHDR; // this must be first, so we don't break WM_NOTIFY - stStart : SYSTEMTIME; - cDayState : cint; - prgDayState : LPMONTHDAYSTATE; // points to cDayState MONTHDAYSTATEs - END; - NMDAYSTATE = tagNMDAYSTATE; - LPNMDAYSTATE = ^tagNMDAYSTATE; - TNMDAYSTATE = tagNMDAYSTATE; - PNMDAYSTATE = ^tagNMDAYSTATE; - - - -CONST - MCN_GETDAYSTATE = (MCN_FIRST + 3); - -// MCN_SELECT is sent whenever a selection has occured (via mouse or keyboard) -// -TYPE - - NMSELECT = NMSELCHANGE; - LPNMSELECT = ^NMSELCHANGE; - - -CONST - MCN_SELECT = (MCN_FIRST + 4); - - -// begin_r_commctrl - - MCS_DAYSTATE = $0001; - MCS_MULTISELECT = $0002; - MCS_WEEKNUMBERS = $0004; -{$ifdef ie4plus} - MCS_NOTODAYCIRCLE = $0008; - MCS_NOTODAY = $0010; -{$ELSE} - MCS_NOTODAY = $0008; -{$ENDIF} -{$ifdef NTDDI_Vista} - MCS_NOTRAILINGDATES = $0040; - MCS_SHORTDAYSOFWEEK = $0080; - MCS_NOSELCHANGEONNAV = $0100; -{$endif} - - GMR_VISIBLE = 0; // visible portion of display - GMR_DAYSTATE = 1; // above plus the grayed out parts of - // partially displayed months - - -{$ENDIF} // _WIN32 -{$ENDIF} // NOMONTHCAL - - -//====== DATETIMEPICK CONTROL ================================================== - -{$IFNDEF NODATETIMEPICK} -{$IFDEF _WIN32} - - DATETIMEPICK_CLASSW = {L}'SysDateTimePick32'; - DATETIMEPICK_CLASSA = 'SysDateTimePick32'; - -{$IFDEF UNICODE} - DATETIMEPICK_CLASS = DATETIMEPICK_CLASSW; -{$ELSE} - DATETIMEPICK_CLASS = DATETIMEPICK_CLASSA; -{$ENDIF} - -{$ifdef NTDDI_VISTA} -Type - tagDATETIMEPICKERINFO = packed record - cbSize : DWORD; - rcCheck : RECT; - stateCheck : DWORD; - rcButton : RECT; - stateButton : DWORD; - hwndEdit : HWND; - hwndUD : HWND; - hwndDropDown : HWND; - end; - DATETIMEPICKERINFO = tagDATETIMEPICKERINFO; - PDATETIMEPICKERINFO = ^DATETIMEPICKERINFO; - LPDATETIMEPICKERINFO = PDATETIMEPICKERINFO; - TDATETIMEPICKERINFO = DATETIMEPICKERINFO; -{$endif} - -CONST - DTM_FIRST = $1000; - -// DWORD DateTimePick_GetSystemtime(HWND hdp, LPSYSTEMTIME pst) -// returns GDT_NONE if "none" is selected (DTS_SHOWNONE only) -// returns GDT_VALID and modifies *pst to be the currently selected value - DTM_GETSYSTEMTIME = (DTM_FIRST + 1); -// Macro 276 - -// #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst)) - -// BOOL DateTime_SetSystemtime(HWND hdp, DWORD gd, LPSYSTEMTIME pst) -// if gd==GDT_NONE, sets datetimepick to None (DTS_SHOWNONE only) -// if gd==GDT_VALID, sets datetimepick to *pst -// returns TRUE on success, FALSE on error (such as bad params) - -CONST - DTM_SETSYSTEMTIME = (DTM_FIRST + 2); -// Macro 277 - -// #define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst)) -function DateTime_SetSystemTime(hdp: HWND; gd: DWORD; const pst: TSystemTime): BOOL;inline; - -// DWORD DateTime_GetRange(HWND hdp, LPSYSTEMTIME rgst) -// modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum) -// modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum) -// returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit - -CONST - DTM_GETRANGE = (DTM_FIRST + 3); -// Macro 278 - -// #define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) - -// BOOL DateTime_SetRange(HWND hdp, DWORD gdtr, LPSYSTEMTIME rgst) -// if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum -// if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum -// returns TRUE on success, FALSE on error (such as invalid parameters) - -CONST - DTM_SETRANGE = (DTM_FIRST + 4); -// Macro 279 - -// #define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) -function DateTime_SetRange(hdp: HWND; gdtr: DWORD; rgst: PSystemTime): BOOL;inline; - -// BOOL DateTime_SetFormat(HWND hdp, LPCTSTR sz) -// sets the display formatting string to sz (see GetDateFormat and GetTimeFormat for valid formatting chars) -// NOTE: 'X' is a valid formatting character which indicates that the application -// will determine how to display information. Such apps must support DTN_WMKEYDOWN, -// DTN_FORMAT, and DTN_FORMATQUERY. - -CONST - DTM_SETFORMATA = (DTM_FIRST + 5); - DTM_SETFORMATW = (DTM_FIRST + 50); - -{$IFDEF UNICODE} - -TYPE - DTM_SETFORMAT = DTM_SETFORMATW; -{$ELSE} - DTM_SETFORMAT = DTM_SETFORMATA; -{$ENDIF} - -// Macro 280 - -// #define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz)) - - - -CONST - DTM_SETMCCOLOR = (DTM_FIRST + 6); -// Macro 281 - -// #define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr) -function DateTime_SetMonthCalColor(hdp: HWND; iColor: DWORD; clr: TColorRef): TColorRef;inline; - -CONST - DTM_GETMCCOLOR = (DTM_FIRST + 7); -// Macro 282 - -// #define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0) - -// HWND DateTime_GetMonthCal(HWND hdp) -// returns the HWND of the MonthCal popup window. Only valid -// between DTN_DROPDOWN and DTN_CLOSEUP notifications. - -CONST - DTM_GETMONTHCAL = (DTM_FIRST + 8); -// Macro 283 - -// #define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0) -function DateTime_GetMonthCal(hdp: HWND): HWND;inline; - -{$ifdef ie4plus} - - -CONST - DTM_SETMCFONT = (DTM_FIRST + 9); - -// Macro 284 -procedure DateTime_SetMonthCalFont(hdp:HWND; hfont:HFONT; fRedraw:LPARAM); -// SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw)) - - -CONST - DTM_GETMCFONT = (DTM_FIRST + 10); - -// Macro 285 -function DateTime_GetMonthCalFont(hdp:HWND):HFONT; -// SNDMSG(hdp, DTM_GETMCFONT, 0, 0) - -{$ifdef NTDDI_VISTA} -Const - DTM_SETMCSTYLE = (DTM_FIRST + 11); - DTM_GETMCSTYLE = (DTM_FIRST + 12); - DTM_CLOSEMONTHCAL = (DTM_FIRST + 13); - DTM_GETDATETIMEPICKERINFO = (DTM_FIRST + 14); - DTM_GETIDEALSIZE = (DTM_FIRST + 15); - -function DateTime_SetMonthCalStyle(hdp:HWND; dwStyle:DWord):LResult; -// SNDMSG(hdp, DTM_SETMCSTYLE, 0, (LPARAM)dwStyle) - -function DateTime_GetMonthCalStyle(hdp:HWND):LRESULT; -// SNDMSG(hdp, DTM_GETMCSTYLE, 0, 0) - -function DateTime_CloseMonthCal(hdp:HWND):LRESULT; -// SNDMSG(hdp, DTM_CLOSEMONTHCAL, 0, 0) - -// DateTime_GetDateTimePickerInfo(HWND hdp, DATETIMEPICKERINFO* pdtpi) -// Retrieves information about the selected date time picker. - -function DateTime_GetDateTimePickerInfo(hdp:HWND; pdtpi:PDATETIMEPICKERINFO):LRESULT; -// SNDMSG(hdp, DTM_GETDATETIMEPICKERINFO, 0, (LPARAM)(pdtpi)) - -function DateTime_GetIdealSize(hdp:HWND; ps:PSIZE): LResult; -// (BOOL)SNDMSG((hdp), DTM_GETIDEALSIZE, 0, (LPARAM)(psize)) - -{$endif} - - -{$ENDIF} // _WIN32_IE >= 0x0400 - -// begin_r_commctrl - - -CONST - DTS_UPDOWN = $0001; // use UPDOWN instead of MONTHCAL - DTS_SHOWNONE = $0002; // allow a NONE selection - DTS_SHORTDATEFORMAT = $0000; // use the short date format (app must forward WM_WININICHANGE messages) - DTS_LONGDATEFORMAT = $0004; // use the long date format (app must forward WM_WININICHANGE messages) -{$ifdef ie5plus} - DTS_SHORTDATECENTURYFORMAT = $000C; // short date format with century (app must forward WM_WININICHANGE messages) -{$ENDIF} // (_WIN32_IE >= 0x500) - DTS_TIMEFORMAT = $0009; // use the time format (app must forward WM_WININICHANGE messages) - DTS_APPCANPARSE = $0010; // allow user entered strings (app MUST respond to DTN_USERSTRING) - DTS_RIGHTALIGN = $0020; // right-align popup instead of left-align it - -// end_r_commctrl - - DTN_DATETIMECHANGE = (DTN_FIRST + 1); // the systemtime has changed -TYPE - - tagNMDATETIMECHANGE = Record - nmhdr : NMHDR; - dwFlags : DWORD; // GDT_VALID or GDT_NONE - st : SYSTEMTIME; // valid iff dwFlags==GDT_VALID - END; - NMDATETIMECHANGE = tagNMDATETIMECHANGE; - LPNMDATETIMECHANGE = ^tagNMDATETIMECHANGE; - TNMDATETIMECHANGE = tagNMDATETIMECHANGE; - PNMDATETIMECHANGE = ^tagNMDATETIMECHANGE; - - - -CONST - DTN_USERSTRINGA = (DTN_FIRST + 2); // the user has entered a string - DTN_USERSTRINGW = (DTN_FIRST + 15); -TYPE - - tagNMDATETIMESTRINGA = Record - nmhdr : NMHDR; - pszUserString : LPCSTR; // string user entered - st : SYSTEMTIME; // app fills this in - dwFlags : DWORD; // GDT_VALID or GDT_NONE - END; - NMDATETIMESTRINGA = tagNMDATETIMESTRINGA; - LPNMDATETIMESTRINGA = ^tagNMDATETIMESTRINGA; - TNMDATETIMESTRINGA = tagNMDATETIMESTRINGA; - PNMDATETIMESTRINGA = ^tagNMDATETIMESTRINGA; - - - tagNMDATETIMESTRINGW = Record - nmhdr : NMHDR; - pszUserString : LPCWSTR; // string user entered - st : SYSTEMTIME; // app fills this in - dwFlags : DWORD; // GDT_VALID or GDT_NONE - END; - NMDATETIMESTRINGW = tagNMDATETIMESTRINGW; - LPNMDATETIMESTRINGW = ^tagNMDATETIMESTRINGW; - TNMDATETIMESTRINGW = tagNMDATETIMESTRINGW; - PNMDATETIMESTRINGW = ^tagNMDATETIMESTRINGW; - - -{$IFDEF UNICODE} -CONST - DTN_USERSTRING = DTN_USERSTRINGW; -TYPE - NMDATETIMESTRING = NMDATETIMESTRINGW; - LPNMDATETIMESTRING = LPNMDATETIMESTRINGW; -{$ELSE} -CONST - DTN_USERSTRING = DTN_USERSTRINGA; -TYPE - NMDATETIMESTRING = NMDATETIMESTRINGA; - LPNMDATETIMESTRING = LPNMDATETIMESTRINGA; -{$ENDIF} - TNMDateTimeString = NMDATETIMESTRING; - PNMDateTimeString = LPNMDATETIMESTRING; - - - -CONST - DTN_WMKEYDOWNA = (DTN_FIRST + 3); // modify keydown on app format field (X) - DTN_WMKEYDOWNW = (DTN_FIRST + 16); -TYPE - - tagNMDATETIMEWMKEYDOWNA = Record - nmhdr : NMHDR; - nVirtKey : cint; // virtual key code of WM_KEYDOWN which MODIFIES an X field - pszFormat : LPCSTR; // format substring - st : SYSTEMTIME; // current systemtime, app should modify based on key - END; - NMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA; - LPNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA; - TNMDATETIMEWMKEYDOWNA = tagNMDATETIMEWMKEYDOWNA; - PNMDATETIMEWMKEYDOWNA = ^tagNMDATETIMEWMKEYDOWNA; - - - tagNMDATETIMEWMKEYDOWNW = Record - nmhdr : NMHDR; - nVirtKey : cint; // virtual key code of WM_KEYDOWN which MODIFIES an X field - pszFormat : LPCWSTR; // format substring - st : SYSTEMTIME; // current systemtime, app should modify based on key - END; - NMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW; - LPNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW; - TNMDATETIMEWMKEYDOWNW = tagNMDATETIMEWMKEYDOWNW; - PNMDATETIMEWMKEYDOWNW = ^tagNMDATETIMEWMKEYDOWNW; - - -{$IFDEF UNICODE} -CONST - DTN_WMKEYDOWN = DTN_WMKEYDOWNW; -TYPE - NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNW; - LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNW; -{$ELSE} -CONST - DTN_WMKEYDOWN = DTN_WMKEYDOWNA; -TYPE - NMDATETIMEWMKEYDOWN = NMDATETIMEWMKEYDOWNA; - LPNMDATETIMEWMKEYDOWN= LPNMDATETIMEWMKEYDOWNA; -{$ENDIF} - - - -CONST - DTN_FORMATA = (DTN_FIRST + 4); // query display for app format field (X) - DTN_FORMATW = (DTN_FIRST + 17); -TYPE - - tagNMDATETIMEFORMATA = Record - nmhdr : NMHDR; - pszFormat : LPCSTR; // format substring - st : SYSTEMTIME; // current systemtime - pszDisplay : LPCSTR; // string to display - szDisplay : Array [0..63] OF CHAR; // buffer pszDisplay originally points at - END; - NMDATETIMEFORMATA = tagNMDATETIMEFORMATA; - LPNMDATETIMEFORMATA = ^tagNMDATETIMEFORMATA; - TNMDATETIMEFORMATA = tagNMDATETIMEFORMATA; - PNMDATETIMEFORMATA = ^tagNMDATETIMEFORMATA; - - - tagNMDATETIMEFORMATW = Record - nmhdr : NMHDR; - pszFormat : LPCWSTR; // format substring - st : SYSTEMTIME; // current systemtime - pszDisplay : LPCWSTR; // string to display - szDisplay : Array [0..63] OF WCHAR; // buffer pszDisplay originally points at - END; - NMDATETIMEFORMATW = tagNMDATETIMEFORMATW; - LPNMDATETIMEFORMATW = ^tagNMDATETIMEFORMATW; - TNMDATETIMEFORMATW = tagNMDATETIMEFORMATW; - PNMDATETIMEFORMATW = ^tagNMDATETIMEFORMATW; - - -{$IFDEF UNICODE} -CONST - DTN_FORMAT = DTN_FORMATW; -TYPE - NMDATETIMEFORMAT = NMDATETIMEFORMATW; - LPNMDATETIMEFORMAT = LPNMDATETIMEFORMATW; -{$ELSE} -CONST - DTN_FORMAT = DTN_FORMATA; -TYPE - NMDATETIMEFORMAT = NMDATETIMEFORMATA; - LPNMDATETIMEFORMAT = LPNMDATETIMEFORMATA; -{$ENDIF} - - - -CONST - DTN_FORMATQUERYA = (DTN_FIRST + 5); // query formatting info for app format field (X) - DTN_FORMATQUERYW = (DTN_FIRST + 18); -TYPE - - tagNMDATETIMEFORMATQUERYA = Record - nmhdr : NMHDR; - pszFormat : LPCSTR; // format substring - szMax : SIZE; // max bounding rectangle app will use for this format string - END; - NMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA; - LPNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA; - TNMDATETIMEFORMATQUERYA = tagNMDATETIMEFORMATQUERYA; - PNMDATETIMEFORMATQUERYA = ^tagNMDATETIMEFORMATQUERYA; - - - tagNMDATETIMEFORMATQUERYW = Record - nmhdr : NMHDR; - pszFormat : LPCWSTR; // format substring - szMax : SIZE; // max bounding rectangle app will use for this format string - END; - NMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW; - LPNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW; - TNMDATETIMEFORMATQUERYW = tagNMDATETIMEFORMATQUERYW; - PNMDATETIMEFORMATQUERYW = ^tagNMDATETIMEFORMATQUERYW; - - -{$IFDEF UNICODE} -CONST - DTN_FORMATQUERY = DTN_FORMATQUERYW; -TYPE - NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYW; - LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYW; -{$ELSE} -CONST - DTN_FORMATQUERY = DTN_FORMATQUERYA; -TYPE - NMDATETIMEFORMATQUERY= NMDATETIMEFORMATQUERYA; - LPNMDATETIMEFORMATQUERY= LPNMDATETIMEFORMATQUERYA; -{$ENDIF} - - - -CONST - DTN_DROPDOWN = (DTN_FIRST + 6); // MonthCal has dropped down - DTN_CLOSEUP = (DTN_FIRST + 7); // MonthCal is popping up - - - GDTR_MIN = $0001; - GDTR_MAX = $0002; - - GDT_ERROR = -1; - GDT_VALID = 0; - GDT_NONE = 1; - - -{$ENDIF} // _WIN32 -{$ENDIF} // NODATETIMEPICK - - -{$ifdef ie4plus} - -{$IFNDEF NOIPADDRESS} - -/////////////////////////////////////////////// -/// IP Address edit control - -// Messages sent to IPAddress controls - - IPM_CLEARADDRESS = (WM_USER+100); // no parameters - IPM_SETADDRESS = (WM_USER+101); // lparam = TCP/IP address - IPM_GETADDRESS = (WM_USER+102); // lresult = # of non black fields. lparam = LPDWORD for TCP/IP address - IPM_SETRANGE = (WM_USER+103); // wparam = field, lparam = range - IPM_SETFOCUS = (WM_USER+104); // wparam = field - IPM_ISBLANK = (WM_USER+105); // no parameters - - WC_IPADDRESSW = {L}'SysIPAddress32'; - WC_IPADDRESSA = 'SysIPAddress32'; - -{$IFDEF UNICODE} - -TYPE - WC_IPADDRESS = WC_IPADDRESSW; -{$ELSE} - WC_IPADDRESS = WC_IPADDRESSA; -{$ENDIF} - - -CONST - IPN_FIELDCHANGED = (IPN_FIRST - 0); -TYPE - - tagNMIPADDRESS = Record - hdr : NMHDR; - iField : cint; - iValue : cint; - END; - NMIPADDRESS = tagNMIPADDRESS; - LPNMIPADDRESS = ^tagNMIPADDRESS; - TNMIPADDRESS = tagNMIPADDRESS; - PNMIPADDRESS = ^tagNMIPADDRESS; - - -// The following is a useful macro for passing the range values in the -// IPM_SETRANGE message. - -// Macro 286 - -// #define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) - -// And this is a useful macro for making the IP Address to be passed -// as a LPARAM. - -// Macro 287 - -// #define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) - -// Get individual number -// Macro 288 - -// #define FIRST_IPADDRESS(x) ((x>>24) & 0xff) -// Macro 289 - -// #define SECOND_IPADDRESS(x) ((x>>16) & 0xff) -// Macro 290 - -// #define THIRD_IPADDRESS(x) ((x>>8) & 0xff) -// Macro 291 - -// #define FOURTH_IPADDRESS(x) (x & 0xff) - - -{$ENDIF} // NOIPADDRESS - - -//--------------------------------------------------------------------------------------- -//--------------------------------------------------------------------------------------- -/// ====================== Pager Control ============================= -//--------------------------------------------------------------------------------------- -//--------------------------------------------------------------------------------------- - -{$IFNDEF NOPAGESCROLLER} - -//Pager Class Name - -CONST - WC_PAGESCROLLERW = {L}'SysPager'; - WC_PAGESCROLLERA = 'SysPager'; - -{$IFDEF UNICODE} - -TYPE - WC_PAGESCROLLER = WC_PAGESCROLLERW; -{$ELSE} - WC_PAGESCROLLER = WC_PAGESCROLLERA; -{$ENDIF} - - -//--------------------------------------------------------------------------------------- -// Pager Control Styles -//--------------------------------------------------------------------------------------- -// begin_r_commctrl - - -CONST - PGS_VERT = $00000000; - PGS_HORZ = $00000001; - PGS_AUTOSCROLL = $00000002; - PGS_DRAGNDROP = $00000004; - -// end_r_commctrl - - -//--------------------------------------------------------------------------------------- -// Pager Button State -//--------------------------------------------------------------------------------------- -//The scroll can be in one of the following control State - PGF_INVISIBLE = 0; // Scroll button is not visible - PGF_NORMAL = 1; // Scroll button is in normal state - PGF_GRAYED = 2; // Scroll button is in grayed state - PGF_DEPRESSED = 4; // Scroll button is in depressed state - PGF_HOT = 8; // Scroll button is in hot state - - -// The following identifiers specifies the button control - PGB_TOPORLEFT = 0; - PGB_BOTTOMORRIGHT = 1; - -//--------------------------------------------------------------------------------------- -// Pager Control Messages -//--------------------------------------------------------------------------------------- - PGM_SETCHILD = (PGM_FIRST + 1); // lParam == hwnd -// Macro 292 - - -Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM); - - - -CONST - PGM_RECALCSIZE = (PGM_FIRST + 2); -// Macro 293 - - -Procedure Pager_RecalcSize( hwnd : hwnd); - - - -CONST - PGM_FORWARDMOUSE = (PGM_FIRST + 3); -// Macro 294 - - -Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM); - - - -CONST - PGM_SETBKCOLOR = (PGM_FIRST + 4); -// Macro 295 - - -Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF; - - - -CONST - PGM_GETBKCOLOR = (PGM_FIRST + 5); -// Macro 296 - - -Function Pager_GetBkColor( hwnd : hwnd):COLORREF; - - - -CONST - PGM_SETBORDER = (PGM_FIRST + 6); -// Macro 297 - - -Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint; - - - -CONST - PGM_GETBORDER = (PGM_FIRST + 7); -// Macro 298 - - -Function Pager_GetBorder( hwnd : hwnd):cint; - - - -CONST - PGM_SETPOS = (PGM_FIRST + 8); -// Macro 299 - - -Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint; - - - -CONST - PGM_GETPOS = (PGM_FIRST + 9); -// Macro 300 - - -Function Pager_GetPos( hwnd : hwnd):cint; - - - -CONST - PGM_SETBUTTONSIZE = (PGM_FIRST + 10); -// Macro 301 - - -Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint; - - - -CONST - PGM_GETBUTTONSIZE = (PGM_FIRST + 11); -// Macro 302 - - -Function Pager_GetButtonSize( hwnd : hwnd):cint; - - - -CONST - PGM_GETBUTTONSTATE = (PGM_FIRST + 12); -// Macro 303 - - -Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD; - - - -CONST - PGM_GETDROPTARGET = CCM_GETDROPTARGET; -// Macro 304 - - -Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM); - -//--------------------------------------------------------------------------------------- -//Pager Control Notification Messages -//--------------------------------------------------------------------------------------- - - -// PGN_SCROLL Notification Message - - -CONST - PGN_SCROLL = (PGN_FIRST-1); - - PGF_SCROLLUP = 1; - PGF_SCROLLDOWN = 2; - PGF_SCROLLLEFT = 4; - PGF_SCROLLRIGHT = 8; - - -//Keys down - PGK_SHIFT = 1; - PGK_CONTROL = 2; - PGK_MENU = 4; - - -{$IFDEF _WIN32} -// #include -{$ENDIF} - -// This structure is sent along with PGN_SCROLL notifications -TYPE - - DummyStruct17 = Record - hdr : NMHDR; - fwKeys : WORD; // Specifies which keys are down when this notification is send - rcParent : RECT; // Contains Parent Window Rect - iDir : cint; // Scrolling Direction - iXpos : cint; // Horizontal scroll position - iYpos : cint; // Vertical scroll position - iScroll : cint; // [in/out] Amount to scroll - END; - NMPGSCROLL = DummyStruct17; - LPNMPGSCROLL = ^DummyStruct17; - TNMPGScroll = NMPGSCROLL; - PNMPGScroll = LPNMPGSCROLL; - - -{$IFDEF _WIN32} -// #include -{$ENDIF} - -// PGN_CALCSIZE Notification Message - - -CONST - PGN_CALCSIZE = (PGN_FIRST-2); - - PGF_CALCWIDTH = 1; - PGF_CALCHEIGHT = 2; - -TYPE - - DummyStruct18 = Record - hdr : NMHDR; - dwFlag : DWORD; - iWidth : cint; - iHeight : cint; - END; - NMPGCALCSIZE = DummyStruct18; - LPNMPGCALCSIZE = ^DummyStruct18; - TNMPGCalcSize = DummyStruct18; - PNMPGCalcSize = LPNMPGCALCSIZE; - - - -// PGN_HOTITEMCHANGE Notification Message - - -CONST - PGN_HOTITEMCHANGE = (PGN_FIRST-3); - -{ -The PGN_HOTITEMCHANGE notification uses these notification -flags defined in TOOLBAR: - - HICF_ENTERING = $00000010; // idOld is invalid - HICF_LEAVING = $00000020; // idNew is invalid -} - -// Structure for PGN_HOTITEMCHANGE notification -// -TYPE - - tagNMPGHOTITEM = Record - hdr : NMHDR; - idOld : cint; - idNew : cint; - dwFlags : DWORD; // HICF_* - END; - NMPGHOTITEM = tagNMPGHOTITEM; - LPNMPGHOTITEM = ^tagNMPGHOTITEM; - TNMPGHOTITEM = tagNMPGHOTITEM; - PNMPGHOTITEM = ^tagNMPGHOTITEM; - - -{$ENDIF} // NOPAGESCROLLER - -////====================== End Pager Control ========================================== - -// -// === Native Font Control === -// -{$IFNDEF NONATIVEFONTCTL} -//NativeFont Class Name - -CONST - WC_NATIVEFONTCTLW = {L}'NativeFontCtl'; - WC_NATIVEFONTCTLA = 'NativeFontCtl'; - -{$IFDEF UNICODE} - -TYPE - WC_NATIVEFONTCTL = WC_NATIVEFONTCTLW; -{$ELSE} - WC_NATIVEFONTCTL = WC_NATIVEFONTCTLA; -{$ENDIF} - -// begin_r_commctrl - -// style definition - -CONST - NFS_EDIT = $0001; - NFS_STATIC = $0002; - NFS_LISTCOMBO = $0004; - NFS_BUTTON = $0008; - NFS_ALL = $0010; - NFS_USEFONTASSOC = $0020; - -// end_r_commctrl - -{$ENDIF} // NONATIVEFONTCTL -// === End Native Font Control === - -/// ====================== Button Control ============================= - -{$IFNDEF NOBUTTON} - -{$IFDEF _WIN32} - -// Button Class Name - WC_BUTTONA = 'Button'; - WC_BUTTONW = {L}'Button'; - -CONST -{$IFDEF UNICODE} - WC_BUTTON = WC_BUTTONW; -{$ELSE} - WC_BUTTON = WC_BUTTONA; -{$ENDIF} - -{$ELSE} - - WC_BUTTON = 'Button'; -{$ENDIF} - -{$ifdef win32xp} - BUTTON_IMAGELIST_ALIGN_LEFT = 0; - BUTTON_IMAGELIST_ALIGN_RIGHT = 1; - BUTTON_IMAGELIST_ALIGN_TOP = 2; - BUTTON_IMAGELIST_ALIGN_BOTTOM = 3; - BUTTON_IMAGELIST_ALIGN_CENTER = 4; // Doesn't draw text - -TYPE - - DummyStruct19 = Record - himl : HIMAGELIST; // Index: Normal, hot pushed, disabled. If count is less than 4, we use index 1 - margin : RECT; // Margin around icon. - uAlign : UINT; - END; - BUTTON_IMAGELIST = DummyStruct19; - PBUTTON_IMAGELIST = ^DummyStruct19; - TDummyStruct19 = DummyStruct19; - PDummyStruct19 = ^DummyStruct19; - - - -CONST - BCM_GETIDEALSIZE = (BCM_FIRST + $0001); -// Macro 305 - - -Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL; - - - -CONST - BCM_SETIMAGELIST = (BCM_FIRST + $0002); -// Macro 306 - - -Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL; - - - -CONST - BCM_GETIMAGELIST = (BCM_FIRST + $0003); -// Macro 307 - - -Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL; - - - -CONST - BCM_SETTEXTMARGIN = (BCM_FIRST + $0004); -// Macro 308 - - -Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL; - - -CONST - BCM_GETTEXTMARGIN = (BCM_FIRST + $0005); -// Macro 309 - - -Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL; - - -TYPE - - tagNMBCHOTITEM = Record - hdr : NMHDR; - dwFlags : DWORD; // HICF_* - END; - NMBCHOTITEM = tagNMBCHOTITEM; - LPNMBCHOTITEM = ^tagNMBCHOTITEM; - TNMBCHOTITEM = tagNMBCHOTITEM; - PNMBCHOTITEM = ^tagNMBCHOTITEM; - - - -CONST - BCN_HOTITEMCHANGE = (BCN_FIRST + $0001); - - BST_HOT = $0200; -{$ifdef win32vista} - BST_DROPDOWNPUSHED = $0400; - -// BUTTON STYLES - BS_SPLITBUTTON = $00000000C; // This block L suffixed (unsigned) - BS_DEFSPLITBUTTON = $00000000D; - BS_COMMANDLINK = $00000000E; - BS_DEFCOMMANDLINK = $00000000F; - -// SPLIT BUTTON INFO mask flags - BCSIF_GLYPH = $00001; - BCSIF_IMAGE = $00002; - BCSIF_STYLE = $00004; - BCSIF_SIZE = $00008; - -// SPLIT BUTTON STYLE flags - BCSS_NOSPLIT = $00001; - BCSS_STRETCH = $00002; - BCSS_ALIGNLEFT = $00004; - BCSS_IMAGE = $00008; - - BCM_SETDROPDOWNSTATE = (BCM_FIRST + $0006); - BCM_SETSPLITINFO = (BCM_FIRST + $0007); - BCM_GETSPLITINFO = (BCM_FIRST + $0008); - BCM_SETNOTE = (BCM_FIRST + $0009); - BCM_GETNOTE = (BCM_FIRST + $000A); - BCM_GETNOTELENGTH = (BCM_FIRST + $000B); - BCM_SETSHIELD = (BCM_FIRST + $000C); - - -// Value to pass to BCM_SETIMAGELIST to indicate that no glyph should be -// displayed - BCCL_NOGLYPH = HIMAGELIST(-1); - - BCN_DROPDOWN = (BCN_FIRST + $0002); -Type - - tagBUTTON_SPLITINFO = record - mask : UINT; - himlGlyph : HIMAGELIST; - uSplitStyle : UINT; - size : SIZE; - end; - BUTTON_SPLITINFO = tagBUTTON_SPLITINFO; - PBUTTON_SPLITINFO = ^BUTTON_SPLITINFO; - LPBUTTON_SPLITINFO = PBUTTON_SPLITINFO; - - { NOTIFICATION MESSAGES } - - tagNMBCDROPDOWN = packed record - hdr : NMHDR; - rcButton : RECT; - end; - NMBCDROPDOWN = tagNMBCDROPDOWN; - PNMBCDROPDOWN = ^NMBCDROPDOWN; - LPNMBCDROPDOWN = PNMBCDROPDOWN; - -// BUTTON MESSAGES - -function Button_SetDropDownState(hwnd:HWND; fDropDown:BOOL) : BOOL; -// (BOOL)SNDMSG((hwnd), BCM_SETDROPDOWNSTATE, (WPARAM)(fDropDown), 0) - -function Button_SetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO):BOOL; -// (BOOL)SNDMSG((hwnd), BCM_SETSPLITINFO, 0, (LPARAM)(pInfo)) - -function Button_GetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO) :BOOL; -// (BOOL)SNDMSG((hwnd), BCM_GETSPLITINFO, 0, (LPARAM)(pInfo)) - -function Button_SetNote(hwnd:HWND; psz:LPCWSTR) :BOOL; -// (BOOL)SNDMSG((hwnd), BCM_SETNOTE, 0, (LPARAM)(psz)) - -function Button_GetNote(hwnd:HWND; psz:LPCWSTR; pcc:cint) :BOOL; -// (BOOL)SNDMSG((hwnd), BCM_GETNOTE, (WPARAM)pcc, (LPARAM)psz) - -function Button_GetNoteLength(hwnd:HWND) :LRESULT; -// (LRESULT)SNDMSG((hwnd), BCM_GETNOTELENGTH, 0, 0) - -// Macro to use on a button or command link to display an elevated icon - -function Button_SetElevationRequiredState(hwnd:HWND; fRequired:BOOL) :LRESULT; -// (LRESULT)SNDMSG((hwnd), BCM_SETSHIELD, 0, (LPARAM)fRequired) - -{$endif} -{$ENDIF} -{$ENDIF} // NOBUTTON - - -/// ===================== End Button Control ========================= - -/// ====================== Static Control ============================= - -{$IFNDEF NOSTATIC} - -const -{$IFDEF _WIN32} - -// Static Class Name - WC_STATICA = 'Static'; - WC_STATICW = {L}'Static'; - -{$IFDEF UNICODE} - -TYPE - WC_STATIC = WC_STATICW; -{$ELSE} - WC_STATIC = WC_STATICA; -{$ENDIF} - -{$ELSE} - -CONST - WC_STATIC = 'Static'; -{$ENDIF} - -{$ENDIF} // NOSTATIC - -/// ===================== End Static Control ========================= - -/// ====================== Edit Control ============================= - -{$IFNDEF NOEDIT} - -{$IFDEF _WIN32} - -// Edit Class Name - WC_EDITA = 'Edit'; - WC_EDITW = {L}'Edit'; - -{$IFDEF UNICODE} - -TYPE - WC_EDIT = WC_EDITW; -{$ELSE} - WC_EDIT = WC_EDITA; -{$ENDIF} - -{$ELSE} - -CONST - WC_EDIT = 'Edit'; -{$ENDIF} - -{$ifdef win32xp} - EM_SETCUEBANNER = (ECM_FIRST + 1); // Set the cue banner with the lParm = LPCWSTR -// Macro 310 - - -Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL; - - -CONST - EM_GETCUEBANNER = (ECM_FIRST + 2); // Set the cue banner with the lParm = LPCWSTR -// Macro 311 - - -Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL; - - -TYPE - - _tagEDITBALLOONTIP = Record - cbStruct : DWORD; - pszTitle : LPCWSTR; - pszText : LPCWSTR; - ttiIcon : cint; // From TTI_* - END; - EDITBALLOONTIP = _tagEDITBALLOONTIP; - PEDITBALLOONTIP = ^_tagEDITBALLOONTIP; - TEDITBALLOONTIP = _tagEDITBALLOONTIP; - - - -CONST - EM_SHOWBALLOONTIP = (ECM_FIRST + 3); // Show a balloon tip associated to the edit control -// Macro 312 - - -Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL; - - -CONST - EM_HIDEBALLOONTIP = (ECM_FIRST + 4); // Hide any balloon tip associated with the edit control -// Macro 313 - - -Function Edit_HideBalloonTip( hwnd : hwnd):BOOL; - -{$ifdef win32vista} -const - EM_SETHILITE = (ECM_FIRST + 5); - EM_GETHILITE = (ECM_FIRST + 6); - -// both are "unimplemented" in MSDN, so probably typing is off. -procedure Edit_SetHilite(hwndCtl:hwnd; ichStart:Wparam; ichEnd:lparam); -// ((void)SNDMSG((hwndCtl), EM_SETHILITE, (ichStart), (ichEnd))) - -function Edit_GetHilite(hwndCtl:hwnd):DWORD; -// ((DWORD)SNDMSG((hwndCtl), EM_GETHILITE, 0L, 0L)) -{$endif} - -{$ENDIF} - -{$ENDIF} // NOEDIT - -/// ===================== End Edit Control ========================= - -/// ====================== Listbox Control ============================= - -{$IFNDEF NOLISTBOX} - -{$IFDEF _WIN32} - -// Listbox Class Name - -CONST - WC_LISTBOXA = 'ListBox'; - WC_LISTBOXW = {L}'ListBox'; - -{$IFDEF UNICODE} - -TYPE - WC_LISTBOX = WC_LISTBOXW; -{$ELSE} - WC_LISTBOX = WC_LISTBOXA; -{$ENDIF} - -{$ELSE} - -CONST - WC_LISTBOX = 'ListBox'; -{$ENDIF} - -{$ENDIF} // NOLISTBOX - - -/// ===================== End Listbox Control ========================= - -/// ====================== Combobox Control ============================= - -{$IFNDEF NOCOMBOBOX} - -{$IFDEF _WIN32} - -// Combobox Class Name - WC_COMBOBOXA = 'ComboBox'; - WC_COMBOBOXW = {L}'ComboBox'; - -{$IFDEF UNICODE} - -TYPE - WC_COMBOBOX = WC_COMBOBOXW; -{$ELSE} - WC_COMBOBOX = WC_COMBOBOXA; -{$ENDIF} - -{$ELSE} - -CONST - WC_COMBOBOX = 'ComboBox'; -{$ENDIF} - -{$ENDIF} // NOCOMBOBOX - - -{$ifdef win32xp} - -// custom combobox control messages - CB_SETMINVISIBLE = (CBM_FIRST + 1); - CB_GETMINVISIBLE = (CBM_FIRST + 2); - -// Macro 314 - - -Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL; - - -// Macro 315 - - -Function ComboBox_GetMinVisible( hwnd : hwnd):cint; - - -{$ENDIF} - -/// ===================== End Combobox Control ========================= - -/// ====================== Scrollbar Control ============================ - -{$IFNDEF NOSCROLLBAR} - -{$IFDEF _WIN32} - -// Scrollbar Class Name - -CONST - WC_SCROLLBARA = 'ScrollBar'; - WC_SCROLLBARW = {L}'ScrollBar'; - -{$IFDEF UNICODE} - -TYPE - WC_SCROLLBAR = WC_SCROLLBARW; -{$ELSE} - WC_SCROLLBAR = WC_SCROLLBARA; -{$ENDIF} - -{$ELSE} - -CONST - WC_SCROLLBAR = 'ScrollBar'; -{$ENDIF} - -{$ENDIF} // NOSCROLLBAR - - -/// ===================== End Scrollbar Control ========================= - - -//====== SysLink control ========================================= - -{$IFDEF _WIN32} -{$ifdef win32xp} - - INVALID_LINK_INDEX = (-1); - - - - WC_LINK = {L}'SysLink'; - - LWS_TRANSPARENT = $0001; - LWS_IGNORERETURN = $0002; - -{$ifdef win32vista} - LWS_NOPREFIX = $0004; - LWS_USEVISUALSTYLE = $0008; - LWS_USECUSTOMTEXT = $0010; - LWS_RIGHT = $0020; -{$endif} - - LIF_ITEMINDEX = $00000001; - LIF_STATE = $00000002; - LIF_ITEMID = $00000004; - LIF_URL = $00000008; - - LIS_FOCUSED = $00000001; - LIS_ENABLED = $00000002; - LIS_VISITED = $00000004; -{$ifdef win32vista} - LIS_HOTTRACK = $00000008; - LIS_DEFAULTCOLORS = $00000010; // Don't use any custom text colors -{$endif} - -TYPE - - - tagLHITTESTINFO = Record - pt : POINT; - item : LITEM; - END; - LHITTESTINFO = tagLHITTESTINFO; - PLHITTESTINFO = ^tagLHITTESTINFO; - TLHITTESTINFO = tagLHITTESTINFO; -// PLHITTESTINFO = ^tagLHITTESTINFO; - - - tagNMLINK = Record - hdr : NMHDR; - item : LITEM; - END; - NMLINK = tagNMLINK; - PNMLINK = ^tagNMLINK; - TNMLINK = tagNMLINK; -// PNMLINK = ^tagNMLINK; - - -// SysLink notifications -// NM_CLICK // wParam: control ID, lParam: PNMLINK, ret: ignored. - -// LinkWindow messages - -CONST - LM_HITTEST = (WM_USER+$300); // wParam: n/a, lparam: PLHITTESTINFO, ret: BOOL - LM_GETIDEALHEIGHT = (WM_USER+$301); // wParam: n/a, lparam: n/a, ret: cy - LM_SETITEM = (WM_USER+$302); // wParam: n/a, lparam: LITEM*, ret: BOOL - LM_GETITEM = (WM_USER+$303); // wParam: n/a, lparam: LITEM*, ret: BOOL - -{$ENDIF} -{$ENDIF} // _WIN32 -//====== End SysLink control ========================================= - - -// -// === MUI APIs === -// -{$IFNDEF NOMUI} -procedure InitMUILanguage(uiLang:LANGID); stdcall; external commctrldll name 'InitMUILanguage'; - - -function GetMUILanguage:LANGID; stdcall; external commctrldll name 'GetMUILanguage'; -{$ENDIF} // NOMUI - -{$ENDIF} // _WIN32_IE >= 0x0400 - -{$IFDEF _WIN32} -//====== TrackMouseEvent ===================================================== - -{$IFNDEF NOTRACKMOUSEEVENT} - -// -// If the messages for TrackMouseEvent have not been defined then define them -// now. -// -{$IFNDEF WM_MOUSEHOVER} - -CONST - WM_MOUSEHOVER = $02A1; - WM_MOUSELEAVE = $02A3; -{$ENDIF} - -// -// If the TRACKMOUSEEVENT structure and associated flags havent been declared -// then declare them now. -// -{$IFNDEF TME_HOVER} - - TME_HOVER = $00000001; - TME_LEAVE = $00000002; -{$ifdef win32xp} - TME_NONCLIENT = $00000010; -{$ENDIF} { WINVER >= 0x0500 } - TME_QUERY = $40000000; - TME_CANCEL = $80000000; - - - - HOVER_DEFAULT = $FFFFFFFF; - -TYPE - - tagTRACKMOUSEEVENT = Record - cbSize : DWORD; - dwFlags : DWORD; - hwndTrack : HWND; - dwHoverTime : DWORD; - END; - TRACKMOUSEEVENT = tagTRACKMOUSEEVENT; - LPTRACKMOUSEEVENT = ^tagTRACKMOUSEEVENT; - TTRACKMOUSEEVENT = tagTRACKMOUSEEVENT; - PTRACKMOUSEEVENT = ^tagTRACKMOUSEEVENT; - - -{$ENDIF} // !TME_HOVER - - - -// -// Declare _TrackMouseEvent. This API tries to use the window manager's -// implementation of TrackMouseEvent if it is present, otherwise it emulates. -// -function _TrackMouseEvent(lpEventTrack:LPTRACKMOUSEEVENT):BOOL; stdcall; external commctrldll name '_TrackMouseEvent'; - -{$ENDIF} // !NOTRACKMOUSEEVENT - -{$ifdef ie4plus} - -//====== Flat Scrollbar APIs========================================= -{$IFNDEF NOFLATSBAPIS} - - -CONST - WSB_PROP_CYVSCROLL = LONG($00000001); - WSB_PROP_CXHSCROLL = LONG($00000002); - WSB_PROP_CYHSCROLL = LONG($00000004); - WSB_PROP_CXVSCROLL = LONG($00000008); - WSB_PROP_CXHTHUMB = LONG($00000010); - WSB_PROP_CYVTHUMB = LONG($00000020); - WSB_PROP_VBKGCOLOR = LONG($00000040); - WSB_PROP_HBKGCOLOR = LONG($00000080); - WSB_PROP_VSTYLE = LONG($00000100); - WSB_PROP_HSTYLE = LONG($00000200); - WSB_PROP_WINSTYLE = LONG($00000400); - WSB_PROP_PALETTE = LONG($00000800); - WSB_PROP_MASK = LONG($00000FFF); - - FSB_FLAT_MODE = 2; - FSB_ENCARTA_MODE = 1; - FSB_REGULAR_MODE = 0; - -function FlatSB_EnableScrollBar(hwnd:HWND;code : cint;p3 : UINT):BOOL; stdcall; external commctrldll name 'FlatSB_EnableScrollBar'; -function FlatSB_ShowScrollBar(hwnd:HWND;code : cint;p3 : BOOL):BOOL; stdcall; external commctrldll name 'FlatSB_ShowScrollBar'; - -function FlatSB_GetScrollRange(hwnd:HWND;code : cint;p3 : LPINT;p4 : LPINT):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollRange'; -function FlatSB_GetScrollRange(hwnd:HWND;code : cint;var p3,p4 : cint):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollRange'; -function FlatSB_GetScrollInfo(hwnd:HWND;code : cint;ScrollInfo : LPSCROLLINFO):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollInfo'; -function FlatSB_GetScrollInfo(hwnd:HWND;code : cint;var ScrollInfo : TSCROLLINFO):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollInfo'; - -function FlatSB_GetScrollPos(hwnd:HWND;code : cint):cint; stdcall; external commctrldll name 'FlatSB_GetScrollPos'; - - -function FlatSB_GetScrollProp(hwnd:HWND):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollProp'; -{$IFDEF _WIN64} -function FlatSB_GetScrollPropPtr(hwnd:HWND;propIndex : cint;p3 : LPINT):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollPropPtr'; -{$ELSE} -function FlatSB_GetScrollPropPtr(hwnd:HWND;code : cint):BOOL; stdcall; external commctrldll name 'FlatSB_GetScrollProp'; -{$ENDIF} - - -function FlatSB_SetScrollPos(hWnd:HWND;nBar,nPos:cint;bRedraw:BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollPos'; - -function FlatSB_SetScrollInfo(hWnd:HWND;BarFlag:cint;const ScrollInfo:TScrollInfo;Redraw:BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollInfo'; - - -function FlatSB_SetScrollRange(hWnd: HWND; nBar,nMinPos,nMaxPos: cint; bRedraw: BOOL):cint; stdcall; external commctrldll name 'FlatSB_SetScrollRange'; -function FlatSB_SetScrollProp(p1: HWND; index : UINT; newValue: INT_PTR; p4: BOOL):BOOL; stdcall; external commctrldll name 'FlatSB_SetScrollProp'; - -function InitializeFlatSB(hWnd:HWND):BOOL; stdcall; external commctrldll name 'InitializeFlatSB'; -function UninitializeFlatSB(hWnd:HWND):HRESULT; stdcall; external commctrldll name 'UninitializeFlatSB'; - -{$ENDIF} // NOFLATSBAPIS - -{$ENDIF} // _WIN32_IE >= 0x0400 - -{$ENDIF} { _WIN32 } - -{$ENDIF} // _WIN32_IE >= 0x0300 - -{$ifdef win32xp} -// -// subclassing stuff -// -TYPE - subclassproc=function (hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : UINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall; - -{ - (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, = LRESULT - LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData); - -typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, - LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData); - - hwnd:HWND;uMsg:cUINT; wParam:WPARAM;lparam:LPARAM;uISubClass : CUINT_PTR;dwRefData:DWORD_PTR):LRESULT; stdcall; -} - -function SetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;dwRefData:DWORD_PTR):BOOL; stdcall; external commctrldll name 'SetWindowSubclass'; -function GetWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR;pdwRefData:PDWORD_PTR):BOOL; stdcall; external commctrldll name 'GetWindowSubclass'; -function RemoveWindowSubclass(hWnd:HWND;pfnSubclass:SUBCLASSPROC;uIdSubclass:UINT_PTR):BOOL; stdcall; external commctrldll name 'RemoveWindowSubclass'; - -function DefSubclassProc(hWnd:HWND;uMsg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall; external commctrldll name 'DefSubclassProc'; -{$ENDIF} - -{$ifdef NTDDI_VISTA} -type _LI_METRIC= ( - - LIM_SMALL=0, // corresponds to SM_CXSMICON/SM_CYSMICON - LIM_LARGE // corresponds to SM_CXICON/SM_CYICON - ); - -Function LoadIconMetric( hinst:HINST; pszName:LPCWStr;lims:cint; var phico: HICON ):HRESULT; stdcall; external commctrldll name 'LoadIconMetric'; -Function LoadIconWithScaleDown( hinst:HINST; pszName:LPCWStr;cx:cint;cy:cint;var phico: HICON ):HRESULT; stdcall; external commctrldll name 'LoadIconMetric'; - -{$endif} - -{$ifdef win32xp} - -function DrawShadowText(hdc:HDC;pszText:LPCWSTR;cch:UINT;prc:PRECT;dwFlags:DWORD;crText:COLORREF;crShadow:COLORREF;ixOffset:cint;iyOffset:cint):cint; stdcall; external commctrldll name 'DrawShadowText'; -{$ENDIF} - -// ===================== Task Dialog ========================= - -Type - PFTASKDIALOGCALLBACK = function(hwnd: HWND; msg: UINT; wParam: WPARAM; lParam: LPARAM; lpRefData: LONG_PTR): HRESULT; stdcall; - - // _TASKDIALOG_FLAGS enum -const - TDF_ENABLE_HYPERLINKS = $0001; - TDF_USE_HICON_MAIN = $0002; - TDF_USE_HICON_FOOTER = $0004; - TDF_ALLOW_DIALOG_CANCELLATION = $0008; - TDF_USE_COMMAND_LINKS = $0010; - TDF_USE_COMMAND_LINKS_NO_ICON = $0020; - TDF_EXPAND_FOOTER_AREA = $0040; - TDF_EXPANDED_BY_DEFAULT = $0080; - TDF_VERIFICATION_FLAG_CHECKED = $0100; - TDF_SHOW_PROGRESS_BAR = $0200; - TDF_SHOW_MARQUEE_PROGRESS_BAR = $0400; - TDF_CALLBACK_TIMER = $0800; - TDF_POSITION_RELATIVE_TO_WINDOW = $1000; - TDF_RTL_LAYOUT = $2000; - TDF_NO_DEFAULT_RADIO_BUTTON = $4000; - TDF_CAN_BE_MINIMIZED = $8000; - -type - TASKDIALOG_FLAGS = Integer; // Note: _TASKDIALOG_FLAGS is an int - - // _TASKDIALOG_MESSAGES enum -const - TDM_NAVIGATE_PAGE = WM_USER+101; - TDM_CLICK_BUTTON = WM_USER+102; // wParam = Button ID - TDM_SET_MARQUEE_PROGRESS_BAR = WM_USER+103; // wParam = 0 (nonMarque) wParam != 0 (Marquee) - TDM_SET_PROGRESS_BAR_STATE = WM_USER+104; // wParam = new progress state - TDM_SET_PROGRESS_BAR_RANGE = WM_USER+105; // lParam = MAKELPARAM(nMinRange, nMaxRange) - TDM_SET_PROGRESS_BAR_POS = WM_USER+106; // wParam = new position - TDM_SET_PROGRESS_BAR_MARQUEE = WM_USER+107; // wParam = 0 (stop marquee), wParam != 0 (start marquee), lparam = speed (milliseconds between repaints) - TDM_SET_ELEMENT_TEXT = WM_USER+108; // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR) - TDM_CLICK_RADIO_BUTTON = WM_USER+110; // wParam = Radio Button ID - TDM_ENABLE_BUTTON = WM_USER+111; // lParam = 0 (disable), lParam != 0 (enable), wParam = Button ID - TDM_ENABLE_RADIO_BUTTON = WM_USER+112; // lParam = 0 (disable), lParam != 0 (enable), wParam = Radio Button ID - TDM_CLICK_VERIFICATION = WM_USER+113; // wParam = 0 (unchecked), 1 (checked), lParam = 1 (set key focus) - TDM_UPDATE_ELEMENT_TEXT = WM_USER+114; // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR) - TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE = WM_USER+115; // wParam = Button ID, lParam = 0 (elevation not required), lParam != 0 (elevation required) - TDM_UPDATE_ICON = WM_USER+116; // wParam = icon element (TASKDIALOG_ICON_ELEMENTS), lParam = new icon (hIcon if TDF_USE_HICON_* was set, PCWSTR otherwise) - - // _TASKDIALOG_NOTIFICATIONS enum -const - TDN_CREATED = 0; - TDN_NAVIGATED = 1; - TDN_BUTTON_CLICKED = 2; // wParam = Button ID - TDN_HYPERLINK_CLICKED = 3; // lParam = (LPCWSTR)pszHREF - TDN_TIMER = 4; // wParam = Milliseconds since dialog created or timer reset - TDN_DESTROYED = 5; - TDN_RADIO_BUTTON_CLICKED = 6; // wParam = Radio Button ID - TDN_DIALOG_CONSTRUCTED = 7; - TDN_VERIFICATION_CLICKED = 8; // wParam = 1 if checkbox checked, 0 if not, lParam is unused and always 0 - TDN_HELP = 9; - TDN_EXPANDO_BUTTON_CLICKED = 10; // wParam = 0 (dialog is now collapsed), wParam != 0 (dialog is now expanded) - -type - _TASKDIALOG_BUTTON = packed record - nButtonID: Integer; - pszButtonText: PCWSTR; - end; - TASKDIALOG_BUTTON = _TASKDIALOG_BUTTON; - TTASKDIALOG_BUTTON = TASKDIALOG_BUTTON; - PTASKDIALOG_BUTTON = ^TASKDIALOG_BUTTON; - - // _TASKDIALOG_ELEMENTS enum -const - TDE_CONTENT = 0; - TDE_EXPANDED_INFORMATION = 1; - TDE_FOOTER = 2; - TDE_MAIN_INSTRUCTION = 3; - - // _TASKDIALOG_ICON_ELEMENTS enum - TDIE_ICON_MAIN = 0; - TDIE_ICON_FOOTER = 1; - - TD_WARNING_ICON = MAKEINTRESOURCEW(Word(-1)); - TD_ERROR_ICON = MAKEINTRESOURCEW(Word(-2)); - TD_INFORMATION_ICON = MAKEINTRESOURCEW(Word(-3)); - TD_SHIELD_ICON = MAKEINTRESOURCEW(Word(-4)); - TD_SHIELD_GRADIENT_ICON = MAKEINTRESOURCEW(Word(-5)); - TD_SHIELD_WARNING_ICON = MAKEINTRESOURCEW(Word(-6)); - TD_SHIELD_ERROR_ICON = MAKEINTRESOURCEW(Word(-7)); - TD_SHIELD_OK_ICON = MAKEINTRESOURCEW(Word(-8)); - TD_SHIELD_GRAY_ICON = MAKEINTRESOURCEW(Word(-9)); - - // _TASKDIALOG_COMMON_BUTTON_FLAGS enum - TDCBF_OK_BUTTON = $0001; // selected control return value IDOK - TDCBF_YES_BUTTON = $0002; // selected control return value IDYES - TDCBF_NO_BUTTON = $0004; // selected control return value IDNO - TDCBF_CANCEL_BUTTON = $0008; // selected control return value IDCANCEL - TDCBF_RETRY_BUTTON = $0010; // selected control return value IDRETRY - TDCBF_CLOSE_BUTTON = $0020; // selected control return value IDCLOSE - -type - TASKDIALOG_COMMON_BUTTON_FLAGS = Integer; // Note: _TASKDIALOG_COMMON_BUTTON_FLAGS is an int - - _TASKDIALOGCONFIG = packed record - cbSize: UINT; - hwndParent: HWND; - hInstance: HINST; // used for MAKEINTRESOURCE() strings - dwFlags: TASKDIALOG_FLAGS; // TASKDIALOG_FLAGS (TDF_XXX) flags - dwCommonButtons: TASKDIALOG_COMMON_BUTTON_FLAGS; // TASKDIALOG_COMMON_BUTTON (TDCBF_XXX) flags - pszWindowTitle: PCWSTR; // string or MAKEINTRESOURCE() - case PtrInt of - 0: (hMainIcon: HICON); - 1: ( - pszMainIcon: PCWSTR; - pszMainInstruction: PCWSTR; - pszContent: PCWSTR; - cButtons: UINT; - pButtons: PTASKDIALOG_BUTTON; - nDefaultButton: Integer; - cRadioButtons: UINT; - pRadioButtons: PTASKDIALOG_BUTTON; - nDefaultRadioButton: Integer; - pszVerificationText: PCWSTR; - pszExpandedInformation: PCWSTR; - pszExpandedControlText: PCWSTR; - pszCollapsedControlText: PCWSTR; - case PtrInt of - 0: (hFooterIcon: HICON); - 1: ( - pszFooterIcon: PCWSTR; - pszFooter: PCWSTR; - pfCallback: PFTASKDIALOGCALLBACK; - lpCallbackData: LONG_PTR; - cxWidth: UINT; // width of the Task Dialog's client area in DLU's. If 0, Task Dialog will calculate the ideal width. - ); - ); - end; - TASKDIALOGCONFIG = _TASKDIALOGCONFIG; - PTASKDIALOGCONFIG = ^TASKDIALOGCONFIG; - TTASKDIALOGCONFIG = TASKDIALOGCONFIG; - -var - TaskDialogIndirect: function(const pTaskConfig: PTASKDIALOGCONFIG; pnButton: PInteger; pnRadioButton: PInteger; pfVerificationFlagChecked: PBOOL): HRESULT; stdcall; - TaskDialog: function(hwndParent: HWND; hInstance: HINST; pszWindowTitle: PCWSTR; pszMainInstruction: PCWSTR; pszContent: PCWSTR; - dwCommonButtons: TASKDIALOG_COMMON_BUTTON_FLAGS; pszIcon: PCWSTR; pnButton: PInteger): HRESULT; stdcall; - - -// ==================== End TaskDialog ======================= - - -IMPLEMENTATION - -// Macro 8 - -//#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \ -// (fn)((hwnd), (int)(wParam), (NMHDR *)(lParam)) - -Procedure HANDLE_WM_NOTIFY( hwnd : hwnd; wParam : cint;var _lParam : NMHDR ;fn:Pointer); - -TYPE FnType=procedure ( hwnd : hwnd; wParam : cint;tst:LPARAM); stdcall; - -Begin - fnType(fn)(hwnd, wParam, LPARAM(@_lParam)); -end; - -// Macro 9 - -//#define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) \ -// (LRESULT)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(idFrom), (LPARAM)(NMHDR *)(pnmhdr)) - -Function FORWARD_WM_NOTIFY( hwnd : hwnd; idFrom : cint;var pnmhdr : NMHDR ; fn : pointer ):LRESULT; - -TYPE FnType=Function( hwnd : hwnd; wParam : cint;wparam2:cint;lparam1:lparam):LResult; stdcall; - -Begin - Result:=LRESULT(fntype(fn)(hwnd, WM_NOTIFY, idFrom, LPARAM(@pnmhdr))); -end; - -// Macro 10 -// #define CCSIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member)) - - -// Macro 11 -// #define ImageList_AddIcon(himl, hicon) ImageList_ReplaceIcon(himl, -1, hicon) - -Function ImageList_AddIcon(Himl:HIMAGELIST;hicon:HICON):cint; -Begin - Result:=ImageList_ReplaceIcon(himl,-1,hicon); -end; - - -// Macro 12 -// #define INDEXTOOVERLAYMASK(i) ((i) << 8) - -// Macro 13 -// #define ImageList_RemoveAll(himl) ImageList_Remove(himl, -1) - -Procedure ImageList_RemoveAll(himl:HIMAGELIST); -Begin - ImageList_Remove(himl, -1) -End; - -// Macro 14 -// #define ImageList_ExtractIcon(hi, himl, i) ImageList_GetIcon(himl, i, 0) - -function ImageList_ExtractIcon(hi:longint; himl:HIMAGELIST;i:longint):HICON; - -Begin - result:=ImageList_GetIcon(himl, i,0); -end; - - -// Macro 15 -// #define ImageList_LoadBitmap(hi, lpbmp, cx, cGrow, crMask) -// ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0) - -Procedure ImageList_LoadBitmap(hi:HINST;bmp:LPCTSTR;cx:cint;cGrow:cint;crMask:COLORREF); - -Begin - ImageList_LoadImage(hi, bmp, cx, cGrow, crMask, IMAGE_BITMAP, 0); -End; - -// Macro 16 -// #define Header_GetItemCount(hwndHD) \ -// (int)SNDMSG((hwndHD), HDM_GETITEMCOUNT, 0, DWord(0)) - -Function Header_GetItemCount( hwndHD : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwndHD), HDM_GETITEMCOUNT, 0, LPARAM(0))) -end; - - -// Macro 17 -//#define Header_InsertItem(hwndHD, i, phdi) \ -// (int)SNDMSG((hwndHD), HDM_INSERTITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi)) - -Function Header_InsertItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):cint; - -Begin - Result:=cint(SendMessage((hwndHD), HDM_INSERTITEM, (i), LPARAM(@phdi))); -end; - -// Macro 18 -//#define Header_DeleteItem(hwndHD, i) \ -// (BOOL)SNDMSG((hwndHD), HDM_DELETEITEM, (WPARAM)(int)(i), LPARAM(0)) - -Function Header_DeleteItem( hwndHD : hwnd; i : cint):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndHD), HDM_DELETEITEM, (i), LPARAM(0))); -end; - - -// Macro 19 -// #define Header_GetItem(hwndHD, i, phdi) \ -// (BOOL)SNDMSG((hwndHD), HDM_GETITEM, (WPARAM)(int)(i), (LPARAM)(HD_ITEM *)(phdi)) - -Function Header_GetItem( hwndHD : hwnd; i : cint;var phdi : HD_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndHD), HDM_GETITEM, (i), LPARAM(@phdi))); -end; - - -// Macro 20 -// #define Header_SetItem(hwndHD, i, phdi) \ -// (BOOL)SNDMSG((hwndHD), HDM_SETITEM, (WPARAM)(int)(i), (LPARAM)(const HD_ITEM *)(phdi)) - -Function Header_SetItem( hwndHD : hwnd; i : cint;const phdi : HD_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndHD), HDM_SETITEM, (i), LPARAM(@phdi))); -end; - - -// Macro 21 -// #define Header_Layout(hwndHD, playout) \ -// (BOOL)SNDMSG((hwndHD), HDM_LAYOUT, 0, (LPARAM)(HD_LAYOUT *)(playout)) - -Function Header_Layout( hwndHD : hwnd;var playout : HD_LAYOUT ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndHD), HDM_LAYOUT, 0, LPARAM(@playout))) -end; - - -// Macro 22 -// #define Header_GetItemRect(hwnd, iItem, lprc) \ -// (BOOL)SNDMSG((hwnd), HDM_GETITEMRECT, (WPARAM)(iItem), (LPARAM)(lprc)) - -Function Header_GetItemRect( hwnd : hwnd; iItem : WPARAM; lprc : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), HDM_GETITEMRECT, iItem, lprc)); -end; - - -// Macro 23 -// #define Header_SetImageList(hwnd, himl) \ -// (HIMAGELIST)SNDMSG((hwnd), HDM_SETIMAGELIST, 0, (LPARAM)(himl)) - -Function Header_SetImageList( hwnd : hwnd; himl : LPARAM):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), HDM_SETIMAGELIST, 0, himl)) -end; - - -// Macro 24 -// #define Header_GetImageList(hwnd) \ -// (HIMAGELIST)SNDMSG((hwnd), HDM_GETIMAGELIST, 0, 0) - -Function Header_GetImageList( hwnd : hwnd):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), HDM_GETIMAGELIST, 0, 0)) -end; - - -// Macro 25 -// #define Header_OrderToIndex(hwnd, i) \ -// (int)SNDMSG((hwnd), HDM_ORDERTOINDEX, (WPARAM)(i), 0) - -Function Header_OrderToIndex( hwnd : hwnd; i : WPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_ORDERTOINDEX, (i), 0)) -end; - - -// Macro 26 -// #define Header_CreateDragImage(hwnd, i) \ -// (HIMAGELIST)SNDMSG((hwnd), HDM_CREATEDRAGIMAGE, (WPARAM)(i), 0) - -Function Header_CreateDragImage( hwnd : hwnd; i : WPARAM):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), HDM_CREATEDRAGIMAGE, (i), 0)) -end; - - -// Macro 27 -// #define Header_GetOrderArray(hwnd, iCount, lpi) \ -// (BOOL)SNDMSG((hwnd), HDM_GETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi)) - -Function Header_GetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), HDM_GETORDERARRAY, iCount, lpi)) -end; - - -// Macro 28 -// #define Header_SetOrderArray(hwnd, iCount, lpi) \ -// (BOOL)SNDMSG((hwnd), HDM_SETORDERARRAY, (WPARAM)(iCount), (LPARAM)(lpi)) - -Function Header_SetOrderArray( hwnd : hwnd; iCount : WPARAM; lpi : PInteger):BOOL;inline; - -Begin - Result:=BOOL(SendMessage((hwnd), HDM_SETORDERARRAY, iCount, LPARAM(lpi))) -end; - - -// Macro 29 -// #define Header_SetHotDivider(hwnd, fPos, dw) \ -// (int)SNDMSG((hwnd), HDM_SETHOTDIVIDER, (WPARAM)(fPos), (LPARAM)(dw)) - -Function Header_SetHotDivider( hwnd : hwnd; fPos : WPARAM; dw : LPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_SETHOTDIVIDER, fPos, dw)) -end; - - -{$ifdef ie5plus} -// Macro 30 -// #define Header_SetBitmapMargin(hwnd, iWidth) \ -// (int)SNDMSG((hwnd), HDM_SETBITMAPMARGIN, (WPARAM)(iWidth), 0) - -Function Header_SetBitmapMargin( hwnd : hwnd; iWidth : WPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_SETBITMAPMARGIN, iWidth, 0)) -end; - - -// Macro 31 -// #define Header_GetBitmapMargin(hwnd) \ -// (int)SNDMSG((hwnd), HDM_GETBITMAPMARGIN, 0, 0) - -Function Header_GetBitmapMargin( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_GETBITMAPMARGIN, 0, 0)) -end; - -{$ENDIF} - -// Macro 32 -// #define Header_SetUnicodeFormat(hwnd, fUnicode) \ -// (BOOL)SNDMSG((hwnd), HDM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -Function Header_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), HDM_SETUNICODEFORMAT, fUnicode, 0)); -end; - - -// Macro 33 -// #define Header_GetUnicodeFormat(hwnd) \ -// (BOOL)SNDMSG((hwnd), HDM_GETUNICODEFORMAT, 0, 0) - -Function Header_GetUnicodeFormat( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), HDM_GETUNICODEFORMAT, 0, 0)) -end; - - -{$ifdef IE5plus} -// Macro 34 -// #define Header_SetFilterChangeTimeout(hwnd, i) \ -// (int)SNDMSG((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (LPARAM)(i)) - -Function Header_SetFilterChangeTimeout( hwnd : hwnd; i : LPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_SETFILTERCHANGETIMEOUT, 0, (i))) -end; - - -// Macro 35 -// #define Header_EditFilter(hwnd, i, fDiscardChanges) \ -// (int)SNDMSG((hwnd), HDM_EDITFILTER, (WPARAM)(i), MAKELPARAM(fDiscardChanges, 0)) - -Function Header_EditFilter( hwnd : hwnd; i : WPARAM; fDiscardChanges :cint ):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_EDITFILTER, (i), MAKELPARAM(fDiscardChanges, 0))); -end; - - -// Macro 36 -// #define Header_ClearFilter(hwnd, i) \ -// (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)(i), 0) - -Function Header_ClearFilter( hwnd : hwnd; i : WPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, (i), 0)) -end; - - -// Macro 37 -// #define Header_ClearAllFilters(hwnd) \ -// (int)SNDMSG((hwnd), HDM_CLEARFILTER, (WPARAM)-1, 0) - -Function Header_ClearAllFilters( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), HDM_CLEARFILTER, WPARAM(-1), 0)) -end; -{$endif} -{$ifdef win32vista} -// macro 37a ..37d -function Header_GetOverflowRect( hwnd : hwnd; lprc:lprect):bool; -begin - result:=bool(sendmessage(hwnd, HDM_GETOVERFLOWRECT, 0, LPARAM(lprc))); -end; - -function Header_GetFocusedItem(hwnd : hwnd):cint; -begin - Result:=cint(SendMessage((hwnd), HDM_GETFOCUSEDITEM, WPARAM(0), LPARAM(0))); -end; - -function Header_SetFocusedItem(hwnd:hwnd; iItem:cint):BOOL; -begin - result:=bool(sendmessage(hwnd, HDM_SETFOCUSEDITEM, WPARAM(0),LPARAM(iItem))); -end; -function Header_GetItemDropDownRect(hwnd : hwnd;iItem:cint; lprc:lprect):bool; -begin - result:=bool(sendmessage(hwnd, HDM_GETITEMDROPDOWNRECT, WPARAM(iItem), LPARAM(lprc))); -end; -{$endif} - -// Macro 38 -// #define ListView_SetUnicodeFormat(hwnd, fUnicode) \ -// (BOOL)SNDMSG((hwnd), LVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -Function ListView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETUNICODEFORMAT, fUnicode, 0)); -end; - - -// Macro 39 -// #define ListView_GetUnicodeFormat(hwnd) \ -// (BOOL)SNDMSG((hwnd), LVM_GETUNICODEFORMAT, 0, 0) - -Function ListView_GetUnicodeFormat( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETUNICODEFORMAT, 0, 0)) -end; - - -// Macro 40 -// #define ListView_GetBkColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), LVM_GETBKCOLOR, 0, LPARAM(0)) - -Function ListView_GetBkColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), LVM_GETBKCOLOR, 0, LPARAM(0))) -end; - - -// Macro 41 -// #define ListView_SetBkColor(hwnd, clrBk) \ -// (BOOL)SNDMSG((hwnd), LVM_SETBKCOLOR, 0, (LPARAM)(COLORREF)(clrBk)) - -Function ListView_SetBkColor( hwnd : hwnd; clrBk : COLORREF):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETBKCOLOR, 0, clrBk)) -end; - - -// Macro 42 -// #define ListView_GetImageList(hwnd, iImageList) \ -// (HIMAGELIST)SNDMSG((hwnd), LVM_GETIMAGELIST, (WPARAM)(INT)(iImageList), DWord(0)) - -Function ListView_GetImageList( hwnd : hwnd; iImageList : CINT):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), LVM_GETIMAGELIST, iImageList, LPARAM(0))) -end; - - -// Macro 43 -// #define ListView_SetImageList(hwnd, himl, iImageList) \ -// (HIMAGELIST)SNDMSG((hwnd), LVM_SETIMAGELIST, (WPARAM)(iImageList), (LPARAM)(HIMAGELIST)(himl)) - -Function ListView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImageList : WPARAM):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), LVM_SETIMAGELIST, iImageList, himl)) -end; - - -// Macro 44 -// #define ListView_GetItemCount(hwnd) \ -// (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, DWord(0)) - -Function ListView_GetItemCount( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_GETITEMCOUNT, 0, LPARAM(0))) -end; - - -// Macro 45 -// #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) - -// Macro 46 -// #define ListView_GetItem(hwnd, pitem) \ -// (BOOL)SNDMSG((hwnd), LVM_GETITEM, 0, (LPARAM)(LV_ITEM *)(pitem)) - -Function ListView_GetItem( hwnd : hwnd;var pitem : LV_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETITEM, 0, LPARAM(@pitem))) -end; - - -// Macro 47 -// #define ListView_SetItem(hwnd, pitem) \ -// (BOOL)SNDMSG((hwnd), LVM_SETITEM, 0, (LPARAM)(const LV_ITEM *)(pitem)) - -Function ListView_SetItem( hwnd : hwnd;const pitem : LV_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETITEM, 0, LPARAM(@pitem))) -end; - - -// Macro 48 -// #define ListView_InsertItem(hwnd, pitem) \ -// (int)SNDMSG((hwnd), LVM_INSERTITEM, 0, (LPARAM)(const LV_ITEM *)(pitem)) - -Function ListView_InsertItem( hwnd : hwnd;Const pitem : LV_ITEM ):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_INSERTITEM, 0, LPARAM(@pitem))) -end; - - -// Macro 49 -// #define ListView_DeleteItem(hwnd, i) \ -// (BOOL)SNDMSG((hwnd), LVM_DELETEITEM, (WPARAM)(int)(i), DWord(0)) - -Function ListView_DeleteItem( hwnd : hwnd; i : cint):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_DELETEITEM, (i), LPARAM(0))) -end; - - -// Macro 50 -// #define ListView_DeleteAllItems(hwnd) \ -// (BOOL)SNDMSG((hwnd), LVM_DELETEALLITEMS, 0, DWord(0)) - -Function ListView_DeleteAllItems( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_DELETEALLITEMS, 0, LPARAM(0))) -end; - - -// Macro 51 -// #define ListView_GetCallbackMask(hwnd) \ -// (BOOL)SNDMSG((hwnd), LVM_GETCALLBACKMASK, 0, 0) - -Function ListView_GetCallbackMask( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETCALLBACKMASK, 0, 0)) -end; - - -// Macro 52 -// #define ListView_SetCallbackMask(hwnd, mask) \ -// (BOOL)SNDMSG((hwnd), LVM_SETCALLBACKMASK, (WPARAM)(UINT)(mask), 0) - -Function ListView_SetCallbackMask( hwnd : hwnd; mask : UINT):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETCALLBACKMASK, mask, 0)) -end; - - -// Macro 53 -// #define ListView_GetNextItem(hwnd, i, flags) \ -// (int)SNDMSG((hwnd), LVM_GETNEXTITEM, (WPARAM)(int)(i), MAKELPARAM((flags), 0)) - -Function ListView_GetNextItem( hwnd : hwnd; i : cint; flags : cint):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_GETNEXTITEM, (i), MAKELPARAM((flags), 0))) -end; - - -// Macro 54 -// #define ListView_FindItem(hwnd, iStart, plvfi) \ -// (int)SNDMSG((hwnd), LVM_FINDITEM, (WPARAM)(int)(iStart), (LPARAM)(const LV_FINDINFO *)(plvfi)) - -Function ListView_FindItem( hwnd : hwnd; iStart : cint;const plvfi : LV_FINDINFO ):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_FINDITEM, iStart, LPARAM(@plvfi))) -end; - - -// Macro 55 -// #define ListView_GetItemRect(hwnd, i, prc, code) \ -// (BOOL)SNDMSG((hwnd), LVM_GETITEMRECT, (WPARAM)(int)(i), \ -// ((prc) ? (((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)) : (LPARAM)(RECT *)NULL)) - -Function ListView_GetItemRect( hwnd : hwnd; i : cint;var prc : TRect;code : cint):BOOL; -begin - if assigned(@prc) then - begin - prc.left:=Code; - Result:=BOOL(SendMessage(hWnd,LVM_GETITEMRECT,i,LPARAM(@prc))); - end - else - Result:=BOOL(SendMessage(hWnd,LVM_GETITEMRECT,i,0)); -end; - - -// Macro 56 -// #define ListView_SetItemPosition(hwndLV, i, x, y) \ -// (BOOL)SNDMSG((hwndLV), LVM_SETITEMPOSITION, (WPARAM)(int)(i), MAKELPARAM((x), (y))) - -Function ListView_SetItemPosition( hwndLV : hwnd; i : cint; x : cint ; y : cint ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_SETITEMPOSITION, (i), MAKELPARAM((x), (y)))) -end; - - -// Macro 57 -// #define ListView_GetItemPosition(hwndLV, i, ppt) \ -// (BOOL)SNDMSG((hwndLV), LVM_GETITEMPOSITION, (WPARAM)(int)(i), (LPARAM)(POINT *)(ppt)) - -Function ListView_GetItemPosition( hwndLV : hwnd; i : cint;var ppt : POINT ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_GETITEMPOSITION, (i), LPAram(@ppt))) -end; - -// Macro 58 -// #define ListView_GetStringWidth(hwndLV, psz) \ -// (int)SNDMSG((hwndLV), LVM_GETSTRINGWIDTH, 0, (LPARAM)(LPCTSTR)(psz)) - -Function ListView_GetStringWidth( hwndLV : hwnd; psz : LPCTSTR):cint; - -Begin - Result:=cint(SendMessage((hwndLV), LVM_GETSTRINGWIDTH, 0, LPARAM(psz))) -end; - - -// Macro 59 -// #define ListView_HitTest(hwndLV, pinfo) \ -// (int)SNDMSG((hwndLV), LVM_HITTEST, 0, (LPARAM)(LV_HITTESTINFO *)(pinfo)) - -Function ListView_HitTest( hwndLV : hwnd;var pinfo : LV_HITTESTINFO ):cint; - -Begin - Result:=cint(SendMessage((hwndLV), LVM_HITTEST, 0, LParam(@pinfo))) -end; - - -// Macro 60 -// #define ListView_EnsureVisible(hwndLV, i, fPartialOK) \ -// (BOOL)SNDMSG((hwndLV), LVM_ENSUREVISIBLE, (WPARAM)(int)(i), MAKELPARAM((fPartialOK), 0)) - -Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : cint ):BOOL;inline; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), MAKELPARAM((fPartialOK), 0))) -end; - - -Function ListView_EnsureVisible( hwndLV : hwnd; i : cint; fPartialOK : BOOL ):BOOL;inline; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_ENSUREVISIBLE, (i), LPARAM(fPartialOK))) -end; - - -// Macro 61 -// #define ListView_Scroll(hwndLV, dx, dy) \ -// (BOOL)SNDMSG((hwndLV), LVM_SCROLL, (WPARAM)(int)(dx), (LPARAM)(int)(dy)) - -Function ListView_Scroll( hwndLV : hwnd; dx : cint; dy : cint):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_SCROLL, dx, dy)) -end; - - -// Macro 62 -// #define ListView_RedrawItems(hwndLV, iFirst, iLast) \ -// (BOOL)SNDMSG((hwndLV), LVM_REDRAWITEMS, (WPARAM)(int)(iFirst), (LPARAM)(int)(iLast)) - -Function ListView_RedrawItems( hwndLV : hwnd; iFirst : cint; iLast : cint):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_REDRAWITEMS, iFirst, iLast)) -end; - - -// Macro 63 -// #define ListView_Arrange(hwndLV, code) \ -// (BOOL)SNDMSG((hwndLV), LVM_ARRANGE, (WPARAM)(UINT)(code), DWord(0)) - -Function ListView_Arrange( hwndLV : hwnd; code : UINT):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_ARRANGE, code, LPARAM(0))) -end; - - -// Macro 64 -// #define ListView_EditLabel(hwndLV, i) \ -// (HWND)SNDMSG((hwndLV), LVM_EDITLABEL, (WPARAM)(int)(i), DWord(0)) - -Function ListView_EditLabel( hwndLV : hwnd; i : cint):HWND; - -Begin - Result:=HWND(SendMessage((hwndLV), LVM_EDITLABEL, (i), LPARAM(0))) -end; - - -// Macro 65 -// #define ListView_GetEditControl(hwndLV) \ -// (HWND)SNDMSG((hwndLV), LVM_GETEDITCONTROL, 0, DWord(0)) - -Function ListView_GetEditControl( hwndLV : hwnd):HWND; - -Begin - Result:=HWND(SendMessage((hwndLV), LVM_GETEDITCONTROL, 0, LPARAM(0))) -end; - - -// Macro 66 -// #define ListView_GetColumn(hwnd, iCol, pcol) \ -// (BOOL)SNDMSG((hwnd), LVM_GETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(LV_COLUMN *)(pcol)) - -Function ListView_GetColumn( hwnd : hwnd; iCol : cint;var pcol : LV_COLUMN ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMN, iCol, LPARAM(@pcol))) -end; - - -// Macro 67 -// #define ListView_SetColumn(hwnd, iCol, pcol) \ -// (BOOL)SNDMSG((hwnd), LVM_SETCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol)) - -Function ListView_SetColumn( hwnd : hwnd; iCol : cint; Const pcol : LV_COLUMN ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMN, iCol, LPARAM(@pcol))) -end; - - -// Macro 68 -// #define ListView_InsertColumn(hwnd, iCol, pcol) \ -// (int)SNDMSG((hwnd), LVM_INSERTCOLUMN, (WPARAM)(int)(iCol), (LPARAM)(const LV_COLUMN *)(pcol)) - -Function ListView_InsertColumn( hwnd : hwnd; iCol : cint;const pcol : LV_COLUMN ):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_INSERTCOLUMN, iCol, LPARAM(@pcol))) -end; - - -// Macro 69 -// #define ListView_DeleteColumn(hwnd, iCol) \ -// (BOOL)SNDMSG((hwnd), LVM_DELETECOLUMN, (WPARAM)(int)(iCol), 0) - -Function ListView_DeleteColumn( hwnd : hwnd; iCol : cint):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_DELETECOLUMN, iCol, 0)) -end; - - -// Macro 70 -// #define ListView_GetColumnWidth(hwnd, iCol) \ -// (int)SNDMSG((hwnd), LVM_GETCOLUMNWIDTH, (WPARAM)(int)(iCol), 0) - -Function ListView_GetColumnWidth( hwnd : hwnd; iCol : cint):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_GETCOLUMNWIDTH, iCol, 0)) -end; - - -// Macro 71 -// #define ListView_SetColumnWidth(hwnd, iCol, cx) \ -// (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNWIDTH, (WPARAM)(int)(iCol), MAKELPARAM((cx), 0)) - -Function ListView_SetColumnWidth( hwnd : hwnd; iCol : cint; cx :cint ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNWIDTH, iCol, MAKELPARAM((cx), 0))) -end; - - -// Macro 72 -// #define ListView_GetHeader(hwnd)\ -// (HWND)SNDMSG((hwnd), LVM_GETHEADER, 0, DWord(0)) - -Function ListView_GetHeader( hwnd : hwnd):HWND; - -Begin - Result:=Windows.HWND(SendMessage((hwnd), LVM_GETHEADER, 0, LPARAM(0))); -end; - - -// Macro 73 -// #define ListView_CreateDragImage(hwnd, i, lpptUpLeft) \ -// (HIMAGELIST)SNDMSG((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft)) - -Function ListView_CreateDragImage( hwnd : hwnd; i : cint; lpptUpLeft : LPPOINT):HIMAGELIST;inline; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), LVM_CREATEDRAGIMAGE, WPARAM(i), LPARAM(lpptUpLeft))) -end; - -Function ListView_CreateDragImage( hwnd : hwnd; i : cint; const lpptUpLeft : POINT):HIMAGELIST;inline; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), LVM_CREATEDRAGIMAGE, WPARAM(i), LPARAM(@lpptUpLeft))) -end; - - -// Macro 74 -// #define ListView_GetViewRect(hwnd, prc) \ -// (BOOL)SNDMSG((hwnd), LVM_GETVIEWRECT, 0, (LPARAM)(RECT *)(prc)) - -Function ListView_GetViewRect( hwnd : hwnd;var prc : RECT ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETVIEWRECT, 0, LPARAM(@prc))) -end; - -// Macro 75 -// #define ListView_GetTextColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), LVM_GETTEXTCOLOR, 0, DWord(0)) - -Function ListView_GetTextColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTCOLOR, 0, LPARAM(0))) -end; - - -// Macro 76 -// #define ListView_SetTextColor(hwnd, clrText) \ -// (BOOL)SNDMSG((hwnd), LVM_SETTEXTCOLOR, 0, (LPARAM)(COLORREF)(clrText)) - -Function ListView_SetTextColor( hwnd : hwnd; clrText : COLORREF):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTCOLOR, 0, clrText)) -end; - - -// Macro 77 -// #define ListView_GetTextBkColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), LVM_GETTEXTBKCOLOR, 0, DWord(0)) - -Function ListView_GetTextBkColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), LVM_GETTEXTBKCOLOR, 0, LPARAM(0))) -end; - - -// Macro 78 -// #define ListView_SetTextBkColor(hwnd, clrTextBk) \ -// (BOOL)SNDMSG((hwnd), LVM_SETTEXTBKCOLOR, 0, (LPARAM)(COLORREF)(clrTextBk)) - -Function ListView_SetTextBkColor( hwnd : hwnd; clrTextBk : COLORREF):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETTEXTBKCOLOR, 0, clrTextBk)) -end; - - -// Macro 79 -// #define ListView_GetTopIndex(hwndLV) \ -// (int)SNDMSG((hwndLV), LVM_GETTOPINDEX, 0, 0) - -Function ListView_GetTopIndex( hwndLV : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwndLV), LVM_GETTOPINDEX, 0, 0)) -end; - - -// Macro 80 -// #define ListView_GetCountPerPage(hwndLV) \ -// (int)SNDMSG((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0) - -Function ListView_GetCountPerPage( hwndLV : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwndLV), LVM_GETCOUNTPERPAGE, 0, 0)) -end; - - -// Macro 81 -// -// #define ListView_GetOrigin(hwndLV, ppt) \ -// (BOOL)SNDMSG((hwndLV), LVM_GETORIGIN, (WPARAM)0, (LPARAM)(POINT *)(ppt)) - -Function ListView_GetOrigin( hwndLV : hwnd;var ppt : POINT ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_GETORIGIN, WPARAM(0), LPARAM(@ppt))) -end; - - -// Macro 82 -// #define ListView_Update(hwndLV, i) \ -// (BOOL)SNDMSG((hwndLV), LVM_UPDATE, (WPARAM)(i), DWord(0)) - -Function ListView_Update( hwndLV : hwnd; i : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_UPDATE, (i), LPARAM(0))) -end; - - -// Macro 83 -// #define ListView_SetItemState(hwndLV, i, data, mask) \ -// { LV_ITEM _ms_lvi;\ -// _ms_lvi.stateMask = mask;\ -// _ms_lvi.state = data;\ -// SNDMSG((hwndLV), LVM_SETITEMSTATE, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\ -// } - -Procedure ListView_SetItemState(hwndLV :hwnd; i :cint ;data,mask:UINT); - -Var _ms_lvi : LV_ITEM; - -Begin - _ms_lvi.stateMask:=mask; - _ms_lvi.state:=data; - SendMessage(hwndLV, LVM_SETITEMSTATE, i,LPARAM(@_ms_lvi)); -end; - - -// Macro 84 -// #define ListView_SetCheckState(hwndLV, i, fCheck) \ -// ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK) - -Procedure ListView_SetCheckState( hwndLV : hwnd; i : cint ; fCheck : BOOL ); - -var j:longint; -Begin - IF not fCheck Then // (or inc(longint(fCheck)) if you like it dirty) - j:=1 - Else - j:=2; -ListView_SetItemState(hwndLV, i, INDEXTOSTATEIMAGEMASK(j), LVIS_STATEIMAGEMASK); -end; - - -// Macro 85 -// #define ListView_GetItemState(hwndLV, i, mask) \ -// (UINT)SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), (LPARAM)(mask)) - -Function ListView_GetItemState( hwndLV : hwnd; i : WPARAM; mask : LPARAM):UINT; - -Begin - Result:=UINT(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), mask)) -end; - - -// Macro 86 -// #define ListView_GetCheckState(hwndLV, i) \ -// ((((UINT)(SNDMSG((hwndLV), LVM_GETITEMSTATE, (WPARAM)(i), LVIS_STATEIMAGEMASK))) >> 12) -1) - -Function ListView_GetCheckState( hwndLV : hwnd; i : WPARAM):UINT; - -Begin - Result:=(SendMessage((hwndLV), LVM_GETITEMSTATE, (i), LVIS_STATEIMAGEMASK) shl 12) -1; -end; - - -// Macro 87 -// #define ListView_GetItemText(hwndLV, i, iSubItem_, pszText_, cchTextMax_) \ -// { LV_ITEM _ms_lvi;\ -// _ms_lvi.iSubItem = iSubItem_;\ -// _ms_lvi.cchTextMax = cchTextMax_;\ -// _ms_lvi.pszText = pszText_;\ -// SNDMSG((hwndLV), LVM_GETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\ -// } - -Procedure ListView_GetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer;cchTextMax :cint); - -Var _ms_lvi : LV_ITEM; - -Begin - _ms_lvi.iSubItem := iSubItem; - _ms_lvi.cchTextMax := cchTextMax; - _ms_lvi.pszText := pszText; // unicode dependant! - SendMessage(hwndLV, LVM_GETITEMTEXT, i, LPARAM(@_ms_LVI)); -end; - - -// Macro 88 -// #define ListView_SetItemText(hwndLV, i, iSubItem_, pszText_) \ -// { LV_ITEM _ms_lvi;\ -// _ms_lvi.iSubItem = iSubItem_;\ -// _ms_lvi.pszText = pszText_;\ -// SNDMSG((hwndLV), LVM_SETITEMTEXT, (WPARAM)(i), (LPARAM)(LV_ITEM *)&_ms_lvi);\ -// } - -Procedure ListView_SetItemText(hwndLV:hwnd; i : WPARAM ;iSubItem : cint ;pszText : Pointer); - -Var _ms_lvi : LV_ITEM; - -Begin - _ms_lvi.iSubItem := iSubItem; - _ms_lvi.pszText := pszText; // unicode dependant! - SendMessage(hwndLV, LVM_SETITEMTEXT, i, LPARAM(@_ms_lvi)); -End; - -// Macro 89 -// #define ListView_SetItemCount(hwndLV, cItems) \ -// SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), 0) - -Procedure ListView_SetItemCount( hwndLV : hwnd; cItems : WPARAM); - -Begin - SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, 0) -end; - - -// Macro 90 -// #define ListView_SetItemCountEx(hwndLV, cItems, dwFlags) \ -// SNDMSG((hwndLV), LVM_SETITEMCOUNT, (WPARAM)(cItems), (LPARAM)(dwFlags)) - -Procedure ListView_SetItemCountEx( hwndLV : hwnd; cItems : WPARAM; dwFlags : LPARAM); - -Begin - SendMessage((hwndLV), LVM_SETITEMCOUNT, cItems, dwFlags) -end; - - -// Macro 91 -// #define ListView_SortItems(hwndLV, _pfnCompare, _lPrm) \ -// (BOOL)SNDMSG((hwndLV), LVM_SORTITEMS, (WPARAM)(LPARAM)(_lPrm), \ -// (LPARAM)(PFNLVCOMPARE)(_pfnCompare)) - -Function ListView_SortItems( hwndLV : hwnd;pfnCompare : PFNLVCOMPARE; lPrm : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMS, lPrm, LPARAM(@pfncompare))); -end; - - -// Macro 92 -// #define ListView_SetItemPosition32(hwndLV, i, x0, y0) \ -// { POINT ptNewPos; \ -// ptNewPos.x = x0; ptNewPos.y = y0; \ -// SNDMSG((hwndLV), LVM_SETITEMPOSITION32, (WPARAM)(int)(i), (LPARAM)&ptNewPos); \ -// } - -Procedure ListView_SetItemPosition32(hwndLV:hwnd; i:cint;x0,y0:long); - -Var ptNewPos:POINT; - -Begin - ptNewPos.X:=x0; ptNewPos.Y:=y0; - SendMessage(hwndlv, LVM_SETITEMPOSITION32, I,LPARAM(@ptNewPos)); -end; - - -// Macro 93 -// #define ListView_GetSelectedCount(hwndLV) \ -// (UINT)SNDMSG((hwndLV), LVM_GETSELECTEDCOUNT, 0, DWord(0)) - -Function ListView_GetSelectedCount( hwndLV : hwnd):UINT; - -Begin - Result:=SendMessage(hwndLV, LVM_GETSELECTEDCOUNT, 0, LPARAM(0)); -end; - -// Macro 94 -// #define ListView_GetItemSpacing(hwndLV, fSmall) \ -// (DWORD)SNDMSG((hwndLV), LVM_GETITEMSPACING, fSmall, DWord(0)) - -Function ListView_GetItemSpacing( hwndLV : hwnd; fSmall : cint ):DWORD; - -Begin - Result:=LPARAM(SendMessage((hwndLV), LVM_GETITEMSPACING, fSmall, LPARAM(0))); -end; - -// Macro 95 -// #define ListView_GetISearchString(hwndLV, lpsz) \ -// (BOOL)SNDMSG((hwndLV), LVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz)) - -Function ListView_GetISearchString( hwndLV : hwnd; lpsz : LPTSTR):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_GETISEARCHSTRING, 0, LPARAM(lpsz))) -end; - -// Macro 96 -// #define ListView_SetIconSpacing(hwndLV, cx, cy) \ -// (DWORD)SNDMSG((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy)) - -Function ListView_SetIconSpacing( hwndLV : hwnd; cx,cy : cint ):DWORD; - -Begin - Result:=DWORD(SendMessage((hwndLV), LVM_SETICONSPACING, 0, MAKELONG(cx,cy))) -end; - - -// Macro 97 -// #define ListView_SetExtendedListViewStyle(hwndLV, dw)\ -// (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw) - -Function ListView_SetExtendedListViewStyle( hwndLV : hwnd; dw :cint ):DWORD; - -Begin - Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw)) -end; - - -// Macro 98 -// #define ListView_SetExtendedListViewStyleEx(hwndLV, dwMask, dw)\ -// (DWORD)SNDMSG((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw) - -Function ListView_SetExtendedListViewStyleEx( hwndLV : hwnd; dwMask, dw : cint ):DWORD; - -Begin - Result:=DWORD(SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, dwMask, dw)) -end; - - -// Macro 99 -// #define ListView_GetExtendedListViewStyle(hwndLV)\ -// (DWORD)SNDMSG((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) - -Function ListView_GetExtendedListViewStyle( hwndLV : hwnd):DWORD; - -Begin - Result:=DWORD(SendMessage((hwndLV), LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0)) -end; - - -// Macro 100 -// #define ListView_GetSubItemRect(hwnd, iItem, iSubItem, code, prc) \ -// (BOOL)SNDMSG((hwnd), LVM_GETSUBITEMRECT, (WPARAM)(int)(iItem), \ -// ((prc) ? ((((LPRECT)(prc))->top = iSubItem), (((LPRECT)(prc))->left = code), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL)) - -Function ListView_GetSubItemRect( hwnd : hwnd; iItem : cint;iSubItem, code :cint ;prc:LPRECT):BOOL; - -VAR LastParam : LPRECT; -Begin - if prc<>nil then - begin - prc^.top:=iSubItem; - prc^.left:=code; - lastparam:=prc; - end - else - lastparam:=nil; - Result:=bool(SendMessage((hwnd), LVM_GETSUBITEMRECT, iItem, LPARAM(lastparam))); -End; - -// Macro 101 -// #define ListView_SubItemHitTest(hwnd, plvhti) \ -// (int)SNDMSG((hwnd), LVM_SUBITEMHITTEST, 0, (LPARAM)(LPLVHITTESTINFO)(plvhti)) - -Function ListView_SubItemHitTest( hwnd : hwnd; plvhti : LPLVHITTESTINFO):cint; -Begin - Result:=cint(SendMessage((hwnd), LVM_SUBITEMHITTEST, 0, LParam(plvhti))) -end; - - -// Macro 102 -// #define ListView_SetColumnOrderArray(hwnd, iCount, pi) \ -// (BOOL)SNDMSG((hwnd), LVM_SETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi)) - -Function ListView_SetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETCOLUMNORDERARRAY, iCount, LPARAM(pi))); -end; - - -// Macro 103 -// #define ListView_GetColumnOrderArray(hwnd, iCount, pi) \ -// (BOOL)SNDMSG((hwnd), LVM_GETCOLUMNORDERARRAY, (WPARAM)(iCount), (LPARAM)(LPINT)(pi)) - -Function ListView_GetColumnOrderArray( hwnd : hwnd; iCount : WPARAM; pi : LPINT):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETCOLUMNORDERARRAY, iCount, LPARAM(pi))) -end; - - -// Macro 104 -// #define ListView_SetHotItem(hwnd, i) \ -// (int)SNDMSG((hwnd), LVM_SETHOTITEM, (WPARAM)(i), 0) - -Function ListView_SetHotItem( hwnd : hwnd; i : WPARAM):cint; -Begin - Result:=cint(SendMessage((hwnd), LVM_SETHOTITEM, (i), 0)) -end; - -// Macro 105 -// #define ListView_GetHotItem(hwnd) \ -// (int)SNDMSG((hwnd), LVM_GETHOTITEM, 0, 0) - -Function ListView_GetHotItem( hwnd : hwnd):cint; -Begin - Result:=cint(SendMessage((hwnd), LVM_GETHOTITEM, 0, 0)) -end; - -// Macro 106 -// #define ListView_SetHotCursor(hwnd, hcur) \ -// (HCURSOR)SNDMSG((hwnd), LVM_SETHOTCURSOR, 0, (LPARAM)(hcur)) - -Function ListView_SetHotCursor( hwnd : hwnd; hcur : LPARAM):HCURSOR; -Begin - Result:=HCURSOR(SendMessage((hwnd), LVM_SETHOTCURSOR, 0, hcur)) -end; - -// Macro 107 -// #define ListView_GetHotCursor(hwnd) \ -// (HCURSOR)SNDMSG((hwnd), LVM_GETHOTCURSOR, 0, 0) - -Function ListView_GetHotCursor( hwnd : hwnd):HCURSOR; -Begin - Result:=HCURSOR(SendMessage((hwnd), LVM_GETHOTCURSOR, 0, 0)) -end; - - -// Macro 108 -// #define ListView_ApproximateViewRect(hwnd, iWidth, iHeight, iCount) \ -// (DWORD)SNDMSG((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight)) - -Function ListView_ApproximateViewRect( hwnd : hwnd; iWidth, iHeight, iCount : cint ):DWORD; -Begin - Result:=DWORD(SendMessage((hwnd), LVM_APPROXIMATEVIEWRECT, iCount, MAKELPARAM(iWidth, iHeight))); -end; - - -// Macro 109 -// #define ListView_SetWorkAreas(hwnd, nWorkAreas, prc) \ -// (BOOL)SNDMSG((hwnd), LVM_SETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc)) - -Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL;inline; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, LPARAM(@prc))) -end; - - -Function ListView_SetWorkAreas( hwnd : hwnd; nWorkAreas : cint; prc : PRECT ):BOOL;inline; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETWORKAREAS, nWorkAreas, LPARAM(prc))) -end; - -// Macro 110 -// #define ListView_GetWorkAreas(hwnd, nWorkAreas, prc) \ -// (BOOL)SNDMSG((hwnd), LVM_GETWORKAREAS, (WPARAM)(int)(nWorkAreas), (LPARAM)(RECT *)(prc)) - -Function ListView_GetWorkAreas( hwnd : hwnd; nWorkAreas : cint;var prc : RECT ):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETWORKAREAS, nWorkAreas, LPARAM(@prc))) -end; - - -// Macro 111 -// #define ListView_GetNumberOfWorkAreas(hwnd, pnWorkAreas) \ -// (BOOL)SNDMSG((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, (LPARAM)(UINT *)(pnWorkAreas)) - -Function ListView_GetNumberOfWorkAreas( hwnd : hwnd;var pnWorkAreas : UINT ):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETNUMBEROFWORKAREAS, 0, LPARAM(@pnWorkAreas))) -end; - - -// Macro 112 -// #define ListView_GetSelectionMark(hwnd) \ -// (int)SNDMSG((hwnd), LVM_GETSELECTIONMARK, 0, 0) - -Function ListView_GetSelectionMark( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_GETSELECTIONMARK, 0, 0)) -end; - - -// Macro 113 -// #define ListView_SetSelectionMark(hwnd, i) \ -// (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)(i)) - -Function ListView_SetSelectionMark( hwnd : hwnd; i : LPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), LVM_SETSELECTIONMARK, 0, (i))) -end; - - -// Macro 114 -// #define ListView_SetHoverTime(hwndLV, dwHoverTimeMs)\ -// (DWORD)SNDMSG((hwndLV), LVM_SETHOVERTIME, 0, (LPARAM)(dwHoverTimeMs)) - -Function ListView_SetHoverTime( hwndLV : hwnd; dwHoverTimeMs : LPARAM):DWORD; - -Begin - Result:=DWORD(SendMessage((hwndLV), LVM_SETHOVERTIME, 0, dwHoverTimeMs)) -end; - - -// Macro 115 -// #define ListView_GetHoverTime(hwndLV)\ -// (DWORD)SNDMSG((hwndLV), LVM_GETHOVERTIME, 0, 0) - -Function ListView_GetHoverTime( hwndLV : hwnd):DWORD; - -Begin - Result:=DWORD(SendMessage((hwndLV), LVM_GETHOVERTIME, 0, 0)) -end; - - -// Macro 116 -// #define ListView_SetToolTips(hwndLV, hwndNewHwnd)\ -// (HWND)SNDMSG((hwndLV), LVM_SETTOOLTIPS, (WPARAM)(hwndNewHwnd), 0) - -Function ListView_SetToolTips( hwndLV : hwnd; hwndNewHwnd : WPARAM):HWND; - -Begin - Result:=HWND(SendMessage((hwndLV), LVM_SETTOOLTIPS, hwndNewHwnd, 0)) -end; - - -// Macro 117 -// #define ListView_GetToolTips(hwndLV)\ -// (HWND)SNDMSG((hwndLV), LVM_GETTOOLTIPS, 0, 0) - -Function ListView_GetToolTips( hwndLV : hwnd):HWND; - -Begin - Result:=HWND(SendMessage((hwndLV), LVM_GETTOOLTIPS, 0, 0)) -end; - - -// Macro 118 -// #define ListView_SortItemsEx(hwndLV, _pfnCompare, _lPrm) \ -// (BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare)) - -Function ListView_SortItemsEx( hwndLV : hwnd; _pfnCompare : PFNLVCOMPARE; _lPrm : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_SORTITEMSEX, _lPrm, LPAram(@_pfnCompare))) -end; - -{$ifdef win32xp} -// Macro 119 -// #define ListView_SetSelectedColumn(hwnd, iCol) \ -// SNDMSG((hwnd), LVM_SETSELECTEDCOLUMN, (WPARAM)iCol, 0) - -Procedure ListView_SetSelectedColumn( hwnd : hwnd; iCol : WPARAM); - -Begin - SendMessage((hwnd), LVM_SETSELECTEDCOLUMN, iCol, 0) -end; - -// Macro 120 -// #define ListView_SetTileWidth(hwnd, cpWidth) \ -// SNDMSG((hwnd), LVM_SETTILEWIDTH, (WPARAM)cpWidth, 0) - -Procedure ListView_SetTileWidth( hwnd : hwnd; cpWidth : WPARAM); - -Begin - SendMessage((hwnd), LVM_SETTILEWIDTH, cpWidth, 0) -end; - - -// Macro 121 -// #define ListView_SetView(hwnd, iView) \ -// (DWORD)SNDMSG((hwnd), LVM_SETVIEW, (WPARAM)(DWORD)iView, 0) - -Function ListView_SetView( hwnd : hwnd; iView : DWORD):DWORD; - -Begin - Result:=DWORD(SendMessage((hwnd), LVM_SETVIEW, iView, 0)) -end; - - -// Macro 122 -// #define ListView_GetView(hwnd) \ -// (DWORD)SNDMSG((hwnd), LVM_GETVIEW, 0, 0) - -Function ListView_GetView( hwnd : hwnd):DWORD; -Begin - Result:=DWORD(SendMessage((hwnd), LVM_GETVIEW, 0, 0)) -end; - - -// Macro 123 -// #define ListView_InsertGroup(hwnd, index, pgrp) \ -// SNDMSG((hwnd), LVM_INSERTGROUP, (WPARAM)index, (LPARAM)pgrp) - -Procedure ListView_InsertGroup( hwnd : hwnd; index : WPARAM; pgrp : LPARAM); -Begin - SendMessage((hwnd), LVM_INSERTGROUP, index, pgrp) -end; - - -// Macro 124 -// #define ListView_SetGroupInfo(hwnd, iGroupId, pgrp) \ -// SNDMSG((hwnd), LVM_SETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp) - -Procedure ListView_SetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM); -Begin - SendMessage((hwnd), LVM_SETGROUPINFO, iGroupId, pgrp) -end; - - -// Macro 125 -// #define ListView_GetGroupInfo(hwnd, iGroupId, pgrp) \ -// SNDMSG((hwnd), LVM_GETGROUPINFO, (WPARAM)iGroupId, (LPARAM)pgrp) - -Procedure ListView_GetGroupInfo( hwnd : hwnd; iGroupId : WPARAM; pgrp : LPARAM); -Begin - SendMessage((hwnd), LVM_GETGROUPINFO, iGroupId, pgrp) -end; - - -// Macro 126 -// #define ListView_RemoveGroup(hwnd, iGroupId) \ -// SNDMSG((hwnd), LVM_REMOVEGROUP, (WPARAM)iGroupId, 0) - -Procedure ListView_RemoveGroup( hwnd : hwnd; iGroupId : WPARAM); -Begin - SendMessage((hwnd), LVM_REMOVEGROUP, iGroupId, 0) -end; - - -// Macro 127 -// #define ListView_MoveGroup(hwnd, iGroupId, toIndex) \ -// SNDMSG((hwnd), LVM_MOVEGROUP, (WPARAM)iGroupId, (LPARAM)toIndex) - -Procedure ListView_MoveGroup( hwnd : hwnd; iGroupId : WPARAM; toIndex : LPARAM); -Begin - SendMessage((hwnd), LVM_MOVEGROUP, iGroupId, toIndex) -end; - - -// Macro 128 -// #define ListView_MoveItemToGroup(hwnd, idItemFrom, idGroupTo) \ -// SNDMSG((hwnd), LVM_MOVEITEMTOGROUP, (WPARAM)idItemFrom, (LPARAM)idGroupTo) - -Procedure ListView_MoveItemToGroup( hwnd : hwnd; idItemFrom : WPARAM; idGroupTo : LPARAM); - -Begin - SendMessage((hwnd), LVM_MOVEITEMTOGROUP, idItemFrom, idGroupTo) -end; - - -// Macro 129 -// #define ListView_SetGroupMetrics(hwnd, pGroupMetrics) \ -// SNDMSG((hwnd), LVM_SETGROUPMETRICS, 0, (LPARAM)pGroupMetrics) - -Procedure ListView_SetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM); - -Begin - SendMessage((hwnd), LVM_SETGROUPMETRICS, 0, pGroupMetrics) -end; - - -// Macro 130 -// #define ListView_GetGroupMetrics(hwnd, pGroupMetrics) \ -// SNDMSG((hwnd), LVM_GETGROUPMETRICS, 0, (LPARAM)pGroupMetrics) - -Procedure ListView_GetGroupMetrics( hwnd : hwnd; pGroupMetrics : LPARAM); - -Begin -SendMessage((hwnd), LVM_GETGROUPMETRICS, 0, pGroupMetrics) -end; - - -// Macro 131 -// #define ListView_EnableGroupView(hwnd, fEnable) \ -// SNDMSG((hwnd), LVM_ENABLEGROUPVIEW, (WPARAM)fEnable, 0) - -Procedure ListView_EnableGroupView( hwnd : hwnd; fEnable : WPARAM); - -Begin - SendMessage((hwnd), LVM_ENABLEGROUPVIEW, fEnable, 0) -end; - - -// Macro 132 -// #define ListView_SortGroups(hwnd, _pfnGroupCompate, _plv) \ -// SNDMSG((hwnd), LVM_SORTGROUPS, (WPARAM)_pfnGroupCompate, (LPARAM)_plv) - -Procedure ListView_SortGroups( hwnd : hwnd; _pfnGroupCompate : WPARAM; _plv : LPARAM); - -Begin - SendMessage((hwnd), LVM_SORTGROUPS, _pfnGroupCompate, _plv) -end; - -// Macro 133 -// #define ListView_InsertGroupSorted(hwnd, structInsert) \ -// SNDMSG((hwnd), LVM_INSERTGROUPSORTED, (WPARAM)structInsert, 0) - -Procedure ListView_InsertGroupSorted( hwnd : hwnd; structInsert : WPARAM); - -Begin - SendMessage((hwnd), LVM_INSERTGROUPSORTED, structInsert, 0) -end; - - -// Macro 134 -// #define ListView_RemoveAllGroups(hwnd) \ -// SNDMSG((hwnd), LVM_REMOVEALLGROUPS, 0, 0) - -Procedure ListView_RemoveAllGroups( hwnd : hwnd); - -Begin -SendMessage((hwnd), LVM_REMOVEALLGROUPS, 0, 0) -end; - - -// Macro 135 -// #define ListView_HasGroup(hwnd, dwGroupId) \ -// SNDMSG((hwnd), LVM_HASGROUP, dwGroupId, 0) - -Procedure ListView_HasGroup( hwnd : hwnd; dwGroupId :DWORD ); - -Begin - SendMessage((hwnd), LVM_HASGROUP, dwGroupId, 0) -end; - - -// Macro 136 -// #define ListView_SetTileViewInfo(hwnd, ptvi) \ -// SNDMSG((hwnd), LVM_SETTILEVIEWINFO, 0, (LPARAM)ptvi) - -Procedure ListView_SetTileViewInfo( hwnd : hwnd; ptvi : LPARAM); - -Begin - SendMessage((hwnd), LVM_SETTILEVIEWINFO, 0, ptvi) -end; - - -// Macro 137 -// #define ListView_GetTileViewInfo(hwnd, ptvi) \ -// SNDMSG((hwnd), LVM_GETTILEVIEWINFO, 0, (LPARAM)ptvi) - -Procedure ListView_GetTileViewInfo( hwnd : hwnd; ptvi : LPARAM); - -Begin - SendMessage((hwnd), LVM_GETTILEVIEWINFO, 0, ptvi) -end; - - -// Macro 138 -// #define ListView_SetTileInfo(hwnd, pti) \ -// SNDMSG((hwnd), LVM_SETTILEINFO, 0, (LPARAM)pti) - -Procedure ListView_SetTileInfo( hwnd : hwnd; pti : LPARAM); - -Begin - SendMessage((hwnd), LVM_SETTILEINFO, 0, pti) -end; - - -// Macro 139 -// #define ListView_GetTileInfo(hwnd, pti) \ -// SNDMSG((hwnd), LVM_GETTILEINFO, 0, (LPARAM)pti) - -Procedure ListView_GetTileInfo( hwnd : hwnd; pti : LPARAM); - -Begin - SendMessage((hwnd), LVM_GETTILEINFO, 0, pti) -end; - - -// Macro 140 -// #define ListView_SetInsertMark(hwnd, lvim) \ -// (BOOL)SNDMSG((hwnd), LVM_SETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim)) - -Function ListView_SetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETINSERTMARK, 0, lvim)); -end; - - -// Macro 141 -// #define ListView_GetInsertMark(hwnd, lvim) \ -// (BOOL)SNDMSG((hwnd), LVM_GETINSERTMARK, (WPARAM) 0, (LPARAM) (lvim)) - -Function ListView_GetInsertMark( hwnd : hwnd; lvim : lparam ):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETINSERTMARK, WPARAM (0), LPARAM (lvim))); -end; - - -// Macro 142 -// #define ListView_InsertMarkHitTest(hwnd, point, lvim) \ -// (int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim)) - -Function ListView_InsertMarkHitTest( hwnd : hwnd; point : LPPOINT; lvim : LPLVINSERTMARK):cint; -Begin - Result:=cint(SendMessage((hwnd), LVM_INSERTMARKHITTEST, wparam(point), lparam(lvim))); -end; - - -// Macro 143 -// #define ListView_GetInsertMarkRect(hwnd, rc) \ -// (int)SNDMSG((hwnd), LVM_GETINSERTMARKRECT, (WPARAM)0, (LPARAM)(LPRECT)(rc)) - -Function ListView_GetInsertMarkRect( hwnd : hwnd; rc : LPRECT):cint; -Begin - Result:=cint(SendMessage((hwnd), LVM_GETINSERTMARKRECT, WPARAM(0), LPARAM(rc))) -end; - - -// Macro 144 -// #define ListView_SetInsertMarkColor(hwnd, color) \ -// (COLORREF)SNDMSG((hwnd), LVM_SETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color)) - -Function ListView_SetInsertMarkColor( hwnd : hwnd; color : COLORREF):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), LVM_SETINSERTMARKCOLOR, WPARAM(0), color)); -end; - -// Macro 145 -// #define ListView_GetInsertMarkColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), LVM_GETINSERTMARKCOLOR, (WPARAM)0, (LPARAM)0) - -Function ListView_GetInsertMarkColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), LVM_GETINSERTMARKCOLOR, WPARAM(0), LPARAM(0))); -end; - -// Macro 146 -// #define ListView_SetInfoTip(hwndLV, plvInfoTip)\ -// (BOOL)SNDMSG((hwndLV), LVM_SETINFOTIP, (WPARAM)0, (LPARAM)plvInfoTip) - -Function ListView_SetInfoTip( hwndLV : hwnd; plvInfoTip : LPARAM):BOOL; -Begin - Result:=BOOL(SendMessage((hwndLV), LVM_SETINFOTIP, WPARAM(0), plvInfoTip)); -end; - -// Macro 147 -// #define ListView_GetSelectedColumn(hwnd) \ -// (UINT)SNDMSG((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0) - -Function ListView_GetSelectedColumn( hwnd : hwnd):UINT; -Begin - Result:=UINT(SendMessage((hwnd), LVM_GETSELECTEDCOLUMN, 0, 0)); -end; - -// Macro 148 -// #define ListView_IsGroupViewEnabled(hwnd) \ -// (BOOL)SNDMSG((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0) - -Function ListView_IsGroupViewEnabled( hwnd : hwnd):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_ISGROUPVIEWENABLED, 0, 0)); -end; - -// Macro 149 -// #define ListView_GetOutlineColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), LVM_GETOUTLINECOLOR, 0, 0) - -Function ListView_GetOutlineColor( hwnd : hwnd):COLORREF; -Begin - Result:=COLORREF(SendMessage((hwnd), LVM_GETOUTLINECOLOR, 0, 0)); -end; - - -// Macro 150 -// #define ListView_SetOutlineColor(hwnd, color) \ -// (COLORREF)SNDMSG((hwnd), LVM_SETOUTLINECOLOR, (WPARAM)0, (LPARAM)(COLORREF)(color)) - -Function ListView_SetOutlineColor( hwnd : hwnd; color : COLORREF):COLORREF; -Begin - Result:=COLORREF(SendMessage((hwnd), LVM_SETOUTLINECOLOR, WPARAM(0), color)); -end; - -// Macro 151 -// #define ListView_CancelEditLabel(hwnd) \ -// (VOID)SNDMSG((hwnd), LVM_CANCELEDITLABEL, (WPARAM)0, (LPARAM)0) - -procedure ListView_CancelEditLabel( hwnd : hwnd); -Begin - SendMessage((hwnd), LVM_CANCELEDITLABEL, WPARAM(0), LPARAM(0)); -end; - -// Macro 152 -// #define ListView_MapIndexToID(hwnd, index) \ -// (UINT)SNDMSG((hwnd), LVM_MAPINDEXTOID, (WPARAM)index, (LPARAM)0) - -Function ListView_MapIndexToID( hwnd : hwnd; index : WPARAM):UINT; - -Begin - Result:=UINT(SendMessage((hwnd), LVM_MAPINDEXTOID, index, LPARAM(0))); -end; - -// Macro 153 -// #define ListView_MapIDToIndex(hwnd, id) \ -// (UINT)SNDMSG((hwnd), LVM_MAPIDTOINDEX, (WPARAM)id, (LPARAM)0) - -Function ListView_MapIDToIndex( hwnd : hwnd; id : WPARAM):UINT; -Begin - Result:=UINT(SendMessage((hwnd), LVM_MAPIDTOINDEX, id, LPARAM(0))); -end; - -function ListView_IsItemVisible(hwnd:hwnd; aindex:cuint):cuint; -begin - Result:=UINT(SendMessage((hwnd),LVM_ISITEMVISIBLE, WPARAM(aindex), LPARAM(0))); -end; -{$ENDIF} - -{$ifdef win32vista} - -function ListView_SetGroupHeaderImageList(hwnd:HWNd;himl:HIMAGELIST):HIMAGELIST; -begin - Result:=HIMAGELIST(SendMessage((hwnd),LVM_SETIMAGELIST, WPARAM(LVSIL_GROUPHEADER), LPARAM(HIMAGELIST((himl))))); -end; - -function ListView_GetGroupHeaderImageList(hwnd:HWND):HIMAGELIST; -begin - Result:=HIMAGELIST(SendMessage((hwnd),LVM_GETIMAGELIST, WPARAM(LVSIL_GROUPHEADER),LPARAM(0))); -end; - -function ListView_GetEmptyText(hwnd:HWND;pszText:LPWSTR; cchText:CUINT):BOOL; -begin - Result:=BOOL(SendMessage((hwnd),LVM_GETEMPTYTEXT, WPARAM(cchText), LPARAM(pszText))); -end; - -function ListView_GetFooterRect(hwnd:HWND; prc:PRECT):BOOL; -begin - Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERRECT, WPARAM(0), LPARAM(prc))); -end; - -function ListView_GetFooterInfo(hwnd:HWND;plvfi: LPLVFOOTERINFO ):BOOL; -begin - Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERINFO, WPARAM(0), LPARAM(plvfi))); -end; - -function ListView_GetFooterItemRect(hwnd:HWND;iItem:CUINT;prc:PRECT):BOOL; -begin - Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERITEMRECT, WPARAM(iItem), LPARAM(prc))); -end; - -function ListView_GetFooterItem(hwnd:HWND;iItem:CUINT; pfi:PLVFOOTERITEM):BOOL; -begin - Result:=BOOL(SendMessage((hwnd),LVM_GETFOOTERITEM, WPARAM(iItem), LPARAM(pfi))); -end; - -// (hwnd), LVM_GETITEMINDEXRECT, (WPARAM)(LVITEMINDEX*)(plvii), \ -// ((prc) ? ((((LPRECT)(prc))->top = (iSubItem)), (((LPRECT)(prc))->left = (code)), (LPARAM)(prc)) : (LPARAM)(LPRECT)NULL)) - -function ListView_GetItemIndexRect(hwnd:hwnd; plvii:PLVITEMINDEX; iSubItem:clong; code:clong; prc:LPRECT) :BOOL; -begin - if assigned(prc) then - begin - prc^.top:=iSubItem; - prc^.left:=code; - end; - Result:=BOOL(SendMessage((hwnd), LVM_GETITEMINDEXRECT, WPARAM(pLVITEMINDEX(plvii)), LPARAM(PRC))); -end; - -function ListView_SetItemIndexState(hwndLV:HWND; plvii:PLVITEMINDEX; data:CUINT; mask:CUINT):HRESULT; - var macro_lvi: LV_ITEM ; -begin - macro_lvi.stateMask := (mask); - macro_lvi.state := (data); - Result:=HRESULT(SendMessage((hwndLV),LVM_SETITEMINDEXSTATE, WPARAM(pLVITEMINDEX(plvii)), LPARAM(PLV_ITEM(@macro_lvi)))); -end; - -function ListView_GetNextItemIndex(hwnd:HWND;plvii:PLVITEMINDEX; flags:LPARAM):BOOL; -begin - Result:=BOOL(SendMessage((hwnd),LVM_GETNEXTITEMINDEX, WPARAM(pLVITEMINDEX(plvii)), MAKELPARAM(flags, 0))); -end; -{$endif} - -// Macro 154 -// #define ListView_SetBkImage(hwnd, plvbki) \ -// (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki)) - -Function ListView_SetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_SETBKIMAGE, 0, plvbki)); -end; - -// Macro 155 -// #define ListView_GetBkImage(hwnd, plvbki) \ -// (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki)) - -Function ListView_GetBkImage( hwnd : hwnd; plvbki : LPARAM):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), LVM_GETBKIMAGE, 0, plvbki)); -end; - -// Macro 156 -// #define TreeView_InsertItem(hwnd, lpis) \ -// (HTREEITEM)SNDMSG((hwnd), TVM_INSERTITEM, 0, (LPARAM)(LPTV_INSERTSTRUCT)(lpis)) - -Function TreeView_InsertItem( hwnd : hwnd; lpis : LPTV_INSERTSTRUCT):HTREEITEM;inline; -Begin - Result:=HTREEITEM(SendMessage((hwnd), TVM_INSERTITEM, 0, LPARAM(lpis))); -end; - - -Function TreeView_InsertItem( hwnd : hwnd; const lpis : TV_INSERTSTRUCT):HTREEITEM;inline; -Begin - Result:=HTREEITEM(SendMessage((hwnd), TVM_INSERTITEM, 0, LPARAM(@lpis))); -end; - -// Macro 157 -// #define TreeView_DeleteItem(hwnd, hitem) \ -// (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)(HTREEITEM)(hitem)) - -Function TreeView_DeleteItem( hwnd : hwnd; hitem : HTREEITEM):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(hitem))); -end; - - -// Macro 158 -// #define TreeView_DeleteAllItems(hwnd) \ -// (BOOL)SNDMSG((hwnd), TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT) - -Function TreeView_DeleteAllItems( hwnd : hwnd):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), TVM_DELETEITEM, 0, LPARAM(HTREEITEM(TVI_ROOT)))); -end; - - -// Macro 159 -// #define TreeView_Expand(hwnd, hitem, code) \ -// (BOOL)SNDMSG((hwnd), TVM_EXPAND, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -Function TreeView_Expand( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), TVM_EXPAND, code, lparam(hitem))) -end; - - -// Macro 160 -// #define TreeView_GetItemRect(hwnd, hitem, prc, code) \ -// (*(HTREEITEM *)prc = (hitem), (BOOL)SNDMSG((hwnd), TVM_GETITEMRECT, (WPARAM)(code), (LPARAM)(RECT *)(prc))) - -Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; code : WPARAM; prc : pRECT):BOOL;inline; -Begin - HTREEITEM(prc):=HITEM; - Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, code, LPARAM(prc))); -end; - -Function TreeView_GetItemRect( hwnd : hwnd; hitem: HTREEITEM; var prc : TRECT;code : Bool):BOOL;inline; -Begin - HTREEITEM(Pointer(@prc)^):=HITEM; - Result:=Bool(SendMessage((hwnd), TVM_GETITEMRECT, WPARAM(code), LPARAM(@prc))); -end; - -// Macro 161 -// #define TreeView_GetCount(hwnd) \ -// (UINT)SNDMSG((hwnd), TVM_GETCOUNT, 0, 0) - -Function TreeView_GetCount( hwnd : hwnd):UINT; -Begin - Result:=UINT(SendMessage((hwnd), TVM_GETCOUNT, 0, 0)) -end; - -// Macro 162 -// #define TreeView_GetIndent(hwnd) \ -// (UINT)SNDMSG((hwnd), TVM_GETINDENT, 0, 0) - -Function TreeView_GetIndent( hwnd : hwnd):UINT; -Begin - Result:=UINT(SendMessage((hwnd), TVM_GETINDENT, 0, 0)) -end; - - -// Macro 163 -// #define TreeView_SetIndent(hwnd, indent) \ -// (BOOL)SNDMSG((hwnd), TVM_SETINDENT, (WPARAM)(indent), 0) - -Function TreeView_SetIndent( hwnd : hwnd; indent : WPARAM):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SETINDENT, indent, 0)) -end; - - -// Macro 164 -// #define TreeView_GetImageList(hwnd, iImage) \ -// (HIMAGELIST)SNDMSG((hwnd), TVM_GETIMAGELIST, iImage, 0) - -Function TreeView_GetImageList( hwnd : hwnd; iImage : cint ):HIMAGELIST; -Begin - Result:=HIMAGELIST(SendMessage((hwnd), TVM_GETIMAGELIST, iImage, 0)) -end; - - -// Macro 165 -// #define TreeView_SetImageList(hwnd, himl, iImage) \ -// (HIMAGELIST)SNDMSG((hwnd), TVM_SETIMAGELIST, iImage, (LPARAM)(HIMAGELIST)(himl)) - -Function TreeView_SetImageList( hwnd : hwnd; himl : HIMAGELIST; iImage : cint ):HIMAGELIST; -Begin - Result:=HIMAGELIST(SendMessage((hwnd), TVM_SETIMAGELIST, iImage, himl)) -end; - -// Macro 166 -// #define TreeView_GetNextItem(hwnd, hitem, code) \ -// (HTREEITEM)SNDMSG((hwnd), TVM_GETNEXTITEM, (WPARAM)(code), (LPARAM)(HTREEITEM)(hitem)) - -Function TreeView_GetNextItem( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):HTREEITEM; - -Begin - Result:=HTREEITEM(SendMessage((hwnd), TVM_GETNEXTITEM, code, lparam(hitem))) -end; - - -// Macro 167 - -function TreeView_GetChild(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM; - -Begin - Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD) -End; -// Macro 168 - -// #define TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM); -// (hwnd, hitem) -// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT) - - - -function TreeView_GetNextSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM; -// (hwnd, hitem) -// TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT) - -Begin - Result:=TreeView_getNextItem(hwnd,hitem,TVGN_NEXT); -end; - -// Macro 169 -function TreeView_GetPrevSibling(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM; -begin - Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS); -end; - -// Macro 170 - -function TreeView_GetParent(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM; -begin - Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT) -end; - -// Macro 171 -// #define TreeView_GetFirstVisible(hwnd:hwnd); -// TreeView_GetNextItem(hwnd, NULL, TVGN_FIRSTVISIBLE) - -function TreeView_GetFirstVisible(hwnd:hwnd) : HTREEITEM;inline; -begin - Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_FIRSTVISIBLE) -end; - -// Macro 172 - -//#define TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM); -//(hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE) -function TreeView_GetNextVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -begin - Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE) -end; - -// Macro 173 -//#define TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM); -// (hwnd, hitem) TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE) - - -function TreeView_GetPrevVisible(hwnd:hwnd; hitem:HTREEITEM) : HTREEITEM;inline; -Begin - Result:=TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE); -end; - -// Macro 174 - -function TreeView_GetSelection(hwnd:hwnd) : HTREEITEM;inline; -begin - Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_CARET); -end; - -// Macro 175 - -//#define TreeView_GetDropHilight(hwnd:hwnd); -//TreeView_GetNextItem(hwnd, NULL, TVGN_DROPHILITE) - -function TreeView_GetDropHilight(hwnd:hwnd) : HTREEITEM;inline; - -begin - Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_DROPHILITE); -end; - -function TreeView_GetDropHilite(hwnd:hwnd) : HTREEITEM;inline; - -begin - Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_DROPHILITE); -end; - - -// Macro 176 - -function TreeView_GetRoot(hwnd:hwnd) : HTREEITEM;inline; - -begin - Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_ROOT); -end; - -// Macro 177 -//#define TreeView_GetLastVisible(hwnd:hwnd); -//TreeView_GetNextItem(hwnd, NULL, TVGN_LASTVISIBLE) - -function TreeView_GetLastVisible(hwnd:hwnd) : HTREEITEM;inline; -begin - Result:=TreeView_GetNextItem(hwnd, NIL, TVGN_LASTVISIBLE) -end; - -// Macro 178 - - -Function TreeView_Select( hwnd : hwnd; hitem : HTREEITEM; code : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SELECTITEM, code, LPARAM(hitem))) -end; - -// Macro 179 -// #define TreeView_SelectItem(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_CARET) -// Macro 180 -// #define TreeView_SelectDropTarget(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_DROPHILITE) -// Macro 181 -// #define TreeView_SelectSetFirstVisible(hwnd, hitem) TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE) - -// Macro 179 -Procedure TreeView_SelectItem(hwnd:hwnd; hitem:HTREEITEM); -Begin - TreeView_Select(hwnd, hitem, TVGN_CARET) -End; - -// Macro 180 -Procedure TreeView_SelectDropTarget(hwnd:hwnd; hitem:HTREEITEM); -Begin - TreeView_Select(hwnd, hitem, TVGN_DROPHILITE) -End; - -// Macro 181 -Procedure TreeView_SelectSetFirstVisible(hwnd:hwnd; hitem:HTREEITEM); -Begin - TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE) -End; - -// Macro 182 -// #define TreeView_GetItem(hwnd, pitem) \ -// (BOOL)SNDMSG((hwnd), TVM_GETITEM, 0, (LPARAM)(TV_ITEM *)(pitem)) - -Function TreeView_GetItem( hwnd : hwnd;var pitem : TV_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_GETITEM, 0, LPARAM(@pitem))) -end; - - -// Macro 183 - -//#define TreeView_SetItem(hwnd, pitem) \ -// (BOOL)SNDMSG((hwnd), TVM_SETITEM, 0, (LPARAM)(const TV_ITEM *)(pitem)) - -Function TreeView_SetItem( hwnd : hwnd;const pitem : TV_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SETITEM, 0, LParam(@pitem))) -end; - - -// Macro 184 - -//#define TreeView_EditLabel(hwnd, hitem) \ -// (HWND)SNDMSG((hwnd), TVM_EDITLABEL, 0, (LPARAM)(HTREEITEM)(hitem)) - -Function TreeView_EditLabel( hwnd : hwnd; hitem : HTREEITEM):HWND; - -Begin - Result:=Windows.HWND(SendMessage((hwnd), TVM_EDITLABEL, 0, LParam(hitem))) -end; - - -// Macro 185 - -//#define TreeView_GetEditControl(hwnd) \ -// (HWND)SNDMSG((hwnd), TVM_GETEDITCONTROL, 0, 0) - -Function TreeView_GetEditControl( hwnd : hwnd):HWND; - -Begin - Result:=Windows.HWND(SendMessage((hwnd), TVM_GETEDITCONTROL, 0, 0)) -end; - - -// Macro 186 - -//#define TreeView_GetVisibleCount(hwnd) \ -// (UINT)SNDMSG((hwnd), TVM_GETVISIBLECOUNT, 0, 0) - -Function TreeView_GetVisibleCount( hwnd : hwnd):UINT; - -Begin - Result:=UINT(SendMessage((hwnd), TVM_GETVISIBLECOUNT, 0, 0)) -end; - - -// Macro 187 - -//#define TreeView_HitTest(hwnd, lpht) \ -// (HTREEITEM)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht)) - -Function TreeView_HitTest( hwnd : hwnd; lpht : LPTV_HITTESTINFO):HTREEITEM;inline; - -Begin - Result:=HTREEITEM(SendMessage((hwnd), TVM_HITTEST, 0, lparam(lpht))) -end; - - -Function TreeView_HitTest( hwnd : hwnd; var lpht : TV_HITTESTINFO):HTREEITEM;inline; - -Begin - Result:=HTREEITEM(SendMessage((hwnd), TVM_HITTEST, 0, lparam(@lpht))) -end; -// Macro 188 - -//#define TreeView_CreateDragImage(hwnd, hitem) \ -// (HIMAGELIST)SNDMSG((hwnd), TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HTREEITEM)(hitem)) - -Function TreeView_CreateDragImage( hwnd : hwnd; hitem : HTREEITEM):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), TVM_CREATEDRAGIMAGE, 0, Lparam(hitem))) -end; - - -// Macro 189 - -//#define TreeView_SortChildren(hwnd, hitem, recurse) \ -// (BOOL)SNDMSG((hwnd), TVM_SORTCHILDREN, (WPARAM)(recurse), (LPARAM)(HTREEITEM)(hitem)) - -Function TreeView_SortChildren( hwnd : hwnd; hitem : HTREEITEM; recurse : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDREN, recurse, LParam(hitem))) -end; - - -// Macro 190 - -//#define TreeView_EnsureVisible(hwnd, hitem) \ -// (BOOL)SNDMSG((hwnd), TVM_ENSUREVISIBLE, 0, (LPARAM)(HTREEITEM)(hitem)) - -Function TreeView_EnsureVisible( hwnd : hwnd; hitem : HTREEITEM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_ENSUREVISIBLE, 0, LParam(hitem))) -end; - - -// Macro 191 - -//#define TreeView_SortChildrenCB(hwnd, psort, recurse) \ -// (BOOL)SNDMSG((hwnd), TVM_SORTCHILDRENCB, (WPARAM)(recurse), \ -// (LPARAM)(LPTV_SORTCB)(psort)) - -Function TreeView_SortChildrenCB( hwnd : hwnd;psort :lpTV_sortcb; recurse : WPARAM):BOOL;inline; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDRENCB, recurse, LPARAM(psort))) -end; - - -Function TreeView_SortChildrenCB( hwnd : hwnd;const psort :tagTVsortcb; recurse : WPARAM):BOOL;inline; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SORTCHILDRENCB, recurse, LPARAM(@psort))) -end; - - -// Macro 192 - -//#define TreeView_EndEditLabelNow(hwnd, fCancel) \ -// (BOOL)SNDMSG((hwnd), TVM_ENDEDITLABELNOW, (WPARAM)(fCancel), 0) - -Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : WPARAM):BOOL;inline; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, fCancel, 0)) -end; - - -Function TreeView_EndEditLabelNow( hwnd : hwnd; fCancel : Bool):BOOL;inline; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_ENDEDITLABELNOW, WPARAM(fCancel), 0)) -end; - - -// Macro 193 - -//#define TreeView_SetToolTips(hwnd, hwndTT) \ -// (HWND)SNDMSG((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0) - -Function TreeView_SetToolTips( hwnd : hwnd; hwndTT : WPARAM):HWND; - -Begin - Result:=Windows.HWND(SendMessage((hwnd), TVM_SETTOOLTIPS, hwndTT, 0)) -end; - - -// Macro 194 - -//#define TreeView_GetToolTips(hwnd) \ -// (HWND)SNDMSG((hwnd), TVM_GETTOOLTIPS, 0, 0) - -Function TreeView_GetToolTips( hwnd : hwnd):HWND; - -Begin - Result:=Windows.HWND(SendMessage((hwnd), TVM_GETTOOLTIPS, 0, 0)) -end; - - -// Macro 195 - -//#define TreeView_GetISearchString(hwndTV, lpsz) \ -// (BOOL)SNDMSG((hwndTV), TVM_GETISEARCHSTRING, 0, (LPARAM)(LPTSTR)(lpsz)) - -Function TreeView_GetISearchString( hwndTV : hwnd; lpsz : LPTSTR):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndTV), TVM_GETISEARCHSTRING, 0, LPARAM(lpsz))) -end; - - -// Macro 196 - -//#define TreeView_SetInsertMark(hwnd, hItem, fAfter) \ -// (BOOL)SNDMSG((hwnd), TVM_SETINSERTMARK, (WPARAM) (fAfter), (LPARAM) (hItem)) - -Function TreeView_SetInsertMark( hwnd : hwnd; hItem : LParam ; fAfter : WParam ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SETINSERTMARK, (fAfter), (hItem))) -end; - - -// Macro 197 - -//#define TreeView_SetUnicodeFormat(hwnd, fUnicode) \ -// (BOOL)SNDMSG((hwnd), TVM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -Function TreeView_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_SETUNICODEFORMAT, fUnicode, 0)) -end; - - -// Macro 198 - -//#define TreeView_GetUnicodeFormat(hwnd) \ -// (BOOL)SNDMSG((hwnd), TVM_GETUNICODEFORMAT, 0, 0) - -Function TreeView_GetUnicodeFormat( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TVM_GETUNICODEFORMAT, 0, 0)) -end; - - -// Macro 199 - -//#define TreeView_SetItemHeight(hwnd, iHeight) \ -// (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)(iHeight), 0) - -Function TreeView_SetItemHeight( hwnd : hwnd; iHeight : WPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), TVM_SETITEMHEIGHT, iHeight, 0)) -end; - - -// Macro 200 - -//#define TreeView_GetItemHeight(hwnd) \ -// (int)SNDMSG((hwnd), TVM_GETITEMHEIGHT, 0, 0) - -Function TreeView_GetItemHeight( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), TVM_GETITEMHEIGHT, 0, 0)) -end; - - -// Macro 201 - -//#define TreeView_SetBkColor(hwnd, clr) \ -// (COLORREF)SNDMSG((hwnd), TVM_SETBKCOLOR, 0, (LPARAM)(clr)) - -Function TreeView_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_SETBKCOLOR, 0, clr)) -end; - - -// Macro 202 - -//#define TreeView_SetTextColor(hwnd, clr) \ -// (COLORREF)SNDMSG((hwnd), TVM_SETTEXTCOLOR, 0, (LPARAM)(clr)) - -Function TreeView_SetTextColor( hwnd : hwnd; clr : LPARAM):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_SETTEXTCOLOR, 0, clr)) -end; - - -// Macro 203 - -//#define TreeView_GetBkColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), TVM_GETBKCOLOR, 0, 0) - -Function TreeView_GetBkColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_GETBKCOLOR, 0, 0)) -end; - - -// Macro 204 - -//#define TreeView_GetTextColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), TVM_GETTEXTCOLOR, 0, 0) - -Function TreeView_GetTextColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_GETTEXTCOLOR, 0, 0)) -end; - - -// Macro 205 - -//#define TreeView_SetScrollTime(hwnd, uTime) \ -// (UINT)SNDMSG((hwnd), TVM_SETSCROLLTIME, uTime, 0) - -Function TreeView_SetScrollTime( hwnd : hwnd; uTime : wparam ):UINT; - -Begin - Result:=UINT(SendMessage((hwnd), TVM_SETSCROLLTIME, uTime, 0)) -end; - - -// Macro 206 - -//#define TreeView_GetScrollTime(hwnd) \ -// (UINT)SNDMSG((hwnd), TVM_GETSCROLLTIME, 0, 0) - -Function TreeView_GetScrollTime( hwnd : hwnd):UINT; - -Begin - Result:=UINT(SendMessage((hwnd), TVM_GETSCROLLTIME, 0, 0)) -end; - - -// Macro 207 - -//#define TreeView_SetInsertMarkColor(hwnd, clr) \ -// (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(clr)) - -Function TreeView_SetInsertMarkColor( hwnd : hwnd; clr : LPARAM):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_SETINSERTMARKCOLOR, 0, clr)) -end; - - -// Macro 208 - -//#define TreeView_GetInsertMarkColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0) - -Function TreeView_GetInsertMarkColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_GETINSERTMARKCOLOR, 0, 0)) -end; - - -// Macro 209 - -//#define TreeView_SetItemState(hwndTV, hti, data, _mask) \ -// { TVITEM _ms_TVi;\ -// _ms_TVi.mask = TVIF_STATE; \ -// _ms_TVi.hItem = hti; \ -// _ms_TVi.stateMask = _mask;\ -// _ms_TVi.state = data;\ -// SNDMSG((hwndTV), TVM_SETITEM, 0, (LPARAM)(TV_ITEM *)&_ms_TVi);\ -// } - -Procedure TreeView_SetItemState(hwndTV:HWND;hti:HTreeItem;data:UINT;_mask:UINT); - -var _ms_TVi : TVITEM; - -Begin - _ms_TVi.mask:=TVIF_STATE; - _ms_TVi.hItem := hti; - _ms_TVi.stateMask := _mask; - _ms_TVi.state := data; - SendMessage(hwndTV,TVM_SETITEM, 0, LPARAM(@_ms_TVi)); -end; - - -// Macro 210 - -//#define TreeView_SetCheckState(hwndTV, hti, fCheck) \ -// TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK((fCheck)?2:1), TVIS_STATEIMAGEMASK) - -Procedure TreeView_SetCheckState( hwndTV : hwnd; hti : HTreeItem ; fCheck : bool ); - -var j : cint; - -Begin - IF not fCheck Then // (or inc(longint(fCheck)) if you like it dirty) - j:=1 - Else - j:=2; - - TreeView_SetItemState(hwndTV, hti, INDEXTOSTATEIMAGEMASK(j), TVIS_STATEIMAGEMASK) -end; - - -{$ifdef IE5plus} -// Macro 211 - -//#define TreeView_GetItemState(hwndTV, hti, mask) \ -// (UINT)SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), (LPARAM)(mask)) - -Function TreeView_GetItemState( hwndTV : hwnd; hti : WPARAM; mask : LPARAM):UINT; - -Begin - Result:=UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, mask)) -end; - - - -// Macro 212 -// #define TreeView_GetCheckState(hwndTV, hti) \ -// ((((UINT)(SNDMSG((hwndTV), TVM_GETITEMSTATE, (WPARAM)(hti), TVIS_STATEIMAGEMASK))) >> 12) -1) - -Function TreeView_GetCheckState( hwndTV : hwnd; hti : WPARAM):UINT; - -Begin - Result:=((UINT(SendMessage((hwndTV), TVM_GETITEMSTATE, hti, TVIS_STATEIMAGEMASK) shr 12) -1)); -end; - - -// Macro 213 - -// #define TreeView_SetLineColor(hwnd, clr) \ -// (COLORREF)SNDMSG((hwnd), TVM_SETLINECOLOR, 0, (LPARAM)(clr)) - -Function TreeView_SetLineColor( hwnd : hwnd; clr : LPARAM):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_SETLINECOLOR, 0, clr)) -end; - - -// Macro 214 - -// #define TreeView_GetLineColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), TVM_GETLINECOLOR, 0, 0) - -Function TreeView_GetLineColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), TVM_GETLINECOLOR, 0, 0)) -end; - - -// Macro 215 -// #define TreeView_MapAccIDToHTREEITEM(hwnd, id) \ -// (HTREEITEM)SNDMSG((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0) - -Function TreeView_MapAccIDToHTREEITEM( hwnd : hwnd; id :uint):HTREEITEM; - -Begin - Result:=HTREEITEM(SendMessage((hwnd), TVM_MAPACCIDTOHTREEITEM, id, 0)) -end; - - -// Macro 216 -// #define TreeView_MapHTREEITEMToAccID(hwnd, htreeitem) \ -// (UINT)SNDMSG((hwnd), TVM_MAPHTREEITEMTOACCID, (WPARAM)htreeitem, 0) - -Function TreeView_MapHTREEITEMToAccID( hwnd : hwnd; htreeitem : WPARAM):UINT; - -Begin - Result:=UINT(SendMessage((hwnd), TVM_MAPHTREEITEMTOACCID, htreeitem, 0)) -end; -{$endif} - -{$ifdef win32vista} -function TreeView_GetSelectedCount(hwnd:hwnd):DWORD; -Begin - Result:=DWORD(SendMessage((hwnd),TVM_GETSELECTEDCOUNT, 0, 0)); -end; - -function TreeView_ShowInfoTip(hwnd:HWND; hitem:HTREEITEM):DWORD; -Begin - Result:=DWORD(SendMessage((hwnd),TVM_SHOWINFOTIP, 0, LPARAM(hitem))); -end; - -function TreeView_GetItemPartRect(hwnd:HWND; hitem:HTREEITEM; prc:prect; partid:TVITEMPART):bool; -var info : TVGETITEMPARTRECTINFO; -Begin - info.hti := (hitem); - info.prc := (prc); - info.partID := (partid); - Result:=BOOL(SendMessage((hwnd), TVM_GETITEMPARTRECT, 0, LPARAM(@info))); -end; -{$endif} - -// Macro 217 - -//#define TabCtrl_GetImageList(hwnd) \ -// (HIMAGELIST)SNDMSG((hwnd), TCM_GETIMAGELIST, 0, DWord(0)) - -Function TabCtrl_GetImageList( hwnd : hwnd):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), TCM_GETIMAGELIST, 0, LPARAM(0))) -end; - - -// Macro 218 - -//#define TabCtrl_SetImageList(hwnd, himl) \ -// (HIMAGELIST)SNDMSG((hwnd), TCM_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)(himl)) - -Function TabCtrl_SetImageList( hwnd : hwnd; himl : HIMAGELIST):HIMAGELIST; - -Begin - Result:=HIMAGELIST(SendMessage((hwnd), TCM_SETIMAGELIST, 0, himl)) -end; - - -// Macro 219 - -//#define TabCtrl_GetItemCount(hwnd) \ -// (int)SNDMSG((hwnd), TCM_GETITEMCOUNT, 0, DWord(0)) - -Function TabCtrl_GetItemCount( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), TCM_GETITEMCOUNT, 0, LPARAM(0))) -end; - - -// Macro 220 - -//#define TabCtrl_GetItem(hwnd, iItem, pitem) \ -// (BOOL)SNDMSG((hwnd), TCM_GETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem)) - -Function TabCtrl_GetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_GETITEM, iItem, LPARAM(@pitem))) -end; - - -// Macro 221 - -//#define TabCtrl_SetItem(hwnd, iItem, pitem) \ -// (BOOL)SNDMSG((hwnd), TCM_SETITEM, (WPARAM)(int)(iItem), (LPARAM)(TC_ITEM *)(pitem)) - -Function TabCtrl_SetItem( hwnd : hwnd; iItem : cint;var pitem : TC_ITEM ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_SETITEM, iItem, LPARAM(@pitem))) -end; - - -// Macro 222 - -//#define TabCtrl_InsertItem(hwnd, iItem, pitem) \ -// (int)SNDMSG((hwnd), TCM_INSERTITEM, (WPARAM)(int)(iItem), (LPARAM)(const TC_ITEM *)(pitem)) - -Function TabCtrl_InsertItem( hwnd : hwnd; iItem : cint;const pitem : TC_ITEM ):cint; - -Begin - Result:=cint(SendMessage((hwnd), TCM_INSERTITEM, iItem, LPARAM(@pitem))); -end; - - -// Macro 223 - -//#define TabCtrl_DeleteItem(hwnd, i) \ -// (BOOL)SNDMSG((hwnd), TCM_DELETEITEM, (WPARAM)(int)(i), DWord(0)) - -Function TabCtrl_DeleteItem( hwnd : hwnd; i : cint):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_DELETEITEM, (i), LPARAM(0))) -end; - - -// Macro 224 - -//#define TabCtrl_DeleteAllItems(hwnd) \ -// (BOOL)SNDMSG((hwnd), TCM_DELETEALLITEMS, 0, DWord(0)) - -Function TabCtrl_DeleteAllItems( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_DELETEALLITEMS, 0, LPARAM(0))) -end; - - -// Macro 225 - -//#define TabCtrl_GetItemRect(hwnd, i, prc) \ -// (BOOL)SNDMSG((hwnd), TCM_GETITEMRECT, (WPARAM)(int)(i), (LPARAM)(RECT *)(prc)) - -Function TabCtrl_GetItemRect( hwnd : hwnd; i : cint;var prc : RECT ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_GETITEMRECT, (i), LPARAM(@prc))) -end; - - -// Macro 226 - -//#define TabCtrl_GetCurSel(hwnd) \ -// (int)SNDMSG((hwnd), TCM_GETCURSEL, 0, 0) - -Function TabCtrl_GetCurSel( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), TCM_GETCURSEL, 0, 0)) -end; - - -// Macro 227 - -//#define TabCtrl_SetCurSel(hwnd, i) \ -// (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)(i), 0) - -Function TabCtrl_SetCurSel( hwnd : hwnd; i : WPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), TCM_SETCURSEL, (i), 0)) -end; - - -// Macro 228 - -//#define TabCtrl_HitTest(hwndTC, pinfo) \ -// (int)SNDMSG((hwndTC), TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO *)(pinfo)) - -Function TabCtrl_HitTest( hwndTC : hwnd;var pinfo : TC_HITTESTINFO ):cint;inline; - -Begin - Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, LPARAM(@pinfo))) -end; - - -Function TabCtrl_HitTest( hwndTC : hwnd;pinfo : LPTCHITTESTINFO ):cint;inline; - -Begin - Result:=cint(SendMessage((hwndTC), TCM_HITTEST, 0, LPARAM(@pinfo))) -end; - - -// Macro 229 - -//#define TabCtrl_SetItemExtra(hwndTC, cb) \ -// (BOOL)SNDMSG((hwndTC), TCM_SETITEMEXTRA, (WPARAM)(cb), DWord(0)) - -Function TabCtrl_SetItemExtra( hwndTC : hwnd; cb : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwndTC), TCM_SETITEMEXTRA, cb, LPARAM(0))) -end; - - -// Macro 230 - -//#define TabCtrl_AdjustRect(hwnd, bLarger, prc) \ -// (int)SNDMSG(hwnd, TCM_ADJUSTRECT, (WPARAM)(BOOL)(bLarger), (LPARAM)(RECT *)prc) - -Function TabCtrl_AdjustRect( hwnd : hwnd; bLarger : BOOL;var prc : RECT ):cint; - -Begin - Result:=cint(SendMessage(hwnd, TCM_ADJUSTRECT, Wparam(bLarger), Lparam(@prc))); -end; - - -// Macro 231 - -//#define TabCtrl_SetItemSize(hwnd, x, y) \ -// (DWORD)SNDMSG((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y)) - -Function TabCtrl_SetItemSize( hwnd : hwnd; x : wparam ; y : lparam ):DWORD; - -Begin - Result:=DWORD(SendMessage((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y))) -end; - - -// Macro 232 - -//#define TabCtrl_RemoveImage(hwnd, i) \ -// (void)SNDMSG((hwnd), TCM_REMOVEIMAGE, i, DWord(0)) - -Procedure TabCtrl_RemoveImage( hwnd : hwnd; i : WPARAM); - -Begin -SendMessage((hwnd), TCM_REMOVEIMAGE, i, LPARAM(0)) -end; - - -// Macro 233 - -//#define TabCtrl_SetPadding(hwnd, cx, cy) \ -// (void)SNDMSG((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy)) - -Procedure TabCtrl_SetPadding( hwnd : hwnd; cx : WPARAM ; cy : LPARAM ); - -Begin -SendMessage((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy)) -end; - - -// Macro 234 - -//#define TabCtrl_GetRowCount(hwnd) \ -// (int)SNDMSG((hwnd), TCM_GETROWCOUNT, 0, DWord(0)) - -Function TabCtrl_GetRowCount( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), TCM_GETROWCOUNT, 0, LPARAM(0))) -end; - - -// Macro 235 - -//#define TabCtrl_GetToolTips(hwnd) \ -// (HWND)SNDMSG((hwnd), TCM_GETTOOLTIPS, 0, DWord(0)) - -Function TabCtrl_GetToolTips( hwnd : hwnd):HWND; - -Begin - Result:=Windows.HWND(SendMessage((hwnd), TCM_GETTOOLTIPS, 0, LPARAM(0))) -end; - - -// Macro 236 - -//#define TabCtrl_SetToolTips(hwnd, hwndTT) \ -// (void)SNDMSG((hwnd), TCM_SETTOOLTIPS, (WPARAM)(hwndTT), DWord(0)) - -Procedure TabCtrl_SetToolTips( hwnd : hwnd; hwndTT : WPARAM); - -Begin -SendMessage((hwnd), TCM_SETTOOLTIPS, hwndTT, LPARAM(0)) -end; - - -// Macro 237 - -//#define TabCtrl_GetCurFocus(hwnd) \ -// (int)SNDMSG((hwnd), TCM_GETCURFOCUS, 0, 0) - -Function TabCtrl_GetCurFocus( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), TCM_GETCURFOCUS, 0, 0)) -end; - - -// Macro 238 - -//#define TabCtrl_SetCurFocus(hwnd, i) \ -// SNDMSG((hwnd),TCM_SETCURFOCUS, i, 0) - -Procedure TabCtrl_SetCurFocus( hwnd : hwnd; i : LPARAM ); - -Begin -SendMessage((hwnd),TCM_SETCURFOCUS, i, 0) -end; - - -// Macro 239 - -//#define TabCtrl_SetMinTabWidth(hwnd, x) \ -// (int)SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x) - -Function TabCtrl_SetMinTabWidth( hwnd : hwnd; x : WPARAM ):cint; - -Begin - Result:=cint(SendMessage((hwnd), TCM_SETMINTABWIDTH, 0, x)) -end; - - -// Macro 240 - -//#define TabCtrl_DeselectAll(hwnd, fExcludeFocus)\ -// (void)SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0) - -Procedure TabCtrl_DeselectAll( hwnd : hwnd; fExcludeFocus : WPARAM ); - -Begin -SendMessage((hwnd), TCM_DESELECTALL, fExcludeFocus, 0) -end; - - -// Macro 241 - -//#define TabCtrl_HighlightItem(hwnd, i, fHighlight) \ -// (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)(i), (LPARAM)MAKELONG (fHighlight, 0)) - -Function TabCtrl_HighlightItem( hwnd : hwnd; i : WPARAM; fHighlight :bool ):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_HIGHLIGHTITEM, (i), LPARAM(MAKELONG (cint(fHighlight), 0)))) -end; - - -// Macro 242 - -//#define TabCtrl_SetExtendedStyle(hwnd, dw)\ -// (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw) - -Function TabCtrl_SetExtendedStyle( hwnd : hwnd; dw : LPARAM):DWORD; - -Begin - Result:=DWORD(SendMessage((hwnd), TCM_SETEXTENDEDSTYLE, 0,lparam(dw))) -end; - - -// Macro 243 - -//#define TabCtrl_GetExtendedStyle(hwnd)\ -// (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0) - -Function TabCtrl_GetExtendedStyle( hwnd : hwnd):DWORD; - -Begin - Result:=DWORD(SendMessage((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0)) -end; - - -// Macro 244 - -//#define TabCtrl_SetUnicodeFormat(hwnd, fUnicode) \ -// (BOOL)SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -Function TabCtrl_SetUnicodeFormat( hwnd : hwnd; fUnicode : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_SETUNICODEFORMAT, fUnicode, 0)) -end; - - -// Macro 245 - -//#define TabCtrl_GetUnicodeFormat(hwnd) \ -// (BOOL)SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0) - -Function TabCtrl_GetUnicodeFormat( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), TCM_GETUNICODEFORMAT, 0, 0)); -end; - - -// Macro 246 - -//#define Animate_Create(hwndP, id, dwStyle, hInstance) \ -// CreateWindow(ANIMATE_CLASS, NULL, \ -// dwStyle, 0, 0, 0, 0, hwndP, (HMENU)(id), hInstance, NULL) - -Function Animate_Create(hwndP :HWND;id:HMENU;dwStyle:dword;hInstance:HINST):HWND; - -Begin - result:=CreateWindow(ANIMATE_CLASS, NIL, - dwStyle, 0, 0, 0, 0, hwndP, id, hInstance, NIL); -end; - - -// Macro 247 -//#define Animate_Open(hwnd, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, 0, (LPARAM)(LPTSTR)(szName)) - -Function Animate_Open(hwndP :HWND;szName:LPTSTR):BOOL; - -Begin - Result:=BOOL(SendMessage(hwndp, ACM_OPEN, 0, LPARAM(szName))); -end; - - -// Macro 248 -//#define Animate_OpenEx(hwnd, hInst, szName) (BOOL)SNDMSG(hwnd, ACM_OPEN, (WPARAM)(hInst), (LPARAM)(LPTSTR)(szName)) - -Function Animate_OpenEx(hwndP :HWND;HInst:HInst; szName:LPTSTR):BOOL; - -Begin - Result:=BOOL(SendMessage(hwndp, ACM_OPEN, hinst, LPARAM(szName))); -end; - - -// Macro 249 -//#define Animate_Play(hwnd, from, to, rep) (BOOL)SNDMSG(hwnd, ACM_PLAY, (WPARAM)(rep), (LPARAM)MAKELONG(from, to)) - -Function Animate_Play(hwndP :HWND;from,_to,rep:uint):BOOL; - -Begin - Result:=BOOL(SendMessage(hwndP, ACM_PLAY, wparam(rep), LPARAM(MAKELONG(From,_to)))); -end; - - -// Macro 250 -//#define Animate_Stop(hwnd) (BOOL)SNDMSG(hwnd, ACM_STOP, 0, 0) - -Function Animate_stop(hwndP :HWND):BOOL; - -Begin - Result:=BOOL(SendMessage(hwndP, ACM_STOP, 0, 0)); -end; - - -// Macro 251 -//#define Animate_Close(hwnd) Animate_Open(hwnd, NULL) - -Function Animate_close(hwndP :HWND):BOOL; - -Begin - Result:=BOOL(Animate_Open(hwndP,NIL)); -end; - - -// Macro 252 -//#define Animate_Seek(hwnd, frame) Animate_Play(hwnd, frame, frame, 1) - -Function Animate_Seek(hwndP :HWND;frame:uint):BOOL; - -Begin - Result:=BOOL(Animate_Play(hwndP,frame,frame,1)); -end; - -// Macro 253 -//#define MonthCal_GetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst)) - -function MonthCal_GetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETCURSEL , 0, LPARAM(lpsystime))); -end; - -// Macro 254 -//#define MonthCal_SetCurSel(hmc, pst) (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst)) - -function MonthCal_SetCurSel(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; inline; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_SETCURSEL, 0, LPARAM(lpsystime))); -end; - -function MonthCal_SetCurSel(hwndMC:HWND; var lpSysTime :SYSTEMTIME):Bool; inline; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_SETCURSEL, 0, LPARAM(@lpsystime))); -end; - -// Macro 255 -//#define MonthCal_GetMaxSelCount(hmc) (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, DWord(0)) - -function MonthCal_GetMaxSelCount(hwndMC:HWND):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETMAXSELCOUNT, 0, LPARAM(0))); -end; - -// Macro 256 -//#define MonthCal_SetMaxSelCount(hmc, n) (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), DWord(0)) - -function MonthCal_SetMaxSelCount(hwndMC:HWND;n:uint):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_SETMAXSELCOUNT,WPARAM(N), LPARAM(0))); -end; - -// Macro 257 -//#define MonthCal_GetSelRange(hmc, rgst) SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst)) - -function MonthCal_GetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETSELRANGE,WPARAM(0), LPARAM(lpsystime))); -end; - -// Macro 258 -//#define MonthCal_SetSelRange(hmc, rgst) SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst)) - -function MonthCal_SetSelRange(hwndMC:HWND; lpSysTime :LPSYSTEMTIME):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_SETSELRANGE,WPARAM(0), LPARAM(lpsystime))); -end; - - -// Macro 259 -//#define MonthCal_GetMonthRange(hmc, gmr, rgst) (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst)) - -function MonthCal_GetMonthRange(hwndMC:HWND; gmr: DWORD;lpSysTime :LPSYSTEMTIME):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETMONTHRANGE,WPARAM(gmr), LPARAM(lpsystime))); -end; - -// Macro 260 -//#define MonthCal_SetDayState(hmc, cbds, rgds) SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds)) - -function MonthCal_SetDayState(hwndMC:HWND; gmr: Longint;lpDay :LPMONTHDAYSTATE):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_SETDAYSTATE,WPARAM(gmr), LPARAM(lpDay))); -end; - -// Macro 261 -// #define MonthCal_GetMinReqRect(hmc, prc) SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc)) - -function MonthCal_GetMinReqRect(hwndMC:HWND; lpr :LPRect):Bool;inline; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETMINREQRECT,0, LPARAM(lpr))); -end; - -function MonthCal_GetMinReqRect(hwndMC:HWND;var lpr :TRect):Bool;inline; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETMINREQRECT,0, LPARAM(@lpr))); -end; - -// Macro 262 -// #define MonthCal_SetColor(hmc, iColor, clr) SNDMSG(hmc, MCM_SETCOLOR, iColor, clr) - -function MonthCal_SetColor(hwndMC:HWND; ic:longint;clr:COLORREF):DWORD;inline; - -begin - Result:=DWORD(SendMessage(hwndmc, MCM_SETCOLOR,ic, LPARAM(clr))); -end; - -// Macro 263 -// #define MonthCal_GetColor(hmc, iColor) SNDMSG(hmc, MCM_GETCOLOR, iColor, 0) - -function MonthCal_GetColor(hwndMC:HWND; ic:longint):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETCOLOR,ic, 0)); -end; - -// Macro 264 -// #define MonthCal_SetToday(hmc, pst) SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)(pst)) - -function MonthCal_SetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_SETTODAY,0, LPARAM(lps))); -end; - -// Macro 265 -// #define MonthCal_GetToday(hmc, pst) (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)(pst)) - -function MonthCal_GetToday(hwndMC:HWND; lps:LPSYSTEMTIME):Bool; - -begin - Result:=BOOL(SendMessage(hwndmc, MCM_GETTODAY,0, LPARAM(lps))); -end; - - -// Macro 266 -// #define MonthCal_HitTest(hmc, pinfo) \ -// SNDMSG(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)(pinfo)) - -FUNCTION MonthCal_HitTest( hmc :HWND ; pinfo : PMCHITTESTINFO):DWORD; - -Begin - Result:=DWORD(SendMessage(hmc, MCM_HITTEST, 0, LPARAM(pinfo))); -end; - - -// Macro 267 -// #define MonthCal_SetFirstDayOfWeek(hmc, iDay) \ -// SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay) - -function MonthCal_SetFirstDayOfWeek( hmc : HWND ; iDay :LONGINT ):DWORD; - -Begin - Result:=SendMessage(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay); -end; - - -// Macro 268 -// #define MonthCal_GetFirstDayOfWeek(hmc) \ -// (DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0) - -Function MonthCal_GetFirstDayOfWeek( hmc : HWND ):DWORD; - -Begin - Result:=DWORD(SendMessage(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0)) -end; - - -// Macro 269 -// #define MonthCal_GetRange(hmc, rgst) \ -// (DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst)) - -Function MonthCal_GetRange( hmc : HWND ; rgst : LPSYSTEMTIME):DWORD; - -Begin - Result:=DWORD(SendMessage(hmc, MCM_GETRANGE, 0, lparam(rgst))); -end; - - -// Macro 270 -// #define MonthCal_SetRange(hmc, gd, rgst) \ -// (BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) - -Function MonthCal_SetRange( hmc : HWND ; gd : DWORD; rgst : LPSYSTEMTIME):BOOL; - -Begin - Result:=BOOL(SendMessage(hmc, MCM_SETRANGE, gd,LPARAM(rgst))) -end; - - -// Macro 271 -// #define MonthCal_GetMonthDelta(hmc) \ -// (int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0) - -Function MonthCal_GetMonthDelta( hmc :hwnd ):cint; - -Begin - Result:=cint(SendMessage(hmc, MCM_GETMONTHDELTA, 0, 0)) -end; - - -// Macro 272 -// #define MonthCal_SetMonthDelta(hmc, n) \ -// (int)SNDMSG(hmc, MCM_SETMONTHDELTA, n, 0) - -Function MonthCal_SetMonthDelta( hmc :hwnd ; n :cint ):cint; - -Begin - Result:=cint(SendMessage(hmc, MCM_SETMONTHDELTA, n, 0)) -end; - - -// Macro 273 - -// #define MonthCal_GetMaxTodayWidth(hmc) \ -// (DWORD)SNDMSG(hmc, MCM_GETMAXTODAYWIDTH, 0, 0) - -Function MonthCal_GetMaxTodayWidth( hmc :hwnd ):DWORD; - -Begin - Result:=DWORD(SendMessage(hmc, MCM_GETMAXTODAYWIDTH, 0, 0)) -end; - - -// Macro 274 -// #define MonthCal_SetUnicodeFormat(hwnd, fUnicode) \ -// (BOOL)SNDMSG((hwnd), MCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) - -Function MonthCal_SetUnicodeFormat( hwnd : hwnd; fUnicode : bool):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), MCM_SETUNICODEFORMAT, wparam(fUnicode), 0)) -end; - - -// Macro 275 - -// #define MonthCal_GetUnicodeFormat(hwnd) \ -// (BOOL)SNDMSG((hwnd), MCM_GETUNICODEFORMAT, 0, 0) - -Function MonthCal_GetUnicodeFormat( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), MCM_GETUNICODEFORMAT, 0, 0)) -end; - - -// Macro 276 -// #define DateTime_GetSystemtime(hdp, pst) (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst)) - -// Macro 277 - -//#define DateTime_SetSystemtime(hdp, gd, pst) (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (WPARAM)(gd), (LPARAM)(pst)) -function DateTime_SetSystemTime(hdp: HWND; gd: DWORD; const pst: TSystemTime): BOOL;inline; -begin - result:=BOOL(SendMessage(hdp, DTM_SETSYSTEMTIME, WPARAM(gd), LPARAM(@pst))); -end; - -// Macro 278 - -//#define DateTime_GetRange(hdp, rgst) (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) - -// Macro 279 - -//#define DateTime_SetRange(hdp, gd, rgst) (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) -function DateTime_SetRange(hdp: HWND; gdtr: DWORD; rgst: PSystemTime): BOOL;inline; -begin - result:=BOOL(SendMessage(hdp, DTM_SETRANGE, WPARAM(gdtr), LPARAM(rgst))); -end; - -// Macro 280 - -//#define DateTime_SetFormat(hdp, sz) (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz)) - -// Macro 281 - -//#define DateTime_SetMonthCalColor(hdp, iColor, clr) SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr) -function DateTime_SetMonthCalColor(hdp: HWND; iColor: DWORD; clr: TColorRef): TColorRef;inline; -begin - result:=TColorRef(SendMessage(hdp, DTM_SETMCCOLOR, iColor, clr)); -end; - -// Macro 282 - -//#define DateTime_GetMonthCalColor(hdp, iColor) SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0) - -// Macro 283 - -//#define DateTime_GetMonthCal(hdp) (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0) -function DateTime_GetMonthCal(hdp: HWND): HWND;inline; -begin - result:=HWND(SendMessage(hdp, DTM_GETMONTHCAL, 0, 0)); -end; - -// Macro 284 - -//#define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)(hfont), (LPARAM)(fRedraw)) - -// Macro 285 - -//#define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp, DTM_GETMCFONT, 0, 0) - -// Macro 286 - -//#define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) - -// Macro 287 - -//#define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) - -// Macro 288 - -//#define FIRST_IPADDRESS(x) ((x>>24) & 0xff) - -// Macro 289 - -//#define SECOND_IPADDRESS(x) ((x>>16) & 0xff) - -// Macro 290 - -//#define THIRD_IPADDRESS(x) ((x>>8) & 0xff) - -// Macro 291 - -//#define FOURTH_IPADDRESS(x) (x & 0xff) - -// Macro 292 - -//#define Pager_SetChild(hwnd, hwndChild) \ -// (void)SNDMSG((hwnd), PGM_SETCHILD, 0, (LPARAM)(hwndChild)) - -Procedure Pager_SetChild( hwnd : hwnd; hwndChild : LPARAM); - -Begin -SendMessage((hwnd), PGM_SETCHILD, 0, hwndChild) -end; - - -// Macro 293 - -//#define Pager_RecalcSize(hwnd) \ -// (void)SNDMSG((hwnd), PGM_RECALCSIZE, 0, 0) - -Procedure Pager_RecalcSize( hwnd : hwnd); - -Begin -SendMessage((hwnd), PGM_RECALCSIZE, 0, 0) -end; - - -// Macro 294 - -//#define Pager_ForwardMouse(hwnd, bForward) \ -// (void)SNDMSG((hwnd), PGM_FORWARDMOUSE, (WPARAM)(bForward), 0) - -Procedure Pager_ForwardMouse( hwnd : hwnd; bForward : WPARAM); - -Begin -SendMessage((hwnd), PGM_FORWARDMOUSE, bForward, 0) -end; - - -// Macro 295 - -//#define Pager_SetBkColor(hwnd, clr) \ -// (COLORREF)SNDMSG((hwnd), PGM_SETBKCOLOR, 0, (LPARAM)(clr)) - -Function Pager_SetBkColor( hwnd : hwnd; clr : LPARAM):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), PGM_SETBKCOLOR, 0, clr)) -end; - - -// Macro 296 - -//#define Pager_GetBkColor(hwnd) \ -// (COLORREF)SNDMSG((hwnd), PGM_GETBKCOLOR, 0, 0) - -Function Pager_GetBkColor( hwnd : hwnd):COLORREF; - -Begin - Result:=COLORREF(SendMessage((hwnd), PGM_GETBKCOLOR, 0, 0)) -end; - - -// Macro 297 - -//#define Pager_SetBorder(hwnd, iBorder) \ -// (int)SNDMSG((hwnd), PGM_SETBORDER, 0, (LPARAM)(iBorder)) - -Function Pager_SetBorder( hwnd : hwnd; iBorder : LPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), PGM_SETBORDER, 0, iBorder)) -end; - - -// Macro 298 -// #define Pager_GetBorder(hwnd) \ -// (int)SNDMSG((hwnd), PGM_GETBORDER, 0, 0) - -Function Pager_GetBorder( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), PGM_GETBORDER, 0, 0)) -end; - - -// Macro 299 - -//#define Pager_SetPos(hwnd, iPos) \ -// (int)SNDMSG((hwnd), PGM_SETPOS, 0, (LPARAM)(iPos)) - -Function Pager_SetPos( hwnd : hwnd; iPos : LPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), PGM_SETPOS, 0, iPos)) -end; - - -// Macro 300 - -//#define Pager_GetPos(hwnd) \ -// (int)SNDMSG((hwnd), PGM_GETPOS, 0, 0) - -Function Pager_GetPos( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), PGM_GETPOS, 0, 0)) -end; - - -// Macro 301 - -//#define Pager_SetButtonSize(hwnd, iSize) \ -// (int)SNDMSG((hwnd), PGM_SETBUTTONSIZE, 0, (LPARAM)(iSize)) - -Function Pager_SetButtonSize( hwnd : hwnd; iSize : LPARAM):cint; - -Begin - Result:=cint(SendMessage((hwnd), PGM_SETBUTTONSIZE, 0, iSize)) -end; - - -// Macro 302 - -//#define Pager_GetButtonSize(hwnd) \ -// (int)SNDMSG((hwnd), PGM_GETBUTTONSIZE, 0,0) - -Function Pager_GetButtonSize( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), PGM_GETBUTTONSIZE, 0,0)) -end; - - -// Macro 303 - -//#define Pager_GetButtonState(hwnd, iButton) \ -// (DWORD)SNDMSG((hwnd), PGM_GETBUTTONSTATE, 0, (LPARAM)(iButton)) - -Function Pager_GetButtonState( hwnd : hwnd; iButton : LPARAM):DWORD; - -Begin - Result:=DWORD(SendMessage((hwnd), PGM_GETBUTTONSTATE, 0, iButton)) -end; - - -// Macro 304 -// #define Pager_GetDropTarget(hwnd, ppdt) \ -// (void)SNDMSG((hwnd), PGM_GETDROPTARGET, 0, (LPARAM)(ppdt)) - -Procedure Pager_GetDropTarget( hwnd : hwnd; ppdt : LPARAM); - -Begin -SendMessage((hwnd), PGM_GETDROPTARGET, 0, ppdt) -end; - - -// Macro 305 -// #define Button_GetIdealSize(hwnd, psize)\ -// (BOOL)SNDMSG((hwnd), BCM_GETIDEALSIZE, 0, (LPARAM)(psize)) - -Function Button_GetIdealSize( hwnd : hwnd; psize : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), BCM_GETIDEALSIZE, 0, psize)) -end; - - -// Macro 306 -// #define Button_SetImageList(hwnd, pbuttonImagelist)\ -// (BOOL)SNDMSG((hwnd), BCM_SETIMAGELIST, 0, (LPARAM)(pbuttonImagelist)) - -Function Button_SetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), BCM_SETIMAGELIST, 0, pbuttonImagelist)) -end; - -// Macro 307 -// #define Button_GetImageList(hwnd, pbuttonImagelist)\ -// (BOOL)SNDMSG((hwnd), BCM_GETIMAGELIST, 0, (LPARAM)(pbuttonImagelist)) - -Function Button_GetImageList( hwnd : hwnd; pbuttonImagelist : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), BCM_GETIMAGELIST, 0, pbuttonImagelist)) -end; - - -// Macro 308 -// #define Button_SetTextMargin(hwnd, pmargin)\ -// (BOOL)SNDMSG((hwnd), BCM_SETTEXTMARGIN, 0, (LPARAM)(pmargin)) - -Function Button_SetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), BCM_SETTEXTMARGIN, 0, pmargin)) -end; - - -// Macro 309 -// #define Button_GetTextMargin(hwnd, pmargin)\ -// (BOOL)SNDMSG((hwnd), BCM_GETTEXTMARGIN, 0, (LPARAM)(pmargin)) - -Function Button_GetTextMargin( hwnd : hwnd; pmargin : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), BCM_GETTEXTMARGIN, 0, pmargin)) -end; - - -// Macro 310 -// #define Edit_SetCueBannerText(hwnd, lpcwText) \ -// (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, 0, (LPARAM)(lpcwText)) - -Function Edit_SetCueBannerText( hwnd : hwnd; lpcwText : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), EM_SETCUEBANNER, 0, lpcwText)) -end; - - -// Macro 311 -//#define Edit_GetCueBannerText(hwnd, lpwText, cchText) \ -// (BOOL)SNDMSG((hwnd), EM_GETCUEBANNER, (WPARAM)(lpwText), (LPARAM)(cchText)) - -Function Edit_GetCueBannerText( hwnd : hwnd; lpwText : WPARAM; cchText : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), EM_GETCUEBANNER, lpwText, cchText)) -end; - - -// Macro 312 -// #define Edit_ShowBalloonTip(hwnd, peditballoontip) \ -// (BOOL)SNDMSG((hwnd), EM_SHOWBALLOONTIP, 0, (LPARAM)(peditballoontip)) - -Function Edit_ShowBalloonTip( hwnd : hwnd; peditballoontip : LPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), EM_SHOWBALLOONTIP, 0, peditballoontip)) -end; - - -// Macro 313 -// #define Edit_HideBalloonTip(hwnd) \ -// (BOOL)SNDMSG((hwnd), EM_HIDEBALLOONTIP, 0, 0) - -Function Edit_HideBalloonTip( hwnd : hwnd):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), EM_HIDEBALLOONTIP, 0, 0)) -end; - - -// Macro 314 -//#define ComboBox_SetMinVisible(hwnd, iMinVisible) \ -// (BOOL)SNDMSG((hwnd), CB_SETMINVISIBLE, (WPARAM)iMinVisible, 0) - -Function ComboBox_SetMinVisible( hwnd : hwnd; iMinVisible : WPARAM):BOOL; - -Begin - Result:=BOOL(SendMessage((hwnd), CB_SETMINVISIBLE, iMinVisible, 0)) -end; - - -// Macro 315 -// #define ComboBox_GetMinVisible(hwnd) \ -// (int)SNDMSG((hwnd), CB_GETMINVISIBLE, 0, 0) - -Function ComboBox_GetMinVisible( hwnd : hwnd):cint; - -Begin - Result:=cint(SendMessage((hwnd), CB_GETMINVISIBLE, 0, 0)) -end; - -{$ifdef win32vista} -function TreeView_GetNextSelected(hwnd:hwnd; hitem:HTREEITEM):HTREEITEM;inline; -begin - result:=TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTSELECTED) -end; -{$endif} - -{$ifdef win32vista} -function Button_SetDropDownState(hwnd:HWND; fDropDown:BOOL) : BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), BCM_SETDROPDOWNSTATE, WPARAM(fDropDown), 0)); -end; - -function Button_SetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO):BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), BCM_SETSPLITINFO, 0, LPARAM(pInfo))); -end; - -function Button_GetSplitInfo(hwnd:HWND; pInfo:PBUTTON_SPLITINFO) :BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), BCM_GETSPLITINFO, 0, LPARAM(pInfo))); -end; - -function Button_SetNote(hwnd:HWND; psz:LPCWSTR) :BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), BCM_SETNOTE, 0, LPARAM(psz))); -end; - -function Button_GetNote(hwnd:HWND; psz:LPCWSTR; pcc:cint) :BOOL; -Begin - Result:=BOOL(SendMessage((hwnd), BCM_GETNOTE, WPARAM(pcc), LPARAM(psz))); -end; - -function Button_GetNoteLength(hwnd:HWND) :LRESULT; -Begin - Result:=LRESULT(SendMessage((hwnd), BCM_GETNOTELENGTH, 0, 0)); -end; - -// Macro to use on a button or command link to display an elevated icon - -function Button_SetElevationRequiredState(hwnd:HWND; fRequired:BOOL) :LRESULT; -Begin - Result:=LRESULT(SendMessage((hwnd), BCM_SETSHIELD, 0, LPARAM(fRequired))); -end; -{$endif} -{$ifdef win32vista} -procedure Edit_SetHilite(hwndCtl:hwnd; ichStart:Wparam; ichEnd:lparam); -begin - sendmessage(hwndctl, EM_SETHILITE, (ichStart), (ichEnd)); -end; - -function Edit_GetHilite(hwndCtl:hwnd):Dword; -begin - result:=SendMessage((hwndCtl), EM_GETHILITE, 0, 0); -end; -{$endif} - -{$ifdef ntddi_vista} -function MonthCal_GetCurrentView(hmc:HWND):DWORD; -Begin - Result:=DWord(SendMessage(hmc, MCM_GETCURRENTVIEW, 0, 0)); -end; - -function MonthCal_GetCalendarCount(hmc:HWND):DWORD; -Begin - Result:=DWord(SendMessage(hmc,MCM_GETCALENDARCOUNT, 0, 0)); -end; - -function MonthCal_GetCalendarGridInfo(hmc:HWND; pmc:pMCGRIDINFO):BOOL; -Begin - Result:=BOOL(SendMessage(hmc, MCM_GETCALENDARGRIDINFO, 0, LPARAM(PMCGRIDINFO(pmc)))); -end; - -function MonthCal_GetCALID(hmc:HWND):CALID; -Begin - Result:=CALID(SendMessage(hmc, MCM_GETCALID, 0, 0)); -end; - -function MonthCal_SetCALID(hmc:HWND; calid:cuint):LRESULT; -Begin - Result:=LRESULT(SendMessage(hmc, MCM_SETCALID, WPARAM(calid), 0)); -end; - -function MonthCal_SizeRectToMin(hmc:HWND; prc:prect):LRESULT; -Begin - Result:=LRESULT(SendMessage(hmc, MCM_SIZERECTTOMIN, 0, LPARAM(prc))); -end; - -function MonthCal_SetCalendarBorder(hmc:HWND; fset:bool; xyborder:cint):LRESULT; -Begin - Result:=LRESULT(SendMessage(hmc, MCM_SETCALENDARBORDER, WPARAM(fset), LPARAM(xyborder))); -end; - -function MonthCal_GetCalendarBorder(hmc:HWND):cint; -Begin - Result:=cint(SendMessage(hmc, MCM_GETCALENDARBORDER, 0, 0)); -end; - -function MonthCal_SetCurrentView(hmc:HWND; dwNewView:DWord):BOOL; -Begin - Result:=BOOL(SendMessage(hmc, MCM_SETCURRENTVIEW, 0, LPARAM(dwNewView))); -end; - -{$endif} - -{$ifdef NTDDI_VISTA} -function DateTime_SetMonthCalStyle(hdp:HWND; dwStyle:DWord):LResult; -Begin - Result:=LRESULT(SendMessage(hdp,DTM_SETMCSTYLE, 0, LPARAM(dwStyle))); -end; - -function DateTime_GetMonthCalStyle(hdp:HWND):LRESULT; -Begin - Result:=LRESULT(SendMessage(hdp,DTM_GETMCSTYLE, 0, 0)); -end; - -function DateTime_CloseMonthCal(hdp:HWND):LRESULT; -Begin - Result:=LRESULT(SendMessage(hdp,DTM_CLOSEMONTHCAL, 0, 0)); -end; - -// DateTime_GetDateTimePickerInfo(HWND hdp, DATETIMEPICKERINFO* pdtpi) -// Retrieves information about the selected date time picker. - -function DateTime_GetDateTimePickerInfo(hdp:HWND; pdtpi:PDATETIMEPICKERINFO):LRESULT; -Begin - Result:=LRESULT(SendMessage(hdp, DTM_GETDATETIMEPICKERINFO, 0, LPARAM(pdtpi))); -end; - -function DateTime_GetIdealSize(hdp:HWND; ps:PSIZE): LResult; -Begin - Result:=LRESULT(SendMessage(hdp, DTM_GETIDEALSIZE, 0, LPARAM(ps))); -end; - -{$endif} - -// Macro 284 -procedure DateTime_SetMonthCalFont(hdp:HWND; hfont:HFONT; fRedraw:LPARAM); -begin - SendMessage(hdp, DTM_SETMCFONT, WPARAM(hfont), LPARAM(fRedraw)); -end; - -// Macro 285 -function DateTime_GetMonthCalFont(hdp:HWND):HFONT; -begin - Result:=HFONT(SendMessage(hdp, DTM_GETMCFONT, 0, 0)); -end; - -const - comctl32lib = 'comctl32.dll'; - -var - comctl32handle: THandle = 0; - -function _TaskDialogIndirect(const pTaskConfig: PTASKDIALOGCONFIG; pnButton: PInteger; pnRadioButton: PInteger; pfVerificationFlagChecked: PBOOL): HRESULT; stdcall; -begin - Result := E_NOTIMPL; -end; - -function _TaskDialog(hwndParent: HWND; hInstance: HINST; pszWindowTitle: PCWSTR; pszMainInstruction: PCWSTR; pszContent: PCWSTR; - dwCommonButtons: TASKDIALOG_COMMON_BUTTON_FLAGS; pszIcon: PCWSTR; pnButton: PInteger): HRESULT; stdcall; -begin - Result := E_NOTIMPL; -end; - -procedure Initialize; -var - p: Pointer; -begin - // Defaults - Pointer(TaskDialogIndirect) := @_TaskDialogIndirect; - Pointer(TaskDialog) := @_TaskDialog; - - comctl32handle := LoadLibrary(comctl32lib); - if comctl32handle <> 0 then - begin - p := GetProcAddress(comctl32handle, 'TaskDialogIndirect'); - if p <> nil - then Pointer(TaskDialogIndirect) := p; - - p := GetProcAddress(comctl32handle, 'TaskDialog'); - if p <> nil - then Pointer(TaskDialog) := p; - end; -end; - -procedure Finalize; -begin - if comctl32handle <> 0 then - FreeLibrary(comctl32handle); - comctl32handle := 0; -end; - -initialization - Initialize; -Finalization - Finalize; -End. diff --git a/plugins/mRadio/i_bass.inc b/plugins/mRadio/i_bass.inc deleted file mode 100644 index 77f0d3650a..0000000000 --- a/plugins/mRadio/i_bass.inc +++ /dev/null @@ -1,940 +0,0 @@ -{BASS dll code} -const - signMP3 = $FBFF; - signID3 = $00334449; - signOGG = $5367674F; - OGGHdrSize = 26; // +1=NumSegments -const - BASSName = 'bass.dll'; - StationHeader:PByte=nil; -const - basspath:PWideChar=nil; -var - hdrlen:integer; - syncMETA, - syncOGG, - syncWMA, - syncWMA1, - syncEND:HSYNC; - SaveHeader:bool; - -procedure SetSndVol(arg:integer); -begin - if arg<0 then - arg:=gVolume - else - gVolume:=arg; - - if chan<>0 then - begin - if arg<0 then arg:=0; - BASS_ChannelSetAttribute(chan,BASS_ATTRIB_VOL,arg/100); - end; -end; - -procedure BassError(text:PWideChar); -begin - MessageboxW(0,TranslateW(text),TranslateW('Sorry!'),MB_ICONERROR) -end; - -procedure ErrorCustom(text:pWideChar=nil); -var - buf:array [0..255] of WideChar; - idx:integer; - pcw:pWideChar; -begin - idx:=BASS_ErrorGetCode(); - if (idx<0) or (idx>BASS_ERROR_MAXNUMBER) then - begin - if text=nil then - pcw:='Unknown error' - else - pcw:=text; - end - else - pcw:=FastAnsiToWideBuf(BASS_ERRORS[idx],@buf); - - MessageBoxW(0,TranslateW(pcw), - TranslateW('Oops! BASS error'),MB_ICONERROR) -end; - -procedure EQ_OFF; -var - i:dword; -begin - if chan<>0 then - for i:=0 to 9 do - BASS_ChannelRemoveFX(chan,eq[i].fx); - isEQ_OFF:=BST_CHECKED; -end; - -procedure EQ_ON; -var - i:dword; -begin - if chan<>0 then - begin - for i:=0 to 9 do - eq[i].fx:=BASS_ChannelSetFX(chan,BASS_FX_DX8_PARAMEQ,1); - for i:=0 to 9 do - BASS_FXSetParameters(eq[i].fx,@eq[i].param); - isEQ_OFF:=BST_UNCHECKED; - end; -end; - -function MyLoadBASS(root:PwideChar;custom:pWideChar):bool; -var - pc:PWideChar; - buf:array [0..MAX_PATH-1] of WideChar; -begin - result:=true; - mGetMem(basspath,1024); - pc:=StrCopyEW(basspath,custom); - if (pc-1)^<>'\' then - begin - pc^:='\'; - inc(pc); - end; - StrCopyW(pc,BASSName); - if not Load_BASSDLL(basspath) then - begin - pc:=StrCopyW(StrCopyEW(basspath,root),BASSName); - if not Load_BASSDLL(basspath) then - begin - pc:=StrCopyW(StrCopyEW(pc,'plugins\'),BASSName); - if not Load_BASSDLL(basspath) then - begin - pc:=StrCopyW(StrCopyEW(pc,'bass\'),BASSName); - if not Load_BASSDLL(basspath) then - begin - if (custom<>nil) and (custom^<>#0) then - BassError('BASS.DLL not found!'); - result:=false; - end; - end; - end; - end; - - if (not result) and ((custom=nil) or (custom^=#0)) then - begin - if MessageboxA(0,Translate('BASS.DLL not found! Choose BASS.dll path manually'), - cPluginName,MB_YESNO)=IDYES then - begin - pc := nil; - if SelectDirectory(TranslateW('Choose BASS.dll path'),pc,0) then - begin - CallService(MS_UTILS_PATHTORELATIVEW,wparam(pc),lparam(@buf)); - pc:=StrCopyEW(basspath,buf); - if (pc-1)^<>'\' then - begin - pc^:='\'; - inc(pc); - end; - pc^:=#0; - DBWriteUnicode(0,PluginName,optBASSPath,basspath); - StrCopyW(pc,BASSName); - - if not Load_BASSDLL(basspath) then - BassError('BASS.DLL not found!') - else - result:=true; - end; - - end; - end; - - if result then - begin - if (BASS_GetVersion shr 16)0 then - begin - if syncMETA<>0 then - begin - BASS_ChannelRemoveSync(chan,syncMETA); - syncMETA:=0 - end; - if syncEND<>0 then - begin - BASS_ChannelRemoveSync(chan,syncEND); - syncEND:=0 - end; - if syncWMA<>0 then - begin - BASS_ChannelRemoveSync(chan,syncWMA); - syncWMA:=0 - end; - if syncOGG<>0 then - begin - BASS_ChannelRemoveSync(chan,syncOGG); - syncOGG:=0 - end; - if syncWMA1<>0 then - begin - BASS_ChannelRemoveSync(chan,syncWMA1); - syncWMA1:=0 - end; - end; -end; - -procedure MyFreeBASS; -begin - MyStopBASS; - BASS_Free; - BASS_PluginFree(0); -end; - -procedure StopStation; -begin - if chan<>0 then - BASS_StreamFree(chan); // close old stream - chan:=0; - mFreeMem(StationHeader); - mFreeMem(ActiveURLw); - DBDeleteSetting(ActiveContact,strCList,optStatusMsg); - MyStopBASS; -end; - -function MyInitBASS:int; -var - fd:TWin32FindDataW; - fh:THANDLE; - buf:array [0..MAX_PATH-1] of WideChar; -// buf1:array [0..31] of WideChar; - pc:PWideChar; - p:Bool; -begin - if Inited then - begin - result:=1; - exit; - end; - - Inited:=true; - BASS_Free; - p:=BASS_Init(-1,44100,BASS_DEVICE_3D,0,nil); - if not p then - p:=BASS_Init(-1,44100,0,0,nil); - if not p then - p:=BASS_Init(1,44100,0,0,nil); - if not p then - begin - ErrorCustom('Can''t initialize device'); - result:=0; - end - else - begin - pc:=StrCopyW(StrCopyEW(buf,basspath),'bass*.dll'); - fh:=FindFirstFileW(buf,fd); - if fh<>INVALID_HANDLE_VALUE then - begin - repeat - StrCopyW(pc,fd.cFileName); - if BASS_PluginLoad(pAnsiChar(@buf),BASS_UNICODE)=0 then - until not FindNextFileW(fh,fd); - FindClose(fh); - end; - // enable ASX processing (if WMA loaded) - BASS_SetConfig(BASS_CONFIG_NET_PLAYLIST, 2); // 2 - enable internet and local playlists - - fh:=DBReadByte(0,PluginName,optEAXType,0); - if fh=0 then - BASS_SetEAXParameters(-1,0,-1,-1) - else - BASS_SetEAXPreset(EAXItems[fh].code); - result:=1; - end; -end; - -function GetMusicFormat:PAnsiChar; -var - bci:BASS_CHANNELINFO; -begin - BASS_ChannelGetInfo(chan,bci); - case bci.ctype of - BASS_CTYPE_STREAM_OGG: result:='OGG'; - BASS_CTYPE_STREAM_MP1, - BASS_CTYPE_STREAM_MP2, - BASS_CTYPE_STREAM_MP3: result:='MP3'; - BASS_CTYPE_STREAM_WMA, - BASS_CTYPE_STREAM_WMA_MP3: result:='WMA'; - {BASS_CTYPE_STREAM_AAC,}$10b00: result:='AAC'; - {BASS_CTYPE_STREAM_MP4:}$10b01: result:='MP4'; - {BASS_CTYPE_STREAM_AC3:}$11000: result:='AC3'; - else - result:=nil; - end; -end; - -function GetFileExt(buf:pWideChar;sign:pointer):pWideChar; -var - pc:pAnsiChar; -begin - result:=buf; - pc:=GetMusicFormat; - if pc=nil then - begin - StrCopyW(buf,'sav'); - if sign<>nil then - begin - if pdword(sign)^=signOGG then - StrCopyW(buf,'ogg') - else if ((pdword(sign)^ and $00FFFFFF)=signID3) or (pword(sign)^=signMP3) then - StrCopyW(buf,'mp3'); - end; - end - else - begin - FastAnsiToWideBuf(pc,buf); - LowerCase(buf); - end; -end; - -function MakeFileName(sign:pointer):pWideChar; -var - p,pcw:PWideChar; - buf:pWideChar; -begin -// allocate buffer - mGetMem(buf,MAX_PATH*SizeOf(WideChar)); -// path - if recpath<>nil then - begin - ConvertFileName(recpath,buf,ActiveContact); -// pcw:=ParseVarString(recpath,ActiveContact); -// CallService(MS_UTILS_PATHTOABSOLUTEW,dword(pcw),dword(buf)); -// mFreeMem(pcw); - if not ForceDirectories(buf) then - begin - result:=nil; - exit; - end; - pcw:=StrEndW(buf); - if (pcw-1)^<>'\' then - begin - pcw^:='\'; - inc(pcw); - end; - end - else - pcw:=buf; -// name -//!! - p:=MakeMessage; - pcw:=StrCopyEW(pcw,p); - mFreeMem(p); - if (pcw=buf) or ((pcw-1)^='\') then - pcw:=StrEndW(IntToHex(pcw,GetCurrentTime)); -// ext - pcw^:='.'; inc(pcw); - GetFileExt(pcw,sign); - - result:=buf; -end; - -procedure StatusProc(buffer:Pointer;len,user:DWORD); stdcall; -var - pc:pWideChar; - pb:PByte; - i,sum:integer; - flag:bool; - doRecord:bool; -begin - flag:=true; - doRecord:=CallService(MS_RADIO_COMMAND,MRC_RECORD,LPARAM(-1))<>0; - if (buffer<>nil) and (len<>0) and SaveHeader then - begin - SaveHeader:=false; - if pdword(buffer)^=signOGG then // if header ALL in buffer - begin - pb:=buffer; - flag:=false; - repeat - inc(pb,OGGHdrSize); - i:=pb^; //patterns - sum:=0; - inc(pb); - while i>0 do - begin - inc(sum,pb^); - inc(pb); - dec(i); - end; - inc(pb,sum); //here must be next sign - flag:=not flag; - until not flag; - hdrlen:=PAnsiChar(pb)-PAnsiChar(buffer); - mGetMem(StationHeader,hdrlen); - move(buffer^,StationHeader^,hdrlen); - end; - end; - if (buffer=nil) or not doRecord then // end of stream or stop record - begin - if not doRecord or (doContRec=BST_UNCHECKED) then - if hRecord<>0 then - begin - if buffer<>nil then // write tail - BlockWrite(hRecord,buffer^,len); - CloseHandle(hRecord); - hRecord:=0; - end; - end - else - begin - if len=0 then // HTTP or ICY tags - begin -{ -while PAnsiChar(buffer)^<>#0 do -begin -messagebox(0,PAnsiChar(buffer),'ICY-HTTP',0); -while PAnsiChar(buffer)^<>#0 do inc(PAnsiChar(buffer)); inc(PAnsiChar(buffer)); -end; -} - end - else - begin - if doRecord then - begin - if hRecord=0 then - begin - pc:=MakeFileName(StationHeader); - if pc<>nil then - hRecord:=Rewrite(pc) - else - hRecord:=THANDLE(INVALID_HANDLE_VALUE); - if hRecord=THANDLE(INVALID_HANDLE_VALUE) then - hRecord:=0 - else if flag and (StationHeader<>nil) then - begin - BlockWrite(hRecord,StationHeader^,hdrlen); -// permissible to skip to the next Page (OggS) but this is not necessary - end; - mFreeMem(pc); - end; - if hRecord<>0 then - BlockWrite(hRecord,buffer^,len); - end; - end; - end; -end; - -{$IFDEF Debug} -procedure logmeta(tag,a,b:pansiChar); -var - f:thandle; - p:pansichar; -begin - f:=Append(pansichar('mradio.log')); - BlockWrite(f,tag^,StrLen(tag)); - p:=#13#10; BlockWrite(f,p^,StrLen(p)); - BlockWrite(f,a^,StrLen(a)); - p:=#13#10; BlockWrite(f,p^,StrLen(p)); - BlockWrite(f,b^,StrLen(b)); - p:=#13#10; BlockWrite(f,p^,StrLen(p)); - p:=#13#10; BlockWrite(f,p^,StrLen(p)); - CloseHandle(f); -end; -{$ENDIF} - -function DoMeta(meta:PAnsiChar;TagType:int_ptr):Boolean; -var - pcw:pWideChar; - buf:array [0..511] of AnsiChar; - artist,title:PAnsiChar; - oldartist,oldtitle:pAnsiChar; - ppc,pc:pAnsiChar; - idx,lcp:integer; - needtofree:Boolean; - CurDescrW:PWideChar; - old:boolean; - -// tag:PAnsiChar; - gotartist,gottitle:boolean; // indicate what we got artist/title -begin - result:=false; - - if meta=nil then - meta:=BASS_ChannelGetTags(chan,TagType); - if meta<>nil then - begin - // for cases when artist or title presents but empty - gotartist:=false; - gottitle :=false; - needtofree:=false; - lcp:=CP_UTF8; - buf[0]:=#0; - artist:=nil; - title :=nil; - CurDescrW:=nil; - -//tag:=meta; - case TagType of - BASS_TAG_WMA_META: begin - pc:=StrPos(meta,'data='); - if pc=meta then - begin - pc:=StrPos(meta,'artist='); - if pc<>nil then - begin - gotartist:=true; - mGetMem(artist,256); - Decode(artist,pc+7); - end; - - pc:=StrPos(meta,'title='); - if pc<>nil then - begin - gottitle:=true; - mGetMem(title,256); - Decode(title,pc+6); - end; - - pc:=StrPos(meta,'album='); - if pc<>nil then - begin - end; - - pc:=StrPos(meta,'duration='); - if pc<>nil then - begin - end; - - if not gotartist then - begin - if not gottitle then - begin - pc:=StrPos(meta,'caption='); - if pc<>nil then - begin - gottitle:=true; - mGetMem(title,256); - Decode(title,pc+8); - end; - end; - - // analize title/caption for artist-title - if gottitle then - begin - pc:=StrPos(title,' - '); - if pc=nil then - pc:=StrScan(title,'-'); - if pc<>nil then - begin - artist:=title; - if pc^=' ' then - title:=pc+3 - else - title:=pc+1; - pc^:=#0; - CurDescrW:=pWideChar(artist); - end - else - CurDescrW:=pWideChar(title); - end; - end - else - needtofree:=true; - - // to avoid mem leak and wrong tag process - result:=true; - end; - StatusProc(nil,0,0); // split records here - end; - - BASS_TAG_META: begin -//tag:='SHOUTCAST'; - // SHOUTCAST StreamTitle='xxx';StreamUrl='xxx'; - // "Station=xyz" meta tag="Trackinfo" - pc:=StrPos(meta,'StreamTitle='); - if pc<>nil then - begin - inc(pc,13); - ppc:=StrScan(pc,';'); - if (ppc-pc-1)>0 then - begin - StrCopy(buf,pc,ppc-pc-1); - lcp:=GetTextFormat(@buf,ppc-pc-1); - end; - end; - if buf[0]<>#0 then - begin - case lcp of - CP_UTF8: UTF8ToWide(buf,CurDescrW); - CP_ACP : AnsiToWide(buf,CurDescrW,MirandaCP); - end; - end; - - gottitle:=true; - title:=pAnsiChar(CurDescrW); - pcw:=StrPosW(CurDescrW,' - '); - if pcw=nil then - pcw:=StrScanW(CurDescrW,'-'); - if pcw<>nil then - begin - artist:=pAnsiChar(CurDescrW); - if pcw^=' ' then - title:=pAnsiChar(pcw+3) - else - title:=pAnsiChar(pcw+1); - pcw^:=#0; - end; - - lcp:=CP_UNICODE; - - StatusProc(nil,0,0); // split records here - result:=true; - end; - - BASS_TAG_ID3: begin // not realized, anyway - at the end of track - end; - - BASS_TAG_ID3V2: begin - end; - - BASS_TAG_APE, // not sure, need to check. maybe better process BASS_TAG_APEBINARY - BASS_TAG_WMA, - BASS_TAG_OGG: begin -//tag:='OGG'; - while meta^<>#0 do - begin - CharLowerA(StrCopy(buf,meta,10)); - if StrCmp(buf,'title',5)=0 then - begin - title:=meta+6; - gottitle:=true; - end - else if StrCmp(buf,'artist',6)=0 then - begin - artist:=meta+7; - gotartist:=true; - end; - if gotartist and gottitle then - break; - while meta^<>#0 do inc(meta); inc(meta); - end; - - if (not gotartist) and gottitle then - begin - pc:=StrPos(title,' - '); - if pc=nil then - pc:=StrScan(title,'-'); - if pc<>nil then - begin - needtofree:=true; - StrDup(artist,title,pc-title); - if pc^=' ' then - idx:=3 - else - idx:=1; - StrDup(title,pc+idx); - end; - end; - buf[0]:=#0; - end; - end; - - old:=true; - if gotartist or gottitle then - begin - // check for old - oldartist:=nil; - oldtitle :=nil; - case lcp of - CP_UTF8: begin - if gotartist then - begin - oldartist:=DBReadUTF8(0,PluginName,optArtist); - if StrCmp(artist,oldartist)<>0 then - old:=false; - end; - - if old and gottitle then - begin - oldtitle:=DBReadUTF8(0,PluginName,optTitle); - if StrCmp(title,oldtitle)<>0 then - old:=false; - end; - - if not old then - begin - DBWriteUTF8(0,PluginName,optArtist,artist); - DBWriteUTF8(0,PluginName,optTitle ,title); - end; - end; - - CP_UNICODE:begin - if gotartist then - begin - oldartist:=pAnsiChar(DBReadUnicode(0,PluginName,optArtist)); - if StrCmpW(pWideChar(artist),pWideChar(oldartist))<>0 then - old:=false; - end; - - if old and gottitle then - begin - oldtitle:=pAnsiChar(DBReadUnicode(0,PluginName,optTitle)); - if StrCmpW(pWideChar(title),pWideChar(oldtitle))<>0 then - old:=false; - end; - - if not old then - begin - DBWriteUnicode(0,PluginName,optArtist,pWideChar(artist)); - DBWriteUnicode(0,PluginName,optTitle ,pWideChar(title)); - end; - end; - end; -{$IFDEF Debug} -logmeta(tag,artist,title); -{$ENDIF} - mFreeMem(oldartist); - mFreeMem(oldtitle); - mFreeMem(CurDescrW); - if needtofree then - begin - mFreeMem(artist); - mFreeMem(title ); - end; - end; - - if not old then - CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_NEWTAG); - end; -end; - -procedure MetaSync(handle:HSYNC;channel,data:dword;user:pointer); stdcall; -//var tagtype:Integer; -begin -(* - if handle=syncOGG then tagtype:=BASS_TAG_OGG - else if handle=syncWMA then tagtype:=BASS_TAG_WMA - else if handle=syncWMA1 then tagtype:=BASS_TAG_WMA_META - else {if handle=syncMETA then} tagtype:=BASS_TAG_META; -*) - DoMeta(nil{PAnsiChar(data)},int_ptr(user){tagtype}); -end; - -procedure EndSync(handle:HSYNC;channel,data:dword;user:pointer); stdcall; -var - lContact:cardinal; -begin - if RemoteSong then - begin - lContact:=ActiveContact; - CallService(MS_RADIO_COMMAND,MRC_STOP,0); - CallService(MS_RADIO_COMMAND,MRC_PLAY,lContact) - end - else if plist<>nil then CallService(MS_RADIO_COMMAND,MRC_NEXT,0) - else if doLoop=BST_UNCHECKED then CallService(MS_RADIO_COMMAND,MRC_STOP,0); -end; - -type - tICYField = record - name :PAnsiChar; - branch:PAnsiChar; - option:PAnsiChar; - end; -const - NumICYFields = 4; - ICYFields: array [0..NumICYFields-1] of tICYField = ( - (name:'icy-name:' ; branch:'CList' ; option:'MyHandle'), - (name:'icy-genre:' ; branch:cPluginName ; option:'Genre'), - (name:'icy-br:' ; branch:cPluginName ; option:'Bitrate'), - (name:'icy-description'; branch:cPluginName ; option:'About') - ); - -procedure ProcessStationData; -var - icy:PAnsiChar; - i,len:integer; -begin - // get the broadcast name and bitrate - icy:=BASS_ChannelGetTags(chan,BASS_TAG_ICY); - if icy=nil then - icy:=BASS_ChannelGetTags(chan,BASS_TAG_HTTP); // no ICY tags, try HTTP - if icy<>nil then - begin - while icy^<>#0 do - begin - for i:=0 to NumICYFields-1 do - begin - with ICYFields[i] do - begin - len:=StrLen(name); - if StrCmp(icy,name,len)=0 then - begin - if DBReadStringLength(ActiveContact,branch,option)=0 then - DBWriteString(ActiveContact,branch,option,icy+len); - break; - end; - end; - end; - while icy^<>#0 do inc(icy); inc(icy); - end; - end; -end; - -procedure OpenURL(url:PWideChar); cdecl; -var - len,progress:DWORD; - flags:dword; - i:integer; - EAXUsed:bool; - ansiurl:array [0..511] of AnsiChar; -begin - if plist=nil then - CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_CONNECT); - - EAXUsed:=DBReadByte(0,PluginName,optEAXType,0)<>0; - -{} - for i:=0 to NumTries-1 do - begin - if EAXUsed then - flags:=BASS_STREAM_STATUS or BASS_SAMPLE_3D or BASS_SAMPLE_MONO - else - begin - if ForcedMono<>BST_UNCHECKED then - flags:=BASS_STREAM_STATUS or BASS_SAMPLE_MONO - else - flags:=BASS_STREAM_STATUS; - end; - - flags:=flags or BASS_UNICODE; - if RemoteSong then - begin - SaveHeader:=true; - chan:=BASS_StreamCreateURL(url,0,flags,@StatusProc,nil) - end - else - begin - if (plist=nil) and (doLoop<>BST_UNCHECKED) then - flags:=flags or BASS_SAMPLE_LOOP; - chan:=BASS_StreamCreateFile(FALSE,url,0,0,flags); - end; - - if (chan=0) and EAXUsed then - begin - flags:=flags and not (BASS_SAMPLE_3D or BASS_SAMPLE_MONO); - if ForcedMono<>BST_UNCHECKED then - flags:=flags or BASS_SAMPLE_MONO; - - if RemoteSong then - chan:=BASS_StreamCreateURL({ansi}url,0,flags,@StatusProc,nil) - else - chan:=BASS_StreamCreateFile(FALSE,url,0,0,flags); - end; - - if (chan=0) and RemoteSong then - begin - if BASS_ErrorGetCode=BASS_ERROR_FILEOPEN then - begin - flags:=flags and not BASS_UNICODE; - chan:=BASS_StreamCreateURL(FastWideToAnsiBuf(url,ansiurl),0,flags,@StatusProc,nil) - end; - end; - - if chan<>0 then break; - end; -{} - - if chan=0 then - begin - if (CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET)=RD_STATUS_ABORT) or - (plist=nil) then - begin - CallService(MS_RADIO_COMMAND,MRC_STOP,1); - end - else if plist<>nil then - CallService(MS_RADIO_COMMAND,MRC_NEXT,0); - end - else - begin - - CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_NEWTRACK); - - if RemoteSong then - begin - if isEQ_OFF=BST_UNCHECKED then - EQ_ON; - -{$IFDEF CHANGE_NAME_BUFFERED} - icy:=DBReadString(ActiveContact,strCList,optMyHandle); - mGetMem(url,StrLen(icy)+6); - StrCopy(url+6,icy); - mFreeMem(icy); - url[0]:='['; - url[1]:=#0; - url[4]:=']'; - url[5]:=' '; -{$ENDIF} - progress:=0; - repeat - if CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET)=RD_STATUS_ABORT then - begin - CallService(MS_RADIO_COMMAND,MRC_STOP,1); - exit; - end; - len:=BASS_StreamGetFilePosition(chan,BASS_FILEPOS_END); - if len=DW_ERROR then - break; - progress:=BASS_StreamGetFilePosition(chan, BASS_FILEPOS_DOWNLOAD); - if progress=dword(-1) then - break; - progress:=(progress- - BASS_StreamGetFilePosition(chan,BASS_FILEPOS_CURRENT))*100 div len; - // percentage of buffer filled -{$IFDEF CHANGE_NAME_BUFFERED} - IntToStr(url+1,progress,2); - url[3]:='%'; - DBWriteString(ActiveContact,strCList,optMyHandle,url); -{$ENDIF} - until progress>sPreBuf; -{$IFDEF CHANGE_NAME_BUFFERED} - if url[1]<>#0 then - DBWriteString(ActiveContact,strCList,optMyHandle,url+6); - mFreeMem(url); -{$ENDIF} - - ProcessStationData; // process ICY-headers - - // get the stream title and set sync for subsequent titles - DoMeta(nil,BASS_TAG_META); - - syncMETA:=BASS_ChannelSetSync(chan,BASS_SYNC_META ,0,@MetaSync,pointer(BASS_TAG_META)); - syncOGG :=BASS_ChannelSetSync(chan,BASS_SYNC_OGG_CHANGE,0,@MetaSync,pointer(BASS_TAG_OGG)); - syncWMA :=BASS_ChannelSetSync(chan,BASS_SYNC_WMA_CHANGE,0,@MetaSync,pointer(BASS_TAG_WMA)); - syncWMA1:=BASS_ChannelSetSync(chan,BASS_SYNC_WMA_META ,0,@MetaSync,pointer(BASS_TAG_WMA_META)); - end - else - begin - if not DoMeta(nil,BASS_TAG_OGG) then - if not DoMeta(nil,BASS_TAG_ID3V2) then - if not DoMeta(nil,BASS_TAG_ID3) then - if not DoMeta(nil,BASS_TAG_APE) then - ; - - end; - - syncEND:=BASS_ChannelSetSync(chan,BASS_SYNC_END,0,@EndSync,nil); - - SetSndVol(-1); - // play it! - BASS_ChannelPlay(chan,FALSE); - end; -end; diff --git a/plugins/mRadio/i_cc.inc b/plugins/mRadio/i_cc.inc deleted file mode 100644 index deb993ec0c..0000000000 --- a/plugins/mRadio/i_cc.inc +++ /dev/null @@ -1,433 +0,0 @@ -{} - -function GetStatusText(status:integer;toCList:boolean=false):PWideChar; -begin - case status of - RD_STATUS_PAUSED : result:='paused'; - RD_STATUS_STOPPED: if toCList then result:=nil else result:='stopped'; - RD_STATUS_CONNECT: result:='connecting'; - RD_STATUS_ABORT : result:='aborting'; - RD_STATUS_PLAYING: if toCList then result:=nil else result:='playing'; - else - result:=nil; - end; -end; - -procedure ConstructMsg(artist,title:PWideChar;status:integer=-1); -var - buf:PWideChar; - tstrlen,astrlen,statuslen:integer; - sstatus:PWideChar; - p:pWideChar; -begin - astrlen:=StrLenW(artist); - - tstrlen:=0; - // if need to remove duplicate - if (title<>nil) and (title^<>#0) then - begin - if (astrlen=0) or (StrCmpW(artist,title)<>0) then - tstrlen:=StrLenW(title); - end; - if (astrlen>0) and (tstrlen>0) then - inc(tstrlen,3); - - statuslen:=0; - if status>=0 then - begin - sstatus:=TranslateW(GetStatusText(status,true)); - if sstatus<>nil then - statuslen:=StrLenW(sstatus)+3; - end - else - sstatus:=nil; - - if (astrlen+tstrlen+statuslen)>0 then - begin - mGetMem(buf,(astrlen+tstrlen+statuslen+1)*SizeOf(WideChar)); - p:=buf; - if astrlen>0 then - p:=StrCopyEW(p,artist); - - if tstrlen>0 then - begin - if astrlen>0 then - begin - p^:=' '; inc(p); - p^:='-'; inc(p); - p^:=' '; inc(p); - end; - p:=StrCopyEW(p,title); - end; - - if statuslen>0 then - begin - p^:=' '; inc(p); - p^:='('; inc(p); - p:=StrCopyEW(p,sstatus); - p^:=')'; inc(p); - p^:=#0; - end; - - DBWriteUnicode(ActiveContact,strCList,optStatusMsg,buf); - mFreeMem(buf); - end - else - DBDeleteSetting(ActiveContact,strCList,optStatusMsg); -end; - -{$IFDEF Debug} -procedure log(a,b:lparam); -var - f:thandle; - buf:array [0..31] of ansichar; - p:pansichar; -begin - f:=Append(pansichar('mradio.log')); - p:=IntToStr(buf,a); BlockWrite(f,p^,StrLen(p)); - p:=#13#10; BlockWrite(f,p^,StrLen(p)); - p:=IntToStr(buf,b); BlockWrite(f,p^,StrLen(p)); - p:=#13#10; BlockWrite(f,p^,StrLen(p)); - p:=#13#10; BlockWrite(f,p^,StrLen(p)); - CloseHandle(f); -end; -{$ENDIF} - -function ControlCenter(code:WPARAM;arg:LPARAM):int_ptr; cdecl; -const - PlayStatus:int_ptr=RD_STATUS_NOSTATION; - doRecord:boolean=false; -var - tmpbuf,buf1:array [0..MAX_PATH-1] of WideChar; - plFile:pWideChar; - plLocal:boolean; - artist,title:pWideChar; -begin - result:=0; -{$IFDEF Debug} - log(code,arg); -{$ENDIF} - case code of - MRC_PLAY : begin - // play new station? - if arg<>0 then - begin - ActiveURLw:=DBReadUnicode(arg,PluginName,optStationURL); - // no URL for this contact - if (ActiveURLw=nil) or (ActiveURLw^=#0) then exit; - - ActiveContact:=arg; - RemoteSong:=StrPosW(ActiveURLw,'://')<>nil; - - if isPlaylist(ActiveURLw)<>0 then - begin - - if RemoteSong then - begin - GetTempPathW(MAX_PATH,tmpbuf); - GetTempFileNameW(tmpbuf,'mr',GetCurrentTime,buf1); - if not GetFile(ActiveURLw,buf1,hNetLib) then - begin - exit; - end; - plFile:=@buf1; - plLocal:=false; - end - else - begin - plFile:=ActiveURLw; - plLocal:=true; - end; - - plist:=CreatePlaylist(plFile); - if not plLocal then - DeleteFileW(plFile); - - if plist<>nil then - begin - if plist.GetCount=0 then - begin - plist.Free; - plist:=nil; - ActiveContact:=0; - exit; - end; - plist.Shuffle:=doShuffle<>BST_UNCHECKED; - - if not plist.Shuffle then - begin - if PlayFirst=BST_UNCHECKED then - plist.Track:=DBReadWord(ActiveContact,PluginName,optCurElement); - end; - - mFreeMem(ActiveURLw); - ActiveURLw:=plist.GetSong; - end; - RemoteSong:=StrPosW(ActiveURLw,'://')<>nil; // coz activeuRLw can be changed - end - else - plist:=nil; - - if (ActiveURLw<>nil) and (ActiveURLw^<>#0) then - begin - if RemoteSong then - begin - if GetWorkOfflineStatus<>0 then - begin - BassError('Can''t connect to net. Please, clear ''Work offline'' option in Internet settings'); - ControlCenter(MRC_STATUS,RD_STATUS_NOSTATION); - exit; - end; - end; - ControlCenter(MRC_STATUS,RD_STATUS_NEWSTATION); - if Assigned(plist) then - ControlCenter(MRC_STATUS,RD_STATUS_CONNECT); - CloseHandle(mir_forkthread(@OpenURL,ActiveURLw)); - end; - end - // play current from start - else if chan<>0 then - begin - BASS_ChannelPlay(chan,true); - code:=MRC_STATUS; - arg :=RD_STATUS_PLAYING; - end - // play playlist entry? - else if Assigned(plist) and (ActiveURLw<>nil) and (ActiveURLw^<>#0) then - begin - CloseHandle(mir_forkthread(@OpenURL,ActiveURLw)); - end; - end; - - MRC_RECORD: begin - if arg=LPARAM(-1) then - result:=ord(doRecord) - else - begin - case arg of - 1: doRecord:=true; // force start - 2: doRecord:=false; // force stop - else - doRecord:=not doRecord; - end; - result:=ord(doRecord); - - code:=MRC_STATUS; - arg :=RD_STATUS_RECORD+(result shl 16); - end; - end; - - MRC_PAUSE: begin - if chan<>0 then - begin - case ControlCenter(MRC_STATUS,RD_STATUS_GET) of - RD_STATUS_PLAYING: begin - BASS_ChannelPause(chan); - arg:=1; - end; - RD_STATUS_PAUSED: begin - BASS_ChannelPlay(chan,false); - arg:=0; - end; - end; - code:=MRC_STATUS; - arg :=RD_STATUS_PAUSED+(arg shl 16); - end - else - begin - ActiveContact:=LoadContact(PluginName,optLastStn); - if ActiveContact<>0 then - ControlCenter(MRC_PLAY,ActiveContact); - end; - end; - - MRC_STOP: begin - ControlCenter(MRC_RECORD,2); - - code:=MRC_STATUS; - // stop playlist track but not station - if Assigned(plist) and (arg=0) then - begin - if chan<>0 then - BASS_ChannelStop(chan); - - arg:=RD_STATUS_STOPPED; - end - else // forced or "normal" stop - begin - if Assigned(plist) then - begin - DBWriteWord(ActiveContact,PluginName,optCurElement,plist.Track); - plist.Free; - plist:=nil; - end; - ControlCenter(MRC_STATUS,RD_STATUS_STOPPED); - // Save station for next autoplay - SaveContact(ActiveContact,PluginName,optLastStn); - StopStation; - - arg:=RD_STATUS_NOSTATION; - end; - end; - - MRC_MUTE: begin - CallService(MS_RADIO_MUTE,0,arg); - code:=MRC_STATUS; - arg :=RD_STATUS_MUTED; - end; - - MRC_NEXT: begin - if Assigned(plist) then - begin - StopStation; - ActiveURLw:=plist.Next; - ControlCenter(MRC_PLAY,0); - end; - end; - - MRC_PREV: begin - if Assigned(plist) then - begin - StopStation; - ActiveURLw:=plist.Previous; - ControlCenter(MRC_PLAY,0) - end; - end; - - MRC_SEEK: begin - if not RemoteSong and (chan<>0) then - begin - if integer(arg)=-1 then // get position - begin - result:=trunc(BASS_ChannelBytes2Seconds(chan,BASS_ChannelGetPosition(chan,BASS_POS_BYTE))); - if result<0 then - result:=0; - end - else - begin - BASS_ChannelSetPosition(chan,BASS_ChannelSeconds2Bytes(chan,arg),BASS_POS_BYTE); - - code:=MRC_STATUS; - arg :=RD_STATUS_POSITION+(arg shl 16); - end; - end; - end; - end; - - if code=MRC_STATUS then - begin - if arg=RD_STATUS_GET then - result:=PlayStatus - else - begin - - code:=(arg and $FFFF); - arg :=hiword(arg); - // this is just events - case code of - RD_STATUS_MUTED: begin - end; - - RD_STATUS_RECORD: begin - end; - - RD_STATUS_POSITION: begin - end; - - else - // these statuses are for events and some tasks - artist:=nil; - title :=nil; - case code of - RD_STATUS_NOSTATION: begin - SetStatus(ActiveContact,ID_STATUS_OFFLINE); - ActiveContact:=0; - - DBDeleteSetting(0,PluginName,optActiveURL); - - PlayStatus:=RD_STATUS_NOSTATION; - // empty message - end; - - RD_STATUS_STOPPED: begin - if ActiveContact<>0 then //!! fools proof - DBDeleteSetting(ActiveContact,strCList,optStatusMsg); - - DBDeleteSetting(0,PluginName,optTitle); - DBDeleteSetting(0,PluginName,optArtist); - - PlayStatus:=RD_STATUS_STOPPED; - // empty message - end; - - RD_STATUS_ABORT: begin - PlayStatus:=RD_STATUS_ABORT; - // status as message - end; - - RD_STATUS_CONNECT: begin - SetStatus(ActiveContact,ID_STATUS_AWAY); - PlayStatus:=RD_STATUS_CONNECT; - // status as message - end; - - RD_STATUS_NEWSTATION: begin - arg:=ActiveContact; - PlayStatus:=RD_STATUS_PLAYING; - end; - - RD_STATUS_NEWTRACK: begin - SetStatus(ActiveContact,ID_STATUS_ONLINE); - DBWriteUnicode(0,PluginName,optActiveURL,ActiveURLw); - - DBWriteString(0,PluginName,optActiveCodec,GetMusicFormat); - arg :=lparam(ActiveURLw); - - // for case when tags was in meta - artist:=DBReadUnicode(0,PluginName,optArtist); - title :=DBReadUnicode(0,PluginName,optTitle); - PlayStatus:=RD_STATUS_PLAYING; - // status as message - end; - - RD_STATUS_NEWTAG: begin - // must be updated tags - artist:=DBReadUnicode(0,PluginName,optArtist); - title :=DBReadUnicode(0,PluginName,optTitle); - - PlayStatus:=RD_STATUS_PLAYING; // maybe keep RD_STATUS_NEWTAG? - end; - - RD_STATUS_PLAYING: begin - SetStatus(ActiveContact,ID_STATUS_ONLINE); - PlayStatus:=RD_STATUS_PLAYING; - // status as message - end; - - RD_STATUS_PAUSED: begin - if arg=0 then - begin - PlayStatus:=RD_STATUS_PLAYING; - if StrPosW(ActiveURLw,'://')=nil then //local only - begin - artist:=DBReadUnicode(0,PluginName,optArtist); - title :=DBReadUnicode(0,PluginName,optTitle); - end; - end - else - PlayStatus:=RD_STATUS_PAUSED; - // status as message - end; - else - exit; - end; - ConstructMsg(artist,title,PlayStatus); - mFreeMem(artist); - mFreeMem(title); - end; - - NotifyEventHooks(hhRadioStatus,code,arg); - end; - - end; -end; diff --git a/plugins/mRadio/i_frame.inc b/plugins/mRadio/i_frame.inc deleted file mode 100644 index 89de119d0e..0000000000 --- a/plugins/mRadio/i_frame.inc +++ /dev/null @@ -1,242 +0,0 @@ -{mRadio frame} -const - frm_back:pAnsiChar = 'Frame background'; -const - FrameWnd:HWND = 0; - FrameId:integer = -1; - OldEditProc:pointer=nil; - pattern:pWideChar=nil; - current: THANDLE = 0; -var - FrameCtrl:PControl; - colorhook:THANDLE; - hbr:HBRUSH; - frm_bkg:TCOLORREF; - -function RadioFrameProc( Sender: PControl; var Msg: TMsg; var Rslt:Integer ): boolean; -begin - result:=false; - rslt:=0; - - case Msg.message of - - WM_DESTROY: begin - hVolFrmCtrl:=0; - DeleteObject(hbr); - end; - - WM_SHOWWINDOW: begin - Rslt:=1; - with Sender^ do - hVolFrmCtrl:=Children[1].Handle; - end; - - WM_CTLCOLORSTATIC: begin -// SetBkColor(msg.wParam, frm_bkg); - Rslt:=hbr; - result:=True; - end; - - WM_CONTEXTMENU: begin - CallService('mRadio/Settings',0,0); - end; - - WM_HSCROLL: begin - case loword(msg.wParam) of - SB_THUMBTRACK: begin -// gVolume:=Hiword(msg.wParam); - Service_RadioSetVolume(Hiword(msg.wParam){gVolume},2); - end; - SB_ENDSCROLL: begin -// gVolume:=SendMessage(msg.lParam,TBM_GETPOS,0,0); - Service_RadioSetVolume({Hiword(msg.wParam)}SendMessage(msg.lParam,TBM_GETPOS,0,0){gVolume},2) - end; - end; - end; - - end; -end; - -function DoAction(action:integer):integer; -begin - result:=Service_RadioMute(0,1); -end; - -function ColorReload(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var - cid:TColourID; -// wnd:HWND; -// i:integer; -begin - result:=0; - cid.cbSize:=SizeOf(cid); - StrCopy(cid.group,cPluginName); - StrCopy(cid.name ,frm_back); - frm_bkg:=CallService(MS_COLOUR_GETA,dword(@cid),0); - if hbr<>0 then DeleteObject(hbr); - hbr:=CreateSolidBrush(frm_bkg); - - FrameCtrl.Children[1].Width := FrameCtrl.Children[1].Width-1; - FrameCtrl.Children[1].Width := FrameCtrl.Children[1].Width+1; - - FrameCtrl.InvalidateEx; - FrameCtrl.Update; -end; - -function GetIcon(action:integer;stat:integer=AST_NORMAL):cardinal; -begin - case stat of - AST_NORMAL : result:=CallService(MS_SKIN2_GETICON,0,dword(IcoBtnOn)); - AST_PRESSED: result:=CallService(MS_SKIN2_GETICON,0,dword(IcoBtnOff)); - else - result:=0; - end; -end; - -procedure MyErase(DummySelf, Sender:PControl; DC:HDC); -begin -end; - -procedure MyEraseFrame(DummySelf, Sender:PControl; DC:HDC); -var - rc:TRECT; -begin - GetClientRect(Sender.Handle, rc); - Sender.Canvas.Brush.Color := frm_bkg; - Sender.Canvas.FillRect(rc); -end; - -function CreateFrameWindow(parent:HWND):THANDLE; -var - TB:PTrackbar; -begin - result:=0; - - FrameCtrl:=NewAlienPanel(parent,esNone); - if FrameCtrl<>nil then - begin - result:=FrameCtrl.GetWindowHandle; - with FrameCtrl^ do - begin - // Button - btnMute:=CreateIcoButton(FrameCtrl,GetIcon,DoAction,IDC_RADIO_MUTE); - with btnMute^ do - begin - SetSize(16,16); - SetPosition(FrameCtrl.Width-18,0); - Anchor(false,true,true,false); - - AsCheckbox:=true; - end; - - // Trackbar - TB:=NewTrackbar(FrameCtrl,[trbTooltips,trbNoTicks,trbBoth,trbNoBorder],nil); - with TB^ do - begin - SetSize(FrameCtrl.Width-24,18); - SetPosition(2,0); - Anchor(true,true,true,false); - - RangeMin:=0; - RangeMax:=100; - PageSize:=20; - - OnEraseBkGnd:=TOnPaint(MakeMethod(nil, @MyErase)); - end; - - AttachProc(@RadioFrameProc); - end; - - with FrameCtrl^ do - begin - MinWidth :=80; - MinHeight:=20; - Height:=18; - Anchor(true,true,true,true); -// OnMessage:=TOnMessage(MakeMethod(nil, @MyEraseFrame)); - OnEraseBkGnd:=TOnPaint(MakeMethod(nil, @MyEraseFrame)); -{ - OnPaint :=FrameCtrl.Paint; - OnResize :=FrameCtrl.FrameResize; - OnMouseDown:=FrameCtrl.MouseDown; -} - end; - end; -end; - -procedure CreateFrame(parent:HWND); -var - Frame:TCLISTFrame; -// wnd:HWND; -// tmp:cardinal; - tr:TRECT; - cid:TColourID; -begin - if ServiceExists(MS_CLIST_FRAMES_ADDFRAME)=0 then - exit; - if parent=0 then - parent:=CallService(MS_CLUI_GETHWND,0,0); - - FrameWnd:=CreateFrameWindow(parent); - - if FrameWnd<>0 then - begin - GetWindowRect(FrameWnd,tr); - FillChar(Frame,SizeOf(Frame),0); - with Frame do - begin - cbSize :=SizeOf(Frame); - hWnd :=FrameWnd; - hIcon :=0; - align :=alTop; - height :=tr.bottom-tr.top+2; - if IsAnsi then - begin - Flags :=F_VISIBLE or F_NOBORDER; - name.a :=cPluginName; - TBName.a:=cPluginName + ' volume control'; - end - else - begin - Flags :=F_VISIBLE or F_NOBORDER or F_UNICODE; - name.w :=cPluginName; - TBName.w:=cPluginName + ' volume control'; - end; - end; - - FrameId:=CallService(MS_CLIST_FRAMES_ADDFRAME,dword(@Frame),0); - if FrameId>=0 then - begin - CallService(MS_CLIST_FRAMES_UPDATEFRAME,FrameId, FU_FMPOS); - - cid.cbSize:=SizeOf(cid); - cid.flags :=0; - StrCopy(cid.group,cPluginName); - StrCopy(cid.dbSettingsGroup,cPluginName); - - StrCopy(cid.name ,frm_back); - StrCopy(cid.setting,'frame_back'); - cid.defcolour:=COLOR_3DFACE; - cid.order :=0; - ColourRegister(@cid); - - hbr:=0; - colorhook:=HookEvent(ME_COLOUR_RELOAD,@ColorReload); - ColorReload(0,0); - Service_RadioSetVolume(gVolume,0); - end; - end; -end; - -procedure DestroyFrame; -begin - if FrameId>=0 then - begin - UnhookEvent(colorhook); - CallService(MS_CLIST_FRAMES_REMOVEFRAME,FrameId,0); - FrameId:=-1; - end; - FrameCtrl.Free; - // DestroyWindow(FrameWnd); - FrameWnd:=0; -end; diff --git a/plugins/mRadio/i_frameapi.inc b/plugins/mRadio/i_frameapi.inc deleted file mode 100644 index 002e2fc142..0000000000 --- a/plugins/mRadio/i_frameapi.inc +++ /dev/null @@ -1,234 +0,0 @@ -{mRadio frame} -const - frm_back:pAnsiChar = 'Frame background'; -const - FrameWnd:HWND = 0; - FrameId:integer = -1; -var - colorhook:THANDLE; - hbr:HBRUSH; - frm_bkg:TCOLORREF; - OldBtnWndProc:pointer; - OldSliderWndProc:pointer; - -function QSDlgResizer(Dialog:HWND;lParam:LPARAM;urc:PUTILRESIZECONTROL):int; cdecl; -begin - case urc^.wId of - IDC_RADIO_MUTE: result:=RD_ANCHORX_RIGHT or RD_ANCHORY_CENTRE; - IDC_RADIO_VOL : result:=RD_ANCHORX_WIDTH or RD_ANCHORY_CENTRE; - else - result:=0; - end; -end; - -function SliderWndProc(Dialog:HWnd;hMessage:UINT;wParam:WPARAM;lParam:LPARAM):lresult; stdcall; -begin - if hMessage=WM_ERASEBKGND then - result:=1 - else - result:=CallWindowProc(OldSliderWndProc, Dialog, hMessage, wParam, lParam); -end; - -function BtnWndProc(Dialog:HWnd;hMessage:UINT;wParam:WPARAM;lParam:LPARAM):lresult; stdcall; -begin - if hMessage=WM_ERASEBKGND then - result:=1 - else - result:=CallWindowProc(OldBtnWndProc, Dialog, hMessage, wParam, lParam); -end; - -function RadioFrameProc(Dialog:HWnd;hMessage:UINT;wParam:WPARAM;lParam:LPARAM):lresult; stdcall; -var - urd:TUTILRESIZEDIALOG; - rc:TRECT; - ti:TTOOLINFOW; - hwndTooltip:HWND; -begin - result:=0; - case hMessage of - WM_DESTROY: begin - hVolFrmCtrl :=0; - hMuteFrmCtrl:=0; - DeleteObject(hbr); - end; - - WM_INITDIALOG: begin - hMuteFrmCtrl:=GetDlgItem(Dialog,IDC_RADIO_MUTE); - SendMessage(hMuteFrmCtrl, BUTTONSETASFLATBTN,0,0); - SetButtonIcon(hMuteFrmCtrl,IcoBtnOn); - - hwndTooltip:=CreateWindowW(TOOLTIPS_CLASS,nil,TTS_ALWAYSTIP, - integer(CW_USEDEFAULT),integer(CW_USEDEFAULT), - integer(CW_USEDEFAULT),integer(CW_USEDEFAULT), - Dialog,0,hInstance,nil); - - FillChar(ti,SizeOf(ti),0); - ti.cbSize :=sizeof(TOOLINFO); - ti.uFlags :=TTF_IDISHWND or TTF_SUBCLASS; - ti.hwnd :=Dialog; - ti.hinst :=hInstance; - ti.uId :=hMuteFrmCtrl; - ti.lpszText:=pWideChar(TranslateW('Mute')); - SendMessageW(hwndTooltip,TTM_ADDTOOLW,0,tlparam(@ti)); - - hVolFrmCtrl:=GetDlgItem(Dialog,IDC_RADIO_VOL); - SendMessage(hVolFrmCtrl,TBM_SETRANGE,0,MAKELONG(0,100)); - SendMessage(hVolFrmCtrl,TBM_SETPAGESIZE,0,20); - SendMessage(hVolFrmCtrl,TBM_SETPOS,1,gVolume); - - OldSliderWndProc:=pointer(SetWindowLongPtrW(hVolFrmCtrl,GWL_WNDPROC,LONG_PTR(@SliderWndProc))); - OldBtnWndProc :=pointer(SetWindowLongPtrW(hVolFrmCtrl,GWL_WNDPROC,LONG_PTR(@BtnWndProc))); - end; - - WM_SIZE: begin - FillChar(urd,SizeOf(TUTILRESIZEDIALOG),0); - urd.cbSize :=SizeOf(urd); - urd.hwndDlg :=Dialog; - urd.hInstance :=hInstance; - urd.lpTemplate:=MAKEINTRESOURCEA(IDD_FRAME); - urd.lParam :=0; - urd.pfnResizer:=@QSDlgResizer; - CallService(MS_UTILS_RESIZEDIALOG,0,tlparam(@urd)); - end; - - WM_ERASEBKGND: begin - GetClientRect(Dialog,rc); - FillRect(wParam,rc,hbr); - result:=1; - end; - - WM_CTLCOLORSTATIC: begin - if THANDLE(lParam)=hVolFrmCtrl then - begin - SetBkColor(wParam, frm_bkg); - result:=hbr; - end; - end; - - WM_CONTEXTMENU: begin - CallService(cPluginName + '/Settings',0,0); - end; - - WM_COMMAND: begin - case wParam shr 16 of - - BN_CLICKED: begin - case loword(wParam) of - IDC_RADIO_MUTE: begin - Service_RadioMute(0,1); - end; - end; - end; - end; - end; - - WM_HSCROLL: begin -// gVolume:=SendMessage(lParam,TBM_GETPOS,0,0); - Service_RadioSetVolume(SendMessage(lParam,TBM_GETPOS,0,0){gVolume},2) - end; - - else - result:=DefWindowProc(Dialog,hMessage,wParam,lParam); - end; -end; - -function ColorReload(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var - cid:TColourID; - wnd:HWND; -begin - result:=0; - cid.cbSize:=SizeOf(cid); - StrCopy(cid.group,cPluginName); - StrCopy(cid.name ,frm_back); - frm_bkg:=CallService(MS_COLOUR_GETA,twparam(@cid),0); - if hbr<>0 then DeleteObject(hbr); - hbr:=CreateSolidBrush(frm_bkg); - - wnd:=GetFocus(); - InvalidateRect(hVolFrmCtrl,nil,true); - SetFocus(hVolFrmCtrl); - RedrawWindow(FrameWnd,nil,0,RDW_INVALIDATE or RDW_ALLCHILDREN or RDW_ERASE); - SetFocus(wnd); -end; - -procedure CreateFrame(parent:HWND); -var - Frame:TCLISTFrame; - wnd:HWND; - tmp:cardinal; - tr:TRECT; - cid:TColourID; -begin - if ServiceExists(MS_CLIST_FRAMES_ADDFRAME)=0 then - exit; - if parent=0 then - parent:=CallService(MS_CLUI_GETHWND,0,0); - - if FrameWnd=0 then - FrameWnd:=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_FRAME),parent,@RadioFrameProc); - - if FrameWnd<>0 then - begin - GetWindowRect(FrameWnd,tr); - FillChar(Frame,SizeOf(Frame),0); - with Frame do - begin - cbSize :=SizeOf(Frame); - hWnd :=FrameWnd; - hIcon :=0; - align :=alTop; - height :=tr.bottom-tr.top+2; - if IsAnsi then - begin - Flags :=F_VISIBLE or F_NOBORDER; - name.a :=cPluginName; - TBName.a:=cPluginName + ' volume control'; - end - else - begin - Flags :=F_VISIBLE or F_NOBORDER or F_UNICODE; - name.w :=cPluginName; - TBName.w:=cPluginName + ' volume control'; - end; - end; - - FrameId:=CallService(MS_CLIST_FRAMES_ADDFRAME,wparam(@Frame),0); - if FrameId>=0 then - begin - CallService(MS_CLIST_FRAMES_UPDATEFRAME,FrameId, FU_FMPOS); - - wnd:=CallService(MS_CLUI_GETHWND{MS_CLUI_GETHWNDTREE},0,0); - tmp:=SendMessage(wnd,CLM_GETEXSTYLE,0,0); - SendMessage(wnd,CLM_SETEXSTYLE,tmp or CLS_EX_SHOWSELALWAYS,0); - - cid.cbSize:=SizeOf(cid); - cid.flags :=0; - StrCopy(cid.group,cPluginName); - StrCopy(cid.dbSettingsGroup,cPluginName); - - StrCopy(cid.name ,frm_back); - StrCopy(cid.setting,'frame_back'); - cid.defcolour:=COLOR_3DFACE; - cid.order :=0; - ColourRegister(@cid); - - hbr:=0; - colorhook:=HookEvent(ME_COLOUR_RELOAD,@ColorReload); - ColorReload(0,0); - Service_RadioSetVolume(gVolume,0); - end; - end; -end; - -procedure DestroyFrame; -begin - if FrameId>=0 then - begin - UnhookEvent(colorhook); - CallService(MS_CLIST_FRAMES_REMOVEFRAME,FrameId,0); - FrameId:=-1; - end; - DestroyWindow(FrameWnd); - FrameWnd:=0; -end; diff --git a/plugins/mRadio/i_hotkey.inc b/plugins/mRadio/i_hotkey.inc deleted file mode 100644 index 04271fe824..0000000000 --- a/plugins/mRadio/i_hotkey.inc +++ /dev/null @@ -1,61 +0,0 @@ -{} -const - hRadioHotkey:THANDLE=0; -const - MS_RADIO_HOTKEY:PAnsiChar = 'mRadio/Hotkey'; - - HKN_PLAYPAUSE :PAnsiChar = 'mRadio_PlayPause'; - HKN_STOP :PAnsiChar = 'mRadio_Stop'; - HKN_MUTE :PAnsiChar = 'mRadio_Mute'; - - DefRadioKeyMute = ((HOTKEYF_EXT or HOTKEYF_SHIFT) shl 8) or ORD('M'); - DefRadioKeyPlay = ((HOTKEYF_EXT or HOTKEYF_SHIFT) shl 8) or ORD('P'); - DefRadioKeyStop = ((HOTKEYF_EXT or HOTKEYF_SHIFT) shl 8) or ORD('S'); - -function mRadio_Hotkey(wParam:WPARAM;lParam:LPARAM):int_ptr; cdecl; -begin - if lParam=MRC_MUTE then - result:=Service_RadioMute(0,0) - else - result:=CallService(MS_RADIO_COMMAND,lParam,0); -end; - -procedure RegisterHotKey; -var - hkrec:HOTKEYDESC; -begin - hRadioHotkey:=CreateServiceFunction(MS_RADIO_HOTKEY,@mRadio_Hotkey); - - FillChar(hkrec,SizeOf(hkrec),0); - - hkrec.cbSize :=HOTKEYDESC_SIZE_V1; - hkrec.pszSection.a :=PluginName; - hkrec.pszService :=MS_RADIO_HOTKEY; - - hkrec.DefHotKey :=DefRadioKeyPlay; - hkrec.pszName :=HKN_PLAYPAUSE; - hkrec.pszDescription.a:='Play/Pause'; - hkrec.lParam :=MRC_PAUSE; - CallService(MS_HOTKEY_REGISTER,0,lparam(@hkrec)); - - hkrec.DefHotKey :=DefRadioKeyStop; - hkrec.pszName :=HKN_STOP; - hkrec.pszDescription.a:='Stop'; - hkrec.lParam :=MRC_STOP; - CallService(MS_HOTKEY_REGISTER,0,lparam(@hkrec)); - - hkrec.DefHotKey :=DefRadioKeyMute; - hkrec.pszName :=HKN_MUTE; - hkrec.pszDescription.a:='Mute'; - hkrec.lParam :=MRC_MUTE; - CallService(MS_HOTKEY_REGISTER,0,lparam(@hkrec)); -end; - -procedure UnregisterHotKey; -begin - CallService(MS_HOTKEY_UNREGISTER,0,lparam(HKN_PLAYPAUSE)); - CallService(MS_HOTKEY_UNREGISTER,0,lparam(HKN_STOP)); - CallService(MS_HOTKEY_UNREGISTER,0,lparam(HKN_MUTE)); - - DestroyServiceFunction(hRadioHotkey); -end; diff --git a/plugins/mRadio/i_myservice.inc b/plugins/mRadio/i_myservice.inc deleted file mode 100644 index b8338a0d81..0000000000 --- a/plugins/mRadio/i_myservice.inc +++ /dev/null @@ -1,178 +0,0 @@ -{My services} - -function Service_RadioPlayStop(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var - p:PAnsiChar; - lnew:bool; - hContact:THANDLE; - cni:TCONTACTINFO; - i:integer; -begin - result:=0; - if lParam=0 then - begin - if wParam=0 then - wParam:=GetCListSelContact; - p:=GetContactProtoAcc(wParam); - if (p=nil) or (StrCmp(p,PluginName)<>0) then - exit; - hContact:=wParam; - end - // wParam = station name - else - begin - FillChar(cni,SizeOf(cni),0); - cni.cbSize :=sizeof(cni); - if lParam=1 then - cni.dwFlag:=CNF_DISPLAY - else - cni.dwFlag:=CNF_DISPLAY or CNF_UNICODE; - cni.szProto :=PluginName; - - hContact:=CallService(MS_DB_CONTACT_FINDFIRST,0,0); - while hContact<>0 do - begin - p:=PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)); - if (p<>nil) and (StrCmp(p,PluginName)=0) then - begin - cni.hContact:=hContact; - if CallService(MS_CONTACT_GETCONTACTINFO,0,tlparam(@cni))=0 then - begin - if lParam=1 then - i:=StrCmp(pAnsiChar(wParam),cni.retval.szVal.a) - else - i:=StrCmpW(pWideChar(wParam),cni.retval.szVal.w); - mir_free(cni.retval.szVal.w); - if i=0 then - break; - end; - end; - hContact:=CallService(MS_DB_CONTACT_FINDNEXT,hContact,0); - end; - end; - - if hContact<>0 then - begin - result:=1; - if PluginStatus=ID_STATUS_OFFLINE then - Service_SetStatus(ID_STATUS_ONLINE,0); - - case CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET) of - RD_STATUS_CONNECT: begin //break while connect - CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_ABORT); - exit; - end; - RD_STATUS_ABORT: exit; - end; - - lnew:=ActiveContact<>hContact; - - if ActiveContact<>0 then - CallService(MS_RADIO_COMMAND,MRC_STOP,1); - - if lnew then - CallService(MS_RADIO_COMMAND,MRC_PLAY,hContact); - end; -end; - -function Service_RadioSettings(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var - ood:TOPENOPTIONSDIALOG; -begin - result:=0; - ood.cbSize:=SizeOf(ood); - ood.pszGroup:='Network'; - ood.pszPage :=PluginName; - ood.pszTab :=Translate('Advanced'); - CallService(MS_OPT_OPENOPTIONS,0,tlparam(@ood)); -end; - -function Service_RadioRecord(wParam:WPARAM;lParam:LPARAM):int;cdecl; -begin - if lParam<>0 then lParam:=TLPARAM(-1) else lParam:=0; - - result:=CallService(MS_RADIO_COMMAND,MRC_RECORD,lParam); -end; - -function Service_RadioGetVolume(wParam:WPARAM;lParam:LPARAM):int;cdecl; -begin - result:=gVolume; -end; - -function Service_RadioSetVolume(wParam:WPARAM;lParam:LPARAM):int;cdecl; -begin - result:=Service_RadioGetVolume(0,0); - SetSndVol(wParam); - - DBWriteByte(0,PluginName,optVolume,ABS(wParam)); - if lParam<>2 then // not from Frame - if hVolFrmCtrl<>0 then - SendMessage(hVolFrmCtrl,TBM_SETPOS,1,ABS(wParam)); - - if lParam<>1 then // not from Settings - if hVolCtrl<>0 then - SendMessage(hVolCtrl,TBM_SETPOS,1,ABS(wParam)); - -end; - -function Service_RadioMute(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var -{$IFDEF KOL_MCK} - med:TMouseEventData; -{$ELSE} - tmp:pAnsiChar; -{$ENDIF} -begin - if gVolume=0 then - gVolume:=-1 - else - gVolume:=-gVolume; - Result:=Service_RadioSetVolume(gVolume,0); - if hVolFrmCtrl<>0 then - EnableWindow(hVolFrmCtrl,gVolume>=0); - -{$IFDEF KOL_MCK} - if lParam=0 then // 0 - from Service, not frame - begin - if btnMute<>nil then - begin - FillChar(med,SizeOf(med),0); - med.Button:=mbLeft; - med.StopHandling:=true; - btnMute.OnMouseDown(btnMute,med); - // btnMute.Click; // without click processing - btnMute.OnMouseUp (btnMute,med); - btnMute.Invalidate; - end - end; -{$ELSE} - if hMuteFrmCtrl<>0 then - begin - if gVolume<0 then - tmp:=IcoBtnOff - else - tmp:=IcoBtnOn; - SetButtonIcon(hMuteFrmCtrl,tmp); - end; -{$ENDIF} -end; - -function Service_EqOnOff(wParam:WPARAM;lParam:LPARAM):int;cdecl; -begin - result:=ord(isEQ_OFF=BST_UNCHECKED); - case wParam of - 0: begin - if isEQ_OFF=BST_UNCHECKED then - EQ_OFF - else - EQ_ON; - end; - 1: EQ_ON; - else - EQ_OFF; - end; - if eq[0].wnd<>0 then // if options opened - begin - CheckDlgButton(GetParent(eq[0].wnd),IDC_EQOFF,isEQ_OFF); - end; -end; diff --git a/plugins/mRadio/i_optdlg.inc b/plugins/mRadio/i_optdlg.inc deleted file mode 100644 index e047fe20a1..0000000000 --- a/plugins/mRadio/i_optdlg.inc +++ /dev/null @@ -1,962 +0,0 @@ -{Options dialog} -const - OldEQPreset:integer=-1; -const - optOldPreset:pAnsiChar='oldpreset'; - optPresets :pAnsiChar='numpreset'; - optPreset :pAnsiChar='preset_'; - optPreDescr :pAnsiChar='predescr_'; - -const - PresetMax = 17; - -procedure InitPresets; -type - tP = array [0..9] of AnsiChar; -begin - StrDupW(Presets[00].name,'Acoustic' ); tP(Presets[00].preset):=#$01#$02#$00#$00#$00#$00#$00#$01#$01#$03; - StrDupW(Presets[01].name,'Blues' ); tP(Presets[01].preset):=#$01#$02#$01#$00#$00#$00#$00#$00#$00#$FE; - StrDupW(Presets[02].name,'Classical'); tP(Presets[02].preset):=#$01#$04#$01#$00#$00#$00#$00#$00#$01#$01; - StrDupW(Presets[03].name,'Country' ); tP(Presets[03].preset):=#$00#$00#$01#$01#$00#$00#$01#$01#$01#$01; - StrDupW(Presets[04].name,'Dance' ); tP(Presets[04].preset):=#$04#$03#$02#$01#$FF#$FF#$02#$04#$05#$05; - StrDupW(Presets[05].name,'Folk' ); tP(Presets[05].preset):=#$FF#$00#$00#$01#$01#$00#$01#$01#$01#$00; - StrDupW(Presets[06].name,'Grunge' ); tP(Presets[06].preset):=#$01#$00#$FF#$00#$00#$02#$01#$FF#$FE#$FD; - StrDupW(Presets[07].name,'Jazz' ); tP(Presets[07].preset):=#$00#$01#$02#$03#$03#$01#$01#$03#$04#$05; - StrDupW(Presets[08].name,'Metall' ); tP(Presets[08].preset):=#$FE#$00#$00#$00#$00#$03#$02#$04#$06#$05; - StrDupW(Presets[09].name,'New Age' ); tP(Presets[09].preset):=#$03#$03#$00#$00#$00#$00#$00#$00#$02#$02; - StrDupW(Presets[10].name,'Opera' ); tP(Presets[10].preset):=#$00#$01#$02#$04#$01#$02#$00#$00#$00#$00; - StrDupW(Presets[11].name,'Rap' ); tP(Presets[11].preset):=#$00#$04#$04#$00#$00#$00#$01#$04#$05#$07; - StrDupW(Presets[12].name,'Reggae' ); tP(Presets[12].preset):=#$03#$00#$FD#$00#$05#$00#$02#$03#$04#$05; - StrDupW(Presets[13].name,'Rock' ); tP(Presets[13].preset):=#$00#$02#$04#$00#$00#$00#$02#$04#$05#$06; - StrDupW(Presets[14].name,'Speech' ); tP(Presets[14].preset):=#$FE#$02#$00#$00#$00#$00#$FF#$FE#$FD#$FC; - StrDupW(Presets[15].name,'Swing' ); tP(Presets[15].preset):=#$FF#$00#$00#$02#$02#$00#$02#$02#$03#$03; - StrDupW(Presets[16].name,'Techno' ); tP(Presets[16].preset):=#$05#$08#$FF#$FE#$FD#$FF#$04#$06#$06#$06; -end; - -procedure LoadPresets; -var - num,preset,descr:array [0..63] of AnsiChar; - i:integer; - p,pd:pAnsiChar; -begin - p :=StrCopyE(preset,optPreset); - pd:=StrCopyE(descr ,optPreDescr); - - i:=DBReadByte(0,PluginName,optPresets); - if i=0 then - begin - SetLength(Presets,PresetMax); - InitPresets; - end - else - begin - OldEQPreset:=integer(DBReadByte(0,PluginName,optOldPreset,byte(-1))); - SetLength(Presets,i); - for i:=0 to HIGH(Presets) do - begin - StrCopy(p ,IntToStr(num,i)); DBReadStruct (0,PluginName,preset,@Presets[i].preset,10); - StrCopy(pd,num); Presets[i].name:=DBReadUnicode(0,PluginName,descr); - end; - end; -end; - -procedure SavePresets; -var - num,preset,descr:array [0..63] of AnsiChar; - i,j:integer; - p,pd:pAnsiChar; -begin - p :=StrCopyE(preset,optPreset); - pd:=StrCopyE(descr ,optPreDescr); - j:=DBReadByte(0,PluginName,optPresets); - for i:=0 to HIGH(Presets) do - begin - StrCopy(p ,IntToStr(num,i)); DBWriteStruct (0,PluginName,preset,@Presets[i].preset,10); - StrCopy(pd,num); DBWriteUnicode(0,PluginName,descr ,Presets[i].name); - end; - while j>Length(Presets) do - begin - dec(j); - StrCopy(p ,IntToStr(num,j)); DBDeleteSetting(0,PluginName,preset); - StrCopy(pd,num); DBDeleteSetting(0,PluginName,descr); - end; - DBWriteByte(0,PluginName,optOldPreset,OldEQPreset); - DBWriteByte(0,PluginName,optPresets ,Length(Presets)); -end; - -procedure FreePresets; -var - i:integer; -begin - for i:=0 to HIGH(Presets) do - mFreeMem(Presets[i].name); -end; - -function ImportOneStation(group:PAnsiChar;section:pointer):int; -var - p:pWideChar; - pc:pAnsiChar; -begin - result:=0; - pc:=GetParamSectionStr(section,'URL'); - if pc<>nil then - begin - result:=CallService(MS_DB_CONTACT_ADD,0,0); - if result<>0 then - begin - CallService(MS_PROTO_ADDTOCONTACT,result,lparam(PluginName)); - DBWriteString(result,PluginName,optStationURL,pc); - DBWriteString(result,PluginName,optFirstName ,pc); - - pc:=GetParamSectionStr(section,optBitrate,'0'); - DBWriteString(result,PluginName,optBitrate,pc); - DBWriteWord (result,PluginName,optAge ,StrToInt(pc)); - - pc:=GetParamSectionStr(section,'Name',GetSectionName(section)); - DBWriteString(result,strCList ,optMyHandle,pc); - DBWriteString(result,PluginName,optNick ,pc); - - pc:=GetParamSectionStr(section,optGenre,'unknown'); - DBWriteString(result,PluginName,optGenre ,pc); - DBWriteString(result,PluginName,optLastName,pc); - - SetStatus(result,ID_STATUS_OFFLINE); - - if group=nil then - group:=GetParamSectionStr(section,optGroup); - - AnsiToWide(group,p,MirandaCP); - CreateGroupW(p,result); - mFreeMem(p); - CallService(MS_IGNORE_IGNORE,result,IGNOREEVENT_ALL); - end; - end; -end; - -function ImportAll(wParam:WPARAM;lParam:LPARAM):int; cdecl; -var - dst:array [0..MAX_PATH-1] of AnsiChar; - pc:pAnsiChar; - lstorage,section,list:pointer; -begin - result:=0; - if lParam<>0 then - StrCopy(dst,PAnsiChar(lParam)); - if (lParam<>0) or ShowDlg(dst,'radio.ini',nil,true) then - begin - lstorage:=OpenStorage(dst); - if lstorage<>nil then - begin - list:=GetSectionList(lstorage); - - pc:=list; - while pc^<>#0 do - begin - section:=SearchSection(lstorage,pc); - if ImportOneStation(pAnsiChar(wParam),section)<>0 then inc(result); - while pc^<>#0 do inc(pc); - inc(pc); - end; - - FreeSectionList(list); - - CloseStorage(lstorage); - end; - end; -end; - -procedure ExportRadioContact(num:integer;fname:PAnsiChar;hContact:THANDLE); -var - pc:pAnsiChar; - section:array [0..15] of AnsiChar; -begin - IntToStr(section,num); - pc:=DBReadString(hContact,strCList,optMyHandle); - WritePrivateProfileStringA(section,'Name',pc,fname); - mFreeMem(pc); - - pc:=DBReadString(hContact,PluginName,optStationURL); - WritePrivateProfileStringA(section,'URL',pc,fname); - mFreeMem(pc); - - pc:=DBReadString(hContact,PluginName,optGenre); - if pc<>nil then - begin - WritePrivateProfileStringA(section,optGenre,pc,fname); - mFreeMem(pc); - end; - - pc:=DBReadString(hContact,PluginName,optBitrate); - if pc<>nil then - begin - WritePrivateProfileStringA(section,optBitrate,pc,fname); - mFreeMem(pc); - end; - - pc:=DBReadString(hContact,strCList,optGroup); - if pc<>nil then - begin - WritePrivateProfileStringA(section,optGroup,pc,fname); - mFreeMem(pc); - end; -end; - -function ExportAll(wParam:WPARAM;lParam:LPARAM):int; cdecl; -var - dst:array [0..MAX_PATH-1] of AnsiChar; - hContact:THANDLE; -begin - result:=0; - if lParam<>0 then - StrCopy(dst,PAnsiChar(lParam)); - if (lParam<>0) or ShowDlg(dst,'radio.ini',nil,false) then - begin - if (wParam<>0) and (CallService(MS_DB_CONTACT_IS,wParam,0)<>0) then - begin - result:=1; - ExportRadioContact(result,dst,wParam) - end - else - begin - hContact:=CallService(MS_DB_CONTACT_FINDFIRST,0,0); - while hContact<>0 do - begin - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)), - PluginName)=0 then - begin - inc(result); - ExportRadioContact(result,dst,hContact); - end; - hContact:=CallService(MS_DB_CONTACT_FINDNEXT,hContact,0); - end; - end; - end; -end; - -function MakeFilter(dst,descr,full,filter:PWideChar;show:bool=true):pWideChar; -var - p:PWideChar; -begin - if full<>nil then - begin - p:=StrEndW(full); - p^:=';'; - StrCopyW(p+1,filter); - end; - - dst:=StrCopyEW(dst,TranslateW(descr)); - if show then - begin - dst^ :=' '; - (dst+1)^:='('; - dst:=StrCopyEW(dst+2,filter); - dst^:=')'; - inc(dst); - dst^:=#0; - end; - inc(dst); - result:=StrCopyEW(dst,filter)+1; -end; - -function ConstructFilter:pointer; -var - pc:pWideChar; - ph:PDWord; - Info:PBASS_PLUGININFO; - i:integer; - full:array [0..511] of WideChar; - tmpbuf1,tmpbuf2:array [0..127] of WideChar; -begin - mGetMem(pc,4096); -// FillChar(pc^,4096,0); - result:=pc; - full[0]:=#0; - pc:=MakeFilter(pc,'All files' ,nil ,'*.*',false); - pc:=MakeFilter(pc,'Playlist files',full,'*.pls;*.m3u;*.m3u8;*.asx'); - pc:=MakeFilter(pc,'BASS built-in' ,full,'*.mp3;*.mp2;*.mp1;*.ogg;*.wav;*.aif'); - - ph:=pointer(BASS_PluginGetInfo(0)); - if ph<>nil then - begin - while ph^<>0 do - begin - Info:=BASS_PluginGetInfo(ph^); - for i:=0 to Info^.formatc-1 do -//!! need to translate Ansi -> wide - with Info^.Formats[i] do - begin - pc:=MakeFilter(pc,FastAnsiToWideBuf(name,tmpbuf1),full,FastAnsiToWideBuf(exts,tmpbuf2)); - end; - inc(ph); - end; - end; - pc:=MakeFilter(pc,'All supported formats',nil,full,false); - pc^:=#0; -end; - -procedure SetButtonIcons(Dialog:HWND); -var - ti:TTOOLINFOW; - hwndTooltip:HWND; -begin - hwndTooltip:=CreateWindowW(TOOLTIPS_CLASS,nil,TTS_ALWAYSTIP, - integer(CW_USEDEFAULT),integer(CW_USEDEFAULT), - integer(CW_USEDEFAULT),integer(CW_USEDEFAULT), - Dialog,0,hInstance,nil); - - FillChar(ti,SizeOf(ti),0); - ti.cbSize :=sizeof(TOOLINFO); - ti.uFlags :=TTF_IDISHWND or TTF_SUBCLASS; - ti.hwnd :=Dialog; - ti.hinst :=hInstance; - - ti.uId :=GetDlgItem(Dialog,IDC_EQ_ADD); - ti.lpszText:=TranslateW('Add'); - - SetButtonIcon(ti.uId,IcoBtnAdd); - - SendMessageW(hwndTooltip,TTM_ADDTOOLW,0,lparam(@ti)); - - ti.uId :=GetDlgItem(Dialog,IDC_EQ_DEL); - ti.lpszText:=TranslateW('Delete'); - SetButtonIcon(ti.uId,IcoBtnDel); - SendMessageW(hwndTooltip,TTM_ADDTOOLW,0,lparam(@ti)); -end; - -function DlgProcOpt(Dialog:HWnd;hMessage:UINT;wParam:WPARAM;lParam:LPARAM):lresult; stdcall; -const - DlgInit:integer=1; -var - buf:array [0..MAX_PATH-1] of WideChar; - psr:TPROTOSEARCHRESULT; - dst:pWideChar; - i:dword; -// info:BASS_CHANNELINFO; - vhi:TVARHELPINFO; - wnd:HWND; - p:pWideChar; -begin - result:=0; - case hMessage of - WM_DESTROY: begin - DBWriteByte(0,PluginName,optLoop ,doLoop); - DBWriteByte(0,PluginName,optShuffle ,doShuffle); - DBWriteByte(0,PluginName,optContRec ,doContRec); - DBWriteByte(0,PluginName,optPlayFirst,PlayFirst); - DBWriteByte(0,PluginName,optConnect ,AuConnect); - DBWriteByte(0,PluginName,optAutoMute ,AuMute); - DBWriteByte(0,PluginName,optOffline ,AsOffline); - - DBWriteUnicode(0,PluginName,optStatusTmpl,StatusTmpl); - end; - - WM_INITDIALOG: begin - DlgInit:=1; - TranslateDialogDefault(Dialog); - - wnd:=GetDlgItem(Dialog,IDC_HLP_VARS); - if isVarsInstalled then - begin - SendMessage(wnd,BM_SETIMAGE,IMAGE_ICON, - CallService(MS_VARS_GETSKINITEM,0,VSI_HELPICON)); - end - else - ShowWindow(wnd,SW_HIDE); - - if recpath<>nil then - p:=recpath - else - begin - buf[0]:=#0; - p:=@buf; - end; - SetDlgItemTextW(Dialog,IDC_ED_RECPATH,p); - - CheckDlgButton(Dialog,IDC_LOOP ,doLoop); - CheckDlgButton(Dialog,IDC_SHUFFLE ,doShuffle); - CheckDlgButton(Dialog,IDC_CONTREC ,doContRec); - CheckDlgButton(Dialog,IDC_PLAYFIRST,PlayFirst); - CheckDlgButton(Dialog,IDC_CONNECT ,AuConnect); - CheckDlgButton(Dialog,IDC_AUTOMUTE ,AuMute); - CheckDlgButton(Dialog,IDC_OFFLINE ,AsOffline); - - SetDlgItemTextW(Dialog,IDC_STATUS,StatusTmpl); - - DlgInit:=0; - end; - - WM_COMMAND: begin - case wParam shr 16 of - EN_CHANGE: begin - if DlgInit=0 then - case loword(wParam) of - IDC_STATION,IDC_STATIONURL,IDC_GENRE,IDC_BITRATE: ; - else - SendMessage(GetParent(Dialog),PSM_CHANGED,0,0); - end; - end; - - BN_CLICKED: begin - case loword(wParam) of - - IDC_IMPORT: begin - ImportAll(0,0); - end; - - IDC_EXPORT: begin - ExportAll(0,0); - end; - - IDC_HLP_VARS: begin - FillChar(vhi,SizeOf(vhi),0); - with vhi do - begin - cbSize :=SizeOf(vhi); - flags :=VHF_FULLDLG or VHF_SETLASTSUBJECT; - hwndCtrl :=GetDlgItem(Dialog,IDC_STATUS); - szSubjectDesc:='test your variables'; - end; - CallService(MS_VARS_SHOWHELPEX,Dialog,tlparam(@vhi)); - end; - - IDC_BN_URLPATH: begin - - dst:=ConstructFilter; - if ShowDlgW(@buf,nil,dst) then - SetDlgItemTextW(Dialog,IDC_STATIONURL,@buf); - mFreeMem(dst); - end; - - IDC_BN_RECPATH: begin - dst:=nil; - if SelectDirectory(pWideChar(nil),dst,Dialog) then - begin - CallService(MS_UTILS_PATHTORELATIVEW,twparam(dst),tlparam(@buf)); - SetDlgItemTextW(Dialog,IDC_ED_RECPATH,pWideChar(@buf)); - mFreeMem(dst); - end; - end; - - IDC_LOOP,IDC_SHUFFLE,IDC_CONTREC,IDC_CONNECT,IDC_OFFLINE,IDC_AUTOMUTE: - SendMessage(GetParent(Dialog),PSM_CHANGED,0,0); - - IDC_ADD_LIST,IDC_ADD_INI: begin - if GetWindowTextLength(GetDlgItem(Dialog,IDC_STATIONURL))>0 then - begin - FillChar(psr,SizeOf(psr),0); - with psr do - begin - if loword(wParam)=IDC_ADD_LIST then - begin - GetDlgItemTextW(Dialog,IDC_STATIONURL,@buf,MAX_PATH); - StrDupW(firstname.w,@buf); - buf[0]:=#0; - - GetDlgItemTextW(Dialog,IDC_STATION,@buf,MAX_PATH); - if buf[0]<>#0 then - StrDupW(nick.w,@buf) - else - StrDupW(nick.w,firstname.w); - buf[0]:=#0; - - GetDlgItemTextW(Dialog,IDC_GENRE,@buf,MAX_PATH); - StrDupW(lastname.w,@buf); - buf[0]:=#0; - - GetDlgItemTextW(Dialog,IDC_BITRATE,@buf,MAX_PATH); - StrDupW(email.w,@buf); - - i:=Service_AddToList(0,tlparam(@psr)); -{ - GetDlgItemTextW(Dialog,IDC_STATION,@buf,SizeOf(buf)); - DBWriteUnicode(i,strCList,optMyHandle,@buf); - - GetDlgItemTextW(Dialog,IDC_STATIONURL,@buf,SizeOf(buf)); - DBWriteUnicode(i,PluginName,optStationURL,@buf); -} - // "changing" station group - dst:=GetNewGroupName(Dialog); - if dst<>nil then - DBWriteUnicode(i,strCList,optGroup,dst) - else - DBDeleteSetting(i,strCList,optGroup); - - end - else if loword(wParam)=IDC_ADD_INI then - begin - GetDlgItemTextA(Dialog,IDC_STATIONURL,PAnsiChar(@buf),SizeOf(buf)); - StrDup(firstname.a,PAnsiChar(@buf)); - PAnsiChar(@buf)^:=#0; - - GetDlgItemTextA(Dialog,IDC_STATION,PAnsiChar(@buf),SizeOf(buf)); - if PAnsiChar(@buf)^<>#0 then - StrDup(nick.a,@buf) - else - StrDup(nick.a,firstname.a); - PAnsiChar(@buf)^:=#0; - - GetDlgItemTextA(Dialog,IDC_GENRE,PAnsiChar(@buf),SizeOf(buf)); - StrDup(lastname.a,@buf); - PAnsiChar(@buf)^:=#0; - - GetDlgItemTextA(Dialog,IDC_BITRATE,PAnsiChar(@buf),SizeOf(buf)); - StrDup(email.a,@buf); - - if WritePrivateProfileStringA(firstname.a,'URL',firstname.a,storage) then - begin - WritePrivateProfileStringA(firstname.a,'Name' ,nick.a ,storage); - WritePrivateProfileStringA(firstname.a,optGenre ,lastname.a ,storage); - WritePrivateProfileStringA(firstname.a,optBitrate,email.a ,storage); - end - else - begin - WritePrivateProfileStringA(firstname.a,'URL' ,firstname.a,storagep); - WritePrivateProfileStringA(firstname.a,'Name' ,nick.a ,storagep); - WritePrivateProfileStringA(firstname.a,optGenre ,lastname.a ,storagep); - WritePrivateProfileStringA(firstname.a,optBitrate,email.a ,storagep); - end; - - end; - mFreeMem(nick); - mFreeMem(firstname); - mFreeMem(lastname); - mFreeMem(email); - end; - end; - end; - - end; - end; - - end; - end; - - WM_NOTIFY: begin - if integer(PNMHdr(lParam)^.code)=PSN_APPLY then - begin - - doShuffle:=IsDlgButtonChecked(Dialog,IDC_SHUFFLE); - doContRec:=IsDlgButtonChecked(Dialog,IDC_CONTREC); - PlayFirst:=IsDlgButtonChecked(Dialog,IDC_PLAYFIRST); - AuConnect:=IsDlgButtonChecked(Dialog,IDC_CONNECT); - AuMute :=IsDlgButtonChecked(Dialog,IDC_AUTOMUTE); - AsOffline:=IsDlgButtonChecked(Dialog,IDC_OFFLINE); - - mFreeMem(StatusTmpl); - StatusTmpl:=GetDlgText(Dialog,IDC_STATUS); - - doLoop:=IsDlgButtonChecked(Dialog,IDC_LOOP); - if chan<>0 then - begin -{ - BASS_ChannelGetInfo(chan,info); - if doLoop<>BST_UNCHECKED then - info.flags:=info.flags or BASS_SAMPLE_LOOP - else - info.flags:=info.flags and not BASS_SAMPLE_LOOP; -} - BASS_ChannelFlags(chan,ord(doLoop<>BST_UNCHECKED),BASS_SAMPLE_LOOP); - end; - - mFreeMem(recpath); - buf[0]:=#0; - GetDlgItemTextW(Dialog,IDC_ED_RECPATH,@buf,SizeOf(buf) div SizeOf(WideChar)); - if buf[0]<>#0 then - begin - mGetMem(recpath,MAX_PATH*SizeOf(WideChar)); - recpath^:=#0; - CallService(MS_UTILS_PATHTORELATIVEW,twparam(@buf),tlparam(recpath)); - end; - DBWriteUnicode(0,PluginName,optRecPath,recpath); - end; - end; - -// else -// result:=DefWindowProc(Dialog,hMessage,wParam,lParam); - end; -end; - -function DlgProcOptTech(Dialog:HWnd;hMessage:uint;wParam:WPARAM;lParam:LPARAM):lresult; stdcall; -const - DlgInit:integer=1; -var - i:integer; - hEAXCombo:THANDLE; - ltmp:longbool; -// info:BASS_CHANNELINFO; - buf1:array [0..4] of AnsiChar; - wnd:HWND; - buf:array [0..MAX_PATH-1] of WideChar; - dst:pWideChar; -begin - result:=0; - case hMessage of - WM_DESTROY: begin - hVolCtrl:=0; - - buf1[0]:='E'; - buf1[1]:='Q'; - buf1[2]:='_'; - buf1[4]:=#0; - for i:=0 to 9 do - begin - buf1[3]:=AnsiChar(ORD('0')+i); - DBWriteByte(0,PluginName,buf1,trunc(eq[i].param.fGain)+15); - eq[i].wnd:=0; - end; - DBWriteByte(0,PluginName,optEQ_OFF ,isEQ_OFF); - end; - - WM_INITDIALOG: begin - DlgInit:=1; - TranslateDialogDefault(Dialog); - - SetButtonIcons(Dialog); - hVolCtrl:=GetDlgItem(Dialog,IDC_VOLUME); - SendMessage(hVolCtrl,TBM_SETRANGE,0,(100 shl 16)+0); - SendMessage(hVolCtrl,TBM_SETPOS,1,ABS(gVolume)); - - SetDlgItemInt(Dialog,IDC_BUFFER ,sBuffer ,false); - SetDlgItemInt(Dialog,IDC_PREBUF ,sPreBuf ,false); - SetDlgItemInt(Dialog,IDC_TIMEOUT,sTimeout,false); - SetDlgItemInt(Dialog,IDC_TRIES ,NumTries,false); - - CheckDlgButton(Dialog,IDC_MONO,ForcedMono); - - hEAXCombo:=GetDlgItem(Dialog,IDC_EAXTYPE); - for i:=0 to EAX_ENVIRONMENT_COUNT do - SendMessageW(hEAXCombo,CB_ADDSTRING,0,tlparam(TranslateW(EAXItems[i].name))); - SendMessage(hEAXCombo,CB_SETCURSEL,DBReadByte(0,PluginName,optEAXType,0),0); - - wnd:=GetDlgItem(Dialog,IDC_PRESET); - for i:=0 to HIGH(Presets) do - SendMessageW(wnd,CB_ADDSTRING,0,tlparam(Presets[i].name)); - SendMessage(wnd,CB_SETCURSEL,OldEQPreset,0); - - for i:=0 to 9 do - begin - eq[i].wnd:=GetDlgItem(Dialog,IDC_EQ00+i); - SendMessage(eq[i].wnd,TBM_SETRANGE,1,(16 shl 16)-15); - SendMessage(eq[i].wnd,TBM_SETTIC,0,0); - SendMessage(eq[i].wnd,TBM_SETPOS,1,-trunc(eq[i].param.fGain)); - SendDlgItemMessageA(Dialog,IDC_0+i,WM_SETTEXT,0,tlparam(eq[i].text)); - EnableWindow(eq[i].wnd,isEQ_OFF=BST_UNCHECKED); - end; - - CheckDlgButton(Dialog,IDC_EQOFF,isEQ_OFF); - - dst:=DBReadUnicode(0,PluginName,optBASSPath,nil); - SetDlgItemTextW(Dialog,IDC_BASSPATH,dst); - mFreeMem(dst); - - DlgInit:=0; - end; - - WM_COMMAND: begin - case wParam shr 16 of - EN_CHANGE: begin - if DlgInit=0 then - SendMessage(GetParent(Dialog),PSM_CHANGED,0,0); - end; - - BN_CLICKED: begin - case loword(wParam) of - - IDC_BASSPTHBTN: begin - dst:=nil; - if SelectDirectory(pWideChar(nil),dst,Dialog) then - begin - CallService(MS_UTILS_PATHTORELATIVEW,twparam(dst),tlparam(@buf)); - SetDlgItemTextW(Dialog,IDC_BASSPATH,pWideChar(@buf)); - mFreeMem(dst); - end; - end; - - IDC_EQOFF: begin - isEQ_OFF:=IsDlgButtonChecked(Dialog,IDC_EQOFF); - if isEQ_OFF=BST_UNCHECKED then - EQ_ON - else - EQ_OFF; - - for i:=0 to 9 do - EnableWindow(eq[i].wnd,isEQ_OFF=BST_UNCHECKED); - end; - - IDC_ZERO: begin - OldEQPreset:=-1; - for i:=0 to 9 do - begin - eq[i].param.fGain:=0; - SendMessage(eq[i].wnd,TBM_SETPOS,1,0); - if (chan<>0) and (isEQ_OFF=BST_UNCHECKED) then - BASS_FXSetParameters(eq[i].fx,@eq[i].param); - end; - end; - - IDC_EQ_ADD: begin - SetLength(Presets,Length(Presets)+1); - - for i:=0 to 9 do - Presets[HIGH(Presets)].preset[i]:=-SendMessage(eq[i].wnd,TBM_GETPOS,0,0); - - wnd:=GetDlgItem(Dialog,IDC_PRESET); - Presets[HIGH(Presets)].name:=GetDlgText(wnd,false); - if Presets[HIGH(Presets)].name=nil then - StrDupW(Presets[HIGH(Presets)].name,'New'); - OldEQPreset:=SendMessage(wnd,CB_SETCURSEL, - SendMessageW(wnd,CB_ADDSTRING,0,tlparam(Presets[HIGH(Presets)].name)),0); - end; - - IDC_EQ_DEL: begin - wnd:=GetDlgItem(Dialog,IDC_PRESET); - i:=SendMessage(wnd,CB_GETCURSEL,0,0); - if (i>=0) and (i<=HIGH(Presets)) then - begin - SendMessage(wnd,CB_DELETESTRING,i,0); - mFreeMem(Presets[i].name); - move(Presets[i+1],Presets[i],(HIGH(Presets)-i)*SizeOf(tPreset)); - SetLength(Presets,Length(Presets)-1); - OldEQPreset:=-1; - SendMessage(wnd,CB_SETCURSEL,-1,0); - end; - end; - - end; - end; - - CBN_SELCHANGE: begin - SendMessage(GetParent(Dialog),PSM_CHANGED,0,0); - case loword(wParam) of - IDC_PRESET: begin - OldEQPreset:=SendDlgItemMessage(Dialog,IDC_PRESET,CB_GETCURSEL,0,0); - for i:=0 to 9 do - begin - SendMessage(eq[i].wnd,TBM_SETPOS,1,-Presets[OldEQPreset].preset[i]); - eq[i].param.fGain:=Presets[OldEQPreset].preset[i]; - if (chan<>0) and (isEQ_OFF=BST_UNCHECKED) then - BASS_FXSetParameters(eq[i].fx,@eq[i].param); - end; - end; - IDC_EAXTYPE: begin -{ - i:=SendDlgItemMessage(Dialog,IDC_EAXTYPE,CB_GETCURSEL,0,0); - DBWriteByte(0,PluginName,optEAXType,i); - if i=0 then - BASS_SetEAXParameters(-1,0,-1,-1) - else - BASS_SetEAXPreset(EAXItems[i].code); -} - end; - end; - end; - end; - end; - - WM_VSCROLL: begin - for i:=0 to 9 do - begin - if HWND(lParam)=eq[i].wnd then - begin - eq[i].param.fGain:=-SendMessage(lParam,TBM_GETPOS,0,0); - if (chan<>0) and (isEQ_OFF=BST_UNCHECKED) then - BASS_FXSetParameters(eq[i].fx,@eq[i].param); - OldEQPreset:=-1; - break; - end; - end; - end; - - WM_HSCROLL: begin - Service_RadioSetVolume(SendMessage(lParam,TBM_GETPOS,0,0),1) - end; - - WM_NOTIFY: begin - if integer(PNMHdr(lParam)^.code)=PSN_APPLY then - begin - SavePresets; - -//!! bass path saving here - dst:=GetDlgText(Dialog,IDC_BASSPATH); - DBWriteUnicode(0,PluginName,optBASSPath,dst); - mFreeMem(dst); - - ForcedMono:=IsDlgButtonChecked(Dialog,IDC_MONO); - DBWriteByte(0,PluginName,optForcedMono,ForcedMono); - - i:=SendDlgItemMessage(Dialog,IDC_EAXTYPE,CB_GETCURSEL,0,0); - DBWriteByte(0,PluginName,optEAXType,i); - if i=0 then - BASS_SetEAXParameters(-1,0,-1,-1) - else - BASS_SetEAXPreset(EAXItems[i].code); - - NumTries:=GetDlgItemInt(Dialog,IDC_TRIES,ltmp,false); - if NumTries<1 then NumTries:=1; - DBWriteByte(0,PluginName,optNumTries,NumTries); - - i:=GetDlgItemInt(Dialog,IDC_PREBUF,ltmp,false); - if i>100 then i:=100; - if cardinal(i)<>sPreBuf then - begin - sPreBuf:=i; - BASS_SetConfig(BASS_CONFIG_NET_PREBUF,i); - DBWriteWord(0,PluginName,optPreBuf,sPreBuf); - end; - - i:=GetDlgItemInt(Dialog,IDC_BUFFER,ltmp,false); - if i>20000 then i:=20000; - if cardinal(i)<>sBuffer then - begin - sBuffer:=i; - BASS_SetConfig(BASS_CONFIG_NET_BUFFER,i); - DBWriteWord(0,PluginName,optBuffer,sBuffer); - end; - - i:=GetDlgItemInt(Dialog,IDC_TIMEOUT,ltmp,false); - if i>30000 then i:=30000; - if cardinal(i)<>sTimeout then - begin - sTimeout:=i; - BASS_SetConfig(BASS_CONFIG_NET_TIMEOUT,i); - DBWriteWord(0,PluginName,optTimeout,sTimeout); - end; - - end; - end; - -// else -// result:=DefWindowProc(Dialog,hMessage,wParam,lParam); - end; -end; - -function OnOptInitialise(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var - odp:TOPTIONSDIALOGPAGE; -begin - FillChar(odp,SizeOf(odp),0); - odp.cbSize :=SizeOf(odp); - odp.flags :=ODPF_BOLDGROUPS; - odp.Position :=900003000; - odp.hInstance :=hInstance; - odp.szGroup.a :='Network'; - odp.szTitle.a :=PluginName; - - odp.pszTemplate:=MAKEINTRESOURCEA(IDD_SETTING); - odp.pfnDlgProc :=@DlgProcOpt; - odp.szTab.a :='Common'; - CallService(MS_OPT_ADDPAGE,wParam,tlparam(@odp)); - - odp.pszTemplate:=MAKEINTRESOURCEA(IDD_SETTING_TECH); - odp.pfnDlgProc :=@DlgProcOptTech;//!! - odp.szTab.a :=Translate('Advanced'); - CallService(MS_OPT_ADDPAGE,wParam,tlparam(@odp)); - - result:=0; -end; - -// checking proto in several places for speed, not size economy -function OnSettingsChanged(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var - buf:array [0..MAX_PATH-1] of AnsiChar; - i:integer; - pc:PAnsiChar; -begin - result:=0; - - with PDBCONTACTWRITESETTING(lParam)^ do - begin - - if AuMute<>BST_UNCHECKED then - begin - if StrCmp(szModule,'Skin')=0 then - begin - if StrCmp(szSetting,'UseSound')=0 then - begin - // Mute - if value.bVal=0 then - begin - if gVolume>=0 then - Service_RadioMute(0,0); - end - // Unmute - else - begin - if gVolume<0 then - Service_RadioMute(0,0); - end; - end; - - exit; - end - end; - - // works only if called AFTER changes - if StrCmp(szModule,strCList)=0 then - begin - if StrCmp(szSetting,optMyHandle)=0 then - begin - if value._type=DBVT_DELETED then - begin - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,wParam,0)), - PluginName)<>0 then exit; - - pc:=DBReadString(wParam,PluginName,optNick); - DBWriteString(wParam,strCList,optMyHandle,pc); - mFreeMem(pc); - end; - end; - exit; - end; - - if StrCmp(szModule,'UserInfo')<>0 then exit; - - if StrCmp(szSetting,optAge)=0 then - begin - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,wParam,0)), - PluginName)<>0 then exit; - if value._type=DBVT_DELETED then - i:=DBReadWord(wParam,PluginName,optAge) - else - i:=value.wVal; - DBWriteString(wParam,PluginName,optBitrate,IntToStr(buf,i)); - exit; - end; - - case value._type of - DBVT_DELETED, - DBVT_ASCIIZ , - DBVT_WCHAR , - DBVT_UTF8 : - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,wParam,0)), - PluginName)<>0 then exit; - else - exit; - end; - - case value._type of - DBVT_DELETED: pc:=DBReadString(wParam,PluginName,szSetting); - DBVT_ASCIIZ : pc:=value.szVal.a; - DBVT_WCHAR : WideToAnsi(value.szVal.w,pc,MirandaCP); - DBVT_UTF8 : UTF8ToAnsi(value.szVal.a,pc,MirandaCP); - end; - - if StrCmp(szSetting,optFirstName)=0 then DBWriteString(wParam,PluginName,optStationURL,pc) - else if StrCmp(szSetting,optNick )=0 then DBWriteString(wParam,strCList,optMyHandle,pc) - else if StrCmp(szSetting,optLastName )=0 then DBWriteString(wParam,PluginName,optGenre,pc); - - if value._type<>DBVT_ASCIIZ then - mFreeMem(pc); - end; -end; - -function OnContactDeleted(wParam:WPARAM;lParam:LPARAM):int;cdecl; -begin - result:=0; - if ActiveContact<>THANDLE(wParam) then exit; - ControlCenter(MRC_STOP,wParam); - -{ if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,wParam,0)), - PluginName)<>0 then exit; -} -end; diff --git a/plugins/mRadio/i_search.inc b/plugins/mRadio/i_search.inc deleted file mode 100644 index d4330e84d1..0000000000 --- a/plugins/mRadio/i_search.inc +++ /dev/null @@ -1,444 +0,0 @@ -{search station code} -(* -procedure SetAvatar(hContact:THANDLE); -var - success:boolean; - fname:pAnsiChar; - url:pWideChar; - buf,buf1,buf2:array [0..MAX_PATH-1] of AnsiChar; - ext:array [0..15] of AnsiChar; - section:pAnsiChar; - pc:pAnsiChar; - i:integer; -begin - // get url - url:=DBReadUnicode(hContact,PluginName,optStationURL); - // translate to Ansi - FastWideToAnsiBuf(url,buf); - mFreeMem(url); - - // search in INI - i:=GetFSize(storage); - if i=0 then - i:=32767; - mGetMem(pc,i+1); - pc^:=#0; - GetPrivateProfileSectionNamesA(pc,i,storage); - section:=pc; - - while section^<>#0 do - begin - GetPrivateProfileStringA(section,'URL','',buf1,SizeOf(buf1),storage); - if StrCmp(@buf,@buf1)=0 then - break; - - while section^<>#0 do inc(section); - inc(section); - end; - mFreeMem(pc); - - if section^<>#0 then - begin - // get avatar link - buf[0]:=#0; - GetPrivateProfileStringA(section,'Avatar','',buf,SizeOf(buf),storage); - - if buf[0]<>#0 then - begin - // Here we trying to get Avatar chache directory - // (create it if needs) - // and copy (load) owr avatars there - // in : buf = source avatar path - // out: fname = destination (file name in cache) - // rule for name is?.. - - - if StrPos(buf,'://')=nil then - begin - fname:=@buf; - success:=FileExists(fname); - // need to copy this file to avatar cache - end - else - begin - // download file -{ - GetTempPathA(MAX_PATH,pAnsiChar(@buf1)); - pc:=extract(pAnsiChar(@buf),true); - StrCat(pAnsiChar(@buf1),pc); - mFreeMem(pc); -} - //mrAvt - - GetExt(pAnsiChar(@buf),pAnsiChar(@ext)); - GetTempPathA(MAX_PATH,pAnsiChar(@buf2)); - GetTempFileNameA(pAnsiChar(@buf2),'mrAvt',GetCurrentTime,pAnsiChar(@buf1)); - ChangeExt(pAnsiChar(@buf1),PAnsiChar(@ext)); - // - fname:=@buf1; - success:=GetFile(pAnsiChar(@buf),fname); - end; - - if success then - CallService(MS_AV_SETAVATAR,hContact,LPARAM(fname)); - end; - end; -end; -*) -type - TMySearchFilter = record - lStation, - lStationURL, - lGenre:PAnsiChar; - lBitrate:integer; - lBitrateMode:integer; - end; - -const - AckHandle = 427; - -// Since mRadio is unicode version only now, translate all strings to Wide -// coz f*cking jinn will set unicode flag in any cases -procedure LoadOneStation(section:pointer;const filter:TMySearchFilter); -var - bitrate:integer; - l:bool; - columns:array [0..3] of TCHAR; - csr:CUSTOMSEARCHRESULTS; - pc:pAnsiChar; - buf:array [0..127] of AnsiChar; -begin - pc:=GetParamSectionStr(section,'URL'); - if pc<>nil then - begin - if (filter.lStationURL=nil) or (StrPos(CharLowerA(pc),filter.lStationURL)<>nil) then - begin - FillChar(csr,SizeOf(csr),0); - csr.psr.cbSize:=SizeOf(csr.psr); - csr.psr.Flags:=PSR_UNICODE; - AnsiToWide(pc,csr.psr.firstname.w,MirandaCP); - pc:=GetParamSectionStr(section,optBitrate,'0'); - bitrate:=StrToInt(pc); - if (bitrate<>0) and (filter.lBitrate<>0) then - begin - if filter.lBitrateMode<0 then l:=bitrate<=filter.lBitrate - else if filter.lBitrateMode=0 then l:=bitrate =filter.lBitrate - else{if filter.lBitrateMode>0} l:=bitrate>=filter.lBitrate; - end - else - l:=true; - if l then - begin - AnsiToWide(pc,csr.psr.email.w,MirandaCP); - - StrCopy(buf,GetParamSectionStr(section,'Name',GetSectionName(section)),127); - if (filter.lStation=nil) or (StrPos(CharLowerA(@buf),filter.lStation)<>nil) then - begin - AnsiToWide(@buf,csr.psr.nick.w,MirandaCP); - - StrCopy(buf,GetParamSectionStr(section,optGenre,'unknown'),127); - if (filter.lGenre=nil) or (StrPos(CharLowerA(@buf),filter.lGenre)<>nil) then - AnsiToWide(@buf,csr.psr.lastname.w,MirandaCP) - else - l:=false; - end - else - l:=false; - if l then - begin - columns[0].w:=csr.psr.nick.w; // Station name - columns[1].w:=csr.psr.firstname.w; // URL - columns[2].w:=csr.psr.lastname.w; // Genre - columns[3].w:=csr.psr.email.w; // Bitrate - - csr.nSize :=SizeOf(csr); - csr.nFieldCount:=4; - csr.szFields :=@columns; - ProtoBroadcastAck(PluginName,0,ACKTYPE_SEARCH,ACKRESULT_SEARCHRESULT,AckHandle,lparam(@csr)); - end; - end; - // initial value - nil, so we don't worry - mFreeMem(csr.psr.nick); - mFreeMem(csr.psr.firstname); - mFreeMem(csr.psr.lastname); - mFreeMem(csr.psr.email); - end; - end; -end; - -procedure ProcessSearch(var filter:TMySearchFilter;ini:PAnsiChar); -var - pc:PAnsiChar; - csr:CUSTOMSEARCHRESULTS; - columns:array [0..3] of TCHAR; - lstorage,section,list:pointer; -begin - columns[0].w:='Station Name'; - columns[1].w:='Station URL'; - columns[2].w:='Genre'; - columns[3].w:='Bitrate'; - - csr.nSize :=SizeOf(csr); - csr.nFieldCount:=4; - csr.szFields :=@columns; - csr.psr.cbSize :=0; - ProtoBroadcastAck(PluginName,0,ACKTYPE_SEARCH,ACKRESULT_SEARCHRESULT,AckHandle,lparam(@csr)); - - lstorage:=OpenStorage(ini); - if lstorage<>nil then - begin - list:=GetSectionList(lstorage); - pc:=list; - - while pc^<>#0 do - begin - section:=SearchSection(lstorage,pc); - LoadOneStation(section,filter); //!! - while pc^<>#0 do inc(pc); - inc(pc); - end; - - FreeSectionList(list); - CloseStorage(lstorage); - end; - - ProtoBroadcastAck(PluginName,0,ACKTYPE_SEARCH,ACKRESULT_SUCCESS,AckHandle,0); - mFreeMem(filter.lStation); - mFreeMem(filter.lStationURL); - mFreeMem(filter.lGenre); -end; - -procedure BasicSearch(name:PAnsiChar); cdecl; -var - filter:TMySearchFilter; - ini:array [0..MAX_PATH-1] of AnsiChar; -begin - FillChar(filter,SizeOf(filter),0); - StrCopy(ini,storage); - - StrDup(filter.lStation,name); - if filter.lStation<>nil then - CharLowerA(filter.lStation); - - ProcessSearch(filter,ini); -end; - -procedure ExtSearch(wnd:HWND); cdecl; -var - filter:TMySearchFilter; - ltmp:longbool; - ini1,ini:array [0..MAX_PATH-1] of AnsiChar; -begin - FillChar(filter,SizeOf(filter),0); - ini1[0]:=#0; - GetDlgItemTextA(wnd,IDC_CUSTOMINI,@ini1,SizeOf(ini1)); - if ini1[0]=#0 then - StrCopy(ini,storage) - else - ConvertFileName(ini1,ini); - - with filter do - begin -// CallService(MS_UTILS_PATHTOABSOLUTE,dword(@ini1),dword(@ini)); - lBitrate:=GetDlgItemInt(wnd,IDC_BITRATE,ltmp,false); - if IsDlgButtonChecked(wnd,IDC_LT)=BST_CHECKED then lBitrateMode:=-1 - else if IsDlgButtonChecked(wnd,IDC_EQ)=BST_CHECKED then lBitrateMode:=0 - else{if IsDlgButtonChecked(lParam,IDC_GT)=BST_CHECKED} lBitrateMode:=1; - - lStation:=GetDlgText(wnd,IDC_STATION,true); - if lStation<>nil then - CharLowerA(lStation); - - lStationURL:=GetDlgText(wnd,IDC_STATIONURL,true); - if lStationURL<>nil then - CharLowerA(lStationURL); - - lGenre:=GetDlgText(wnd,IDC_GENRE,true); - if lGenre<>nil then - CharLowerA(lGenre); - end; - - ProcessSearch(filter,ini); -end; - -function Service_SearchBasic(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -begin - if lParam=0 then - result:=0 - else - begin - result:=AckHandle; - CloseHandle(mir_forkthread(@BasicSearch,StrDup(PAnsiChar(lParam),PAnsiChar(lParam)))); - end; -end; - -function Service_SearchByAdvanced(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -begin - if lParam=0 then - result:=0 - else - begin - result:=AckHandle; - CloseHandle(mir_forkthread(@ExtSearch,pointer(lParam))); - end; -end; - -function Service_GetCaps(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; forward; - -function ExtSearchProc(Dialog:HWnd;hMessage:UINT;wParam:WPARAM;lParam:LPARAM):lresult; stdcall; -var - buf:array [0..MAX_PATH-1] of AnsiChar; -begin - result:=0; - case hMessage of - WM_INITDIALOG: begin - CheckDlgButton(Dialog,IDC_EQ,BST_CHECKED); - TranslateDialogDefault(Dialog); - end; - - WM_COMMAND: if (wParam shr 16)=BN_CLICKED then - begin - if loword(wParam)=IDOK then - begin - SendMessage(GetParent(Dialog),WM_COMMAND,IDOK+(BN_CLICKED) shl 16, - GetDlgItem(GetParent(Dialog),IDOK)); - end - else if loword(wParam)=IDC_BN_INIPATH then - begin - if ShowDlg(@buf,storage,'*.ini'#0'*.ini'#0#0) then - SetDlgItemTextA(Dialog,IDC_CUSTOMINI,@buf); - end; - end; - end; -end; - -function Service_ExtSearchUI(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -type - PDLGTEMPLATEEX = ^TDLGTEMPLATEEX; - TDLGTEMPLATEEX = packed record - dlgVer:word; - signature:word; - helpID:dword; - exStyle:dword; - style:dword; - cDlgItems:word; - x:word; - y:word; - cx:word; - cy:word; -{ - sz_Or_Ord menu; - sz_Or_Ord windowClass; - title:array [0..titleLen] of WideChar; - pointsize:word; - weight:word; - italic:byte; - charset:byte; - typeface:array [0..stringLen] of WideChar; -} - end; - -var - hr:HRSRC; - pdte:PDLGTEMPLATEEX; -begin - result:=0; - if lParam<>0 then - begin - hr:=FindResource(hInstance,MAKEINTRESOURCE(IDD_SEARCH),RT_DIALOG); - if hr<>0 then - begin - pdte:=PDLGTEMPLATEEX(LoadResource(hInstance,hr)); - if pdte<>nil then - begin - if (Service_GetCaps(PFLAGNUM_1,0) and PF1_EXTSEARCHUI)<>0 then - pdte^.style:=(pdte^.style and not WS_CHILD) or WS_POPUP or WS_BORDER; - result:=CreateDialogIndirect(hInstance, - PDlgTemplate(pdte){$IFNDEF FPC}^{$ENDIF},lParam,@ExtSearchProc); - end; - end; - end; -end; - -function Service_AddToList(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -var - hContact:THANDLE; - p:PWideChar; - lurl:pWideChar; -begin - result:=0; - if lParam<>0 then - begin - with PPROTOSEARCHRESULT(lParam)^ do - begin - if id.w<>nil then - lurl:=id.w - else - lurl:=firstname.w; - - if lurl<>nil then - begin -{ -// find contact - hContact:=CallService(MS_DB_CONTACT_FINDFIRST,0,0); - while hContact<>0 do - begin - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)), - PluginName)=0 then - begin - p:=DBReadString(hContact,PluginName,optStationURL); - l:=StrCmp(p,lurl)=0; - mFreeMem(p); - if l then - begin - DBDeleteSetting(hContact,strCList,'NotOnList'); - DBDeleteSetting(hContact,strCList,'Hidden'); - result:=hContact; - exit; - end; - end; - hContact:=CallService(MS_DB_CONTACT_FINDNEXT,hContact,0); - end; -// if not found -} - hContact:=CallService(MS_DB_CONTACT_ADD,0,0); - if hContact<>0 then - begin - CallService(MS_PROTO_ADDTOCONTACT,hContact,tlparam(PluginName)); - // URL - DBWriteUnicode(hContact,PluginName,optStationURL,lurl); - DBWriteUnicode(hContact,PluginName,optFirstName ,lurl); - - // Name - if nick.w=nil then - p:=lurl - else - p:=nick.w; - DBWriteUnicode(hContact,strCList ,optMyHandle,p); - DBWriteUnicode(hContact,PluginName,optNick ,p); - - // Bitrate - if email.w<>nil then - begin - DBWriteWord (hContact,PluginName,optAge ,StrToInt(email.w)); - DBWriteUnicode(hContact,PluginName,optBitrate,email.w); - end; - - // Genre - if lastname.w<>nil then - begin - DBWriteUnicode(hContact,PluginName,optGenre ,lastname.w); - DBWriteUnicode(hContact,PluginName,optLastName,lastname.w); - end; - - SetStatus(hContact,ID_STATUS_OFFLINE); - -// SetAvatar(hContact); - - CallService(MS_IGNORE_IGNORE,hContact,IGNOREEVENT_USERONLINE{IGNOREEVENT_ALL}); - result:=hContact; - end; - end; - end; - end; -end; diff --git a/plugins/mRadio/i_service.inc b/plugins/mRadio/i_service.inc deleted file mode 100644 index 4f12544a81..0000000000 --- a/plugins/mRadio/i_service.inc +++ /dev/null @@ -1,241 +0,0 @@ -{services} - -function Service_GetCaps(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -begin - case wParam of - PFLAGNUM_1: - result:=PF1_EXTSEARCH or PF1_MODEMSGRECV or PF1_ADDSEARCHRES or PF1_BASICSEARCH; - PFLAGNUM_2: - result:=PF2_ONLINE or PF2_INVISIBLE or PF2_SHORTAWAY; - PFLAGNUM_3: - result:=PF2_ONLINE;// or PF2_INVISIBLE or PF2_SHORTAWAY; - PFLAGNUM_4: - result:=PF4_NOCUSTOMAUTH or PF4_AVATARS; - PFLAG_UNIQUEIDTEXT: - result:=int_ptr(Translate('Radio station URL')); -// PFLAG_UNIQUEIDSETTING: -// result:=int_ptr(optStationURL) - else - result:=0; - end -end; - -function Service_GetName(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -begin - if lParam<>0 then - StrCopy(PAnsiChar(lParam),Translate(PluginName),wParam); - result:=0; -end; - -procedure GetAwayMsgProc(hContact:THANDLE); cdecl; -var - buf,p:PWideChar; -begin - if isVarsInstalled then - begin - buf:=ParseVarString(StatusTmpl,ActiveContact); - end - else - begin - mGetMem(buf,1024); - StrCopyW(buf,StatusTmpl); - if StrPosW(buf,'%radio_name%')<>nil then - begin - p:=DBReadUnicode(ActiveContact,strCList,optMyHandle); - StrReplaceW(buf,'%radio_name%',p); - mFreeMem(p); - end; - if StrPosW(buf,'%radio_url%')<>nil then - begin - p:=DBReadUnicode(ActiveContact,PluginName,optStationURL); - StrReplaceW(buf,'%radio_url%',p); - mFreeMem(p); - end; - if StrPosW(buf,'%radio_active%')<>nil then - begin - StrReplaceW(buf,'%radio_active%',ActiveURLw); - end; - if StrPosW(buf,'%radio_genre%')<>nil then // saved as String - begin - p:=DBReadUnicode(ActiveContact,PluginName,optGenre); - StrReplaceW(buf,'%radio_genre%',p); - mFreeMem(p); - end; - if StrPosW(buf,'%radio_bitrate%')<>nil then // saved as String - begin - p:=DBReadUnicode(ActiveContact,PluginName,optBitrate); - StrReplaceW(buf,'%radio_bitrate%',p); - mFreeMem(p); - end; - if StrPosW(buf,'%radio_title%')<>nil then - begin - p:=MakeMessage; - StrReplaceW(buf,'%radio_title%',p); - mFreeMem(p); - end; - if StrPosW(buf,'%radio_codec%')<>nil then - begin - p:=DBReadUnicode(ActiveContact,PluginName,optActiveCodec); - StrReplaceW(buf,'%radio_codec%',p); - mFreeMem(p); - end; - if StrPosW(buf,'%radio_status%')<>nil then - begin - StrReplaceW(buf,'%radio_status%', - TranslateW(GetStatusText( - CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET)))); - end; - end; - - ProtoBroadcastAck(PluginName,hContact,ACKTYPE_AWAYMSG,ACKRESULT_SUCCESS,AckHandle,lParam(buf)); - mFreeMem(buf); -end; - -function Service_GetAwayMsg(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -var - ccs:PCCSDATA; -begin - ccs:=PCCSDATA(lParam); - if (ccs^.hContact<>0) and (PluginStatus=ID_STATUS_ONLINE) and - (DBReadWord(ccs^.hContact,PluginName,optStatus,ID_STATUS_OFFLINE)=ID_STATUS_ONLINE) then - begin - CloseHandle(mir_forkthread(@GetAwayMsgProc,pointer(ccs^.hContact))); - result:=AckHandle; - end - else - result:=0; -end; - -function Service_GetStatus(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -begin - result:=PluginStatus; -end; - -function Service_LoadIcon(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -begin - case loword(wParam) of - PLI_PROTOCOL: result:=LoadImage(hInstance,MAKEINTRESOURCE(IDI_MAIN),IMAGE_ICON,16,16,LR_SHARED); -// PLI_ONLINE : result:=0; -// PLI_OFFLINE : result:=0; - else - result:=0; - end; -end; - -function Service_SetStatus(wParam:WPARAM;lParam:LPARAM):int_ptr;cdecl; -var - OldStatus:integer; -begin - result:=0; - OldStatus:=PluginStatus; - if wParam<>ID_STATUS_OFFLINE then - wParam:=ID_STATUS_ONLINE; - - if wParam=PluginStatus then - exit; - - mFreeMem(proxy); - PluginStatus:=ID_STATUS_OFFLINE; - - if wParam<>ID_STATUS_OFFLINE then - begin - if MyInitBASS<>0 then - begin - PluginStatus:=ID_STATUS_ONLINE; - - proxy:=GetProxy(hNetLib); - BASS_SetConfigPtr(BASS_CONFIG_NET_PROXY,proxy); - - if (ActiveContact<>0) and (AuConnect<>0) then - CallService(MS_RADIO_COMMAND,MRC_PLAY,ActiveContact); - end; - end - else //offline - begin - CallService(MS_RADIO_COMMAND,MRC_STOP,0); -// StopStation; - end; - SetStatus(0,ID_STATUS_OFFLINE); - - ProtoBroadcastAck(PluginName,0,ACKTYPE_STATUS,ACKRESULT_SUCCESS,OldStatus,PluginStatus); -end; - -function CreateProtoService(serviceName:PAnsiChar;pFunc:pointer):THANDLE; -var - temp:array [0..MAXMODULELABELLENGTH-1] of AnsiChar; -begin - StrCopy(StrCopyE(temp,PluginName),serviceName); - result:=CreateServiceFunction(temp,pFunc); -end; - -var - prh0,prh1,prh2,prh3,prh4,prh5,prh6,prh7,prh8,prh9:THANDLE; - -procedure DestroyProtoServices; -begin - DestroyServiceFunction(prh0); - DestroyServiceFunction(prh1); - DestroyServiceFunction(prh2); - DestroyServiceFunction(prh3); - DestroyServiceFunction(prh4); - DestroyServiceFunction(prh5); - DestroyServiceFunction(prh6); - DestroyServiceFunction(prh7); - DestroyServiceFunction(prh8); - DestroyServiceFunction(prh9); -end; - -procedure CreateProtoServices; -begin - prh0:=CreateProtoService(PS_GETCAPS ,@Service_GetCaps); - prh1:=CreateProtoService(PS_ADDTOLIST ,@Service_AddToList); - prh2:=CreateProtoService(PS_CREATEADVSEARCHUI,@Service_ExtSearchUI); - prh3:=CreateProtoService(PS_SEARCHBYADVANCED ,@Service_SearchByAdvanced); - prh4:=CreateProtoService(PS_BASICSEARCH ,@Service_SearchBasic); - prh5:=CreateProtoService(PS_GETNAME ,@Service_GetName); - prh6:=CreateProtoService(PS_LOADICON ,@Service_LoadIcon); - prh7:=CreateProtoService(PS_GETSTATUS ,@Service_GetStatus); - prh8:=CreateProtoService(PS_SETSTATUS ,@Service_SetStatus); - prh9:=CreateProtoService(PSS_GETAWAYMSG ,@Service_GetAwayMsg); -(* -{ - Asks protocol for the status message for a status - wParam=(WORD) 0 for current status or a status id - lParam=SGMA_xxx - Returns status msg or NULL if there is none. The protocol have to handle only the current - status. Handling messages for other statuses is optional. - Remember to mir_free the return value -} - SGMA_UNICODE = 1; // return Unicode status - - PS_GETMYAWAYMSG = '/GetMyAwayMsg'; - -*) -(* { - wParam : 0 - lParam : Pointer to a null terminated string containing an ID to search for - Affect : Send a basic search request, see notes - Returns: A handle to the search request or NULL(0) on failure - Notes : All protocols identify users uniquely by a single field - this service will search by that field. - - - All search replies (even protocol-spec extended searches) - are replied by a series of ack's,- - - - Result acks are a series of: - type=ACKTYPE_SEARCH, result=ACKRESULT_DATA, lParam=Pointer to a TPROTOSEARCHRESULT structure - - - ending ack: - type=ACKTYPE_SEARCH, result=ACKRESULT_SUCCESS, lParam=0 - - - The pointers in the structure are not guaranteed to be - valid after the ack is complete. - - - The structure to reply with search results can be extended - per protocol basis (see below) - - } - PS_BASICSEARCH = '/BasicSearch'; - PS_BASICSEARCHW = '/BasicSearchW'; -*) -end; diff --git a/plugins/mRadio/i_tray.inc b/plugins/mRadio/i_tray.inc deleted file mode 100644 index 096e288691..0000000000 --- a/plugins/mRadio/i_tray.inc +++ /dev/null @@ -1,228 +0,0 @@ -{} -var - trayradioparent:THANDLE; - trayparent:THANDLE; - traymute :THANDLE; - trayplay :THANDLE; - srvtrayplaypause:THANDLE; - srvtraystop:THANDLE; -const - trayStations:TSortedList = (items:nil; realCount:0; limit:0; increment:8; sortFunc: nil); - -type - pTrayRadioStation = ^tTrayRadioStation; - tTrayRadioStation = record - name :pWideChar; - hContact:THANDLE; - service :THANDLE; - menuitem:THANDLE; - presents:int; // 0 - not used, 1 - ok, 2 - new - end; - -function MyStrSort(para1:pointer; para2:pointer):int; cdecl; -begin - result:=StrCmpW(pTrayRadioStation(para1).name,pTrayRadioStation(para2).name); -end; - -function ChooseStation(wParam:WPARAM;lParam,lParam1:LPARAM):int; cdecl; -begin - result:=Service_RadioPlayStop(lParam1,0); -end; - -procedure MakeStationsMenu; -var - hContact:Cardinal; - p:pWideChar; - i,idx:integer; - tmp:pTrayRadioStation; - srch:tTrayRadioStation; - pc:pAnsiChar; - buf:array [0..63] of AnsiChar; - mi:TCListMenuItem; -begin - trayStations.sortFunc:=@MyStrSort; - - // clear presents flag - if trayStations.realCount>0 then - for i:=0 to trayStations.realCount-1 do - pTrayRadioStation(trayStations.Items[i]).presents:=0; - - // Fill list - FillChar(srch,SizeOf(srch),0); - hContact:=CallService(MS_DB_CONTACT_FINDFIRST,0,0); - while hContact<>0 do - begin - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)),cPluginName)=0 then - begin - p:=DBReadUnicode(hContact,strCList,'MyHandle',nil); - if p<>nil then - begin - srch.name:=p; - // search in list - if List_GetIndex(@trayStations,@srch,@idx)<>0 then - // found - set mark - pTrayRadioStation(trayStations.Items[idx]).presents:=1 - else // add if not found - begin - mGetMem(tmp,SizeOf(tTrayRadioStation)); - tmp.name :=p; - tmp.presents:=2; - tmp.hContact:=hContact; - List_InsertPtr(@trayStations,tmp); - end; - end; - end; - hContact:=CallService(MS_DB_CONTACT_FINDNEXT,hContact,0); - end; - - // delete obsolete elements - for i:=trayStations.realCount-1 downto 0 do - begin - tmp:=pTrayRadioStation(trayStations.Items[i]); - if tmp.presents=0 then - begin - mFreeMem(tmp.name); - DestroyServiceFunction(tmp.service); - CallService(MS_CLIST_REMOVETRAYMENUITEM,tmp.menuitem,0); - mFreeMem(tmp); - List_Remove(@trayStations,i); - end; - end; - - // build menu from sorted list - FillChar(mi,SizeOf(mi),0); - mi.cbSize:=sizeof(mi); - mi.Flags :=CMIF_KEEPUNTRANSLATED or CMIF_UNICODE or CMIF_ROOTHANDLE; - mi.szPopupName:=TChar(trayparent); - pc:=StrCopyE(@buf,'mRadio/Choose'); - for i:=0 to trayStations.realCount-1 do - begin - tmp:=pTrayRadioStation(trayStations.Items[i]); - if tmp.presents=2 then - begin - IntToStr(pc,tmp.hContact); - tmp.service:=CreateServiceFunctionParam(@buf,@ChooseStation,tmp.hContact); - mi.position :=i; - mi.pszService:=@buf; - mi.szName.w :=tmp.name; - tmp.menuitem:=Menu_AddTrayMenuItem(@mi); - end; - end; -end; - -function TrayPlayPause(wParam:WPARAM;lParam:LPARAM):int_ptr; cdecl; -begin - result:=CallService(MS_RADIO_COMMAND,MRC_PAUSE,0); -end; - -function TrayStop(wParam:WPARAM;lParam:LPARAM):int_ptr; cdecl; -begin - result:=CallService(MS_RADIO_COMMAND,MRC_STOP,0); -end; - -procedure CreateTrayMenu(); -var - mi:TCListMenuItem; - playstr:pWideChar; -begin - FillChar(mi, sizeof(mi), 0); - mi.cbSize :=sizeof(mi); - mi.flags :=CMIF_UNICODE; - mi.szName.w:=cPluginName; - mi.hIcon :=CallService(MS_SKIN2_GETICON,0,lparam(IcoBtnSettings)); - trayradioparent:=Menu_AddTrayMenuItem(@mi); - - FillChar(mi, sizeof(mi), 0); - mi.cbSize :=sizeof(mi); - mi.szPopupName:=TChar(trayradioparent); - - if gVolume<0 then - mi.flags:=CMIF_UNICODE or CMIF_ROOTHANDLE or CMIF_CHECKED - else - mi.flags:=CMIF_UNICODE or CMIF_ROOTHANDLE; - mi.szName.w :='Mute'; - mi.pszService:=MS_RADIO_MUTE; - mi.position :=1; - traymute:=Menu_AddTrayMenuItem(@mi); - - mi.flags:=CMIF_UNICODE or CMIF_ROOTHANDLE; - if CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET)<>RD_STATUS_PLAYING then - playstr:='Play' - else - playstr:='Pause'; - mi.szName.w :=playstr; - mi.position :=2; - srvtrayplaypause:=CreateServiceFunction('mRadio/TrayPlayPause',@TrayPlayPause); - mi.pszService:='mRadio/TrayPlayPause'; - trayplay:=Menu_AddTrayMenuItem(@mi); - - mi.szName.w :='Stop'; - mi.position :=3; - srvtraystop:=CreateServiceFunction('mRadio/TrayStop',@TrayStop); - mi.pszService:='mRadio/TrayStop'; - Menu_AddTrayMenuItem(@mi); - - mi.szName.w :='Play Station'; - mi.position :=1000; - mi.pszService:=nil; - trayparent:=Menu_AddTrayMenuItem(@mi); -end; - -function TrayPrebuild(wParam:WPARAM;lParam:LPARAM):int; cdecl; -var - mi:tClistMenuItem; - playstr:pWideChar; -begin - FillChar(mi,sizeof(mi),0); - mi.cbSize:=sizeof(mi); - if gVolume<0 then - mi.flags:=CMIM_FLAGS or CMIF_CHECKED - else - mi.flags:=CMIM_FLAGS; - CallService(MS_CLIST_MODIFYMENUITEM,traymute,tlparam(@mi)); - - mi.flags:=CMIM_NAME or CMIF_UNICODE; - if CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET)<>RD_STATUS_PLAYING then - playstr:='Play' - else - playstr:='Pause'; - mi.szName.w:=playstr; - CallService(MS_CLIST_MODIFYMENUITEM,trayplay,tlparam(@mi)); - - MakeStationsMenu(); - result:=0; -end; - -procedure CreateMIMTrayMenu; -begin - if ServiceExists(MS_CLIST_ADDTRAYMENUITEM)<>0 then -// if hiddenwindow<>0 then - begin - CreateTrayMenu(); - MakeStationsMenu(); - HookEvent(ME_CLIST_PREBUILDTRAYMENU,@TrayPrebuild); - end; -end; - -procedure RemoveTrayItems; -var - i:integer; - tmp:pTrayRadioStation; -begin - // remove stations - for i:=trayStations.realCount-1 downto 0 do - begin - tmp:=pTrayRadioStation(trayStations.Items[i]); - mFreeMem(tmp.name); - DestroyServiceFunction(tmp.service); -// CallService(MS_CLIST_REMOVETRAYMENUITEM,tmp.menuitem,0); - mFreeMem(tmp); - end; - List_Destroy(@trayStations); - DestroyServiceFunction(srvtrayplaypause); - DestroyServiceFunction(srvtraystop); - - if ServiceExists(MS_CLIST_REMOVETRAYMENUITEM)<>0 then - CallService(MS_CLIST_REMOVETRAYMENUITEM,trayradioparent,0); - -end; diff --git a/plugins/mRadio/i_tray_api.inc b/plugins/mRadio/i_tray_api.inc deleted file mode 100644 index 9339a10613..0000000000 --- a/plugins/mRadio/i_tray_api.inc +++ /dev/null @@ -1,125 +0,0 @@ -{} -type - pTrayRadioStation = ^tTrayRadioStation; - tTrayRadioStation = record - name:pWideChar; - handle:THANDLE; - end; - -function MyStrSort(para1:pointer; para2:pointer):int; cdecl; -begin - result:=StrCmpW(pTrayRadioStation(para1).name,pTrayRadioStation(para2).name); -end; - -function MakeStationsMenu:HMENU; -var - hContact:Cardinal; - sl:TSortedList; - p:pWideChar; - i:integer; - flag:integer; - tmp:pTrayRadioStation; -begin - result:=CreatePopupMenu; - if result<>0 then - begin - FillChar(sl,SizeOf(sl),0); - sl.increment:=16; - sl.sortFunc:=@MyStrSort; - hContact:=CallService(MS_DB_CONTACT_FINDFIRST,0,0); - while hContact<>0 do - begin - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)),cPluginName)=0 then - begin - p:=DBReadUnicode(hContact,strCList,'MyHandle',nil); - if p<>nil then - begin - mGetMem(tmp,SizeOf(tTrayRadioStation)); - tmp.name:=p; - tmp.handle:=hContact; - List_InsertPtr(@sl,tmp); - end; - end; - hContact:=CallService(MS_DB_CONTACT_FINDNEXT,hContact,0); - end; - - for i:=0 to sl.realCount-1 do - begin - if (i=0) or ((i mod 20)<>0) then - flag:=MF_STRING - else - flag:=MF_STRING or MF_MENUBARBREAK; - tmp:=sl.Items[i]; - AppendMenuW(result,flag,tmp.handle,tmp.name); - mFreeMem(tmp.name); - mFreeMem(tmp); - end; - List_Destroy(@sl); - end; -end; - -function CreateTrayMenu(wParam:WPARAM;lParam:LPARAM):int; cdecl; -const - startid = 100; -var - menu:HMENU; - flag,id:integer; - pt:TPOINT; - playstr:pWideChar; -begin - id:=0; - menu:=CreatePopupMenu; - if menu<>0 then - begin - if gVolume<0 then - flag:=MF_STRING+MF_CHECKED - else - flag:=MF_STRING+MF_UNCHECKED; - - if CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET)<>RD_STATUS_PAUSED then - playstr:='Pause' - else - playstr:='Play'; - - AppendMenuW(menu,flag ,startid+1,TranslateW('Mute')); - AppendMenuW(menu,MF_STRING,startid+2,TranslateW(playstr)); - AppendMenuW(menu,MF_STRING,startid+3,TranslateW('Stop')); - AppendMenuW(menu,MF_SEPARATOR,0,nil); - AppendMenuW(menu,MF_POPUP,MakeStationsMenu,TranslateW('Play Station')); - GetCursorPos(pt); - id:=integer(TrackPopupMenu(menu,TPM_RETURNCMD+TPM_NONOTIFY,pt.x,pt.y,0,hiddenwindow,nil)); - case id of - 0: ; // nothing - startid+1: begin // mute - Service_RadioMute(0,0); - end; - startid+2: begin // play/pause - CallService(MS_RADIO_COMMAND,MRC_PAUSE,0); - end; - startid+3: begin // stop - CallService(MS_RADIO_COMMAND,MRC_STOP,0); - end; - else // choose station - Service_RadioPlayStop(id,0); - end; - DestroyMenu(menu); - end; - result:=id; -end; - -procedure CreateMIMTrayMenu; -var - mi:TCListMenuItem; -begin - if ServiceExists(MS_CLIST_ADDTRAYMENUITEM)<>0 then -// if hiddenwindow<>0 then - begin - FillChar(mi, sizeof(mi), 0); - mi.cbSize :=sizeof(mi); - mi.pszService:=MS_RADIO_TRAYMENU; - mi.szName.a :=cPluginName; - mi.hIcon :=CallService(MS_SKIN2_GETICON,0,lparam(IcoBtnSettings)); - Menu_AddTrayMenuItem(@mi); - end; -end; - diff --git a/plugins/mRadio/i_variables.inc b/plugins/mRadio/i_variables.inc deleted file mode 100644 index fead4afad8..0000000000 --- a/plugins/mRadio/i_variables.inc +++ /dev/null @@ -1,82 +0,0 @@ -{Variables support} -const - numvars = 8; -type - tvar = packed record - name :PWideChar; - help :PAnsiChar; - end; -const - vars:array [0..numvars-1] of tvar = ( - (name:'radio_name' ;help:'Station Name'), - (name:'radio_url' ;help:'Station/playlist URL'), - (name:'radio_active' ;help:'Currently played URL'), - (name:'radio_genre' ;help:'Genre'), - (name:'radio_bitrate';help:'Bitrate'), - (name:'radio_title' ;help:'Current stream title'), - (name:'radio_codec' ;help:'Currently used decoder'), - (name:'radio_status' ;help:'Current status')); -// contact,protocol,host,port,file/path - -function GetField(ai:PARGUMENTSINFO):pWideChar; cdecl; -var - i:integer; - res:PWideChar; -begin - res:=nil; - if ActiveContact<>0 then - begin - i:=0; - repeat - if lstrcmpiw(PWideChar(ai^.argv^),vars[i].name)=0 then - break; - inc(i); - until i=numvars; - case i of - 0: res:=DBReadUnicode(ActiveContact,strCList ,optMyHandle); - 1: res:=DBReadUnicode(ActiveContact,PluginName,optStationURL); - 2: StrDupW(res,ActiveURLw); - 3: res:=DBReadUnicode(ActiveContact,PluginName,optGenre); - 4: res:=DBReadUnicode(ActiveContact,PluginName,optBitrate); - 5: res:=MakeMessage; - 6: res:=DBReadUnicode(0,PluginName,optActiveCodec); - 7: StrDupW(res,TranslateW(GetStatusText(CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_GET)))); - end; - end; - if res=nil then - begin - mGetMem(res,2); - res^:=#0; - end; - result:=res; -end; - -function FreeField(szReturn:PWideChar):int; cdecl; -begin - mFreeMem(szReturn); - result:=1; -end; - -procedure RegisterVariables; -const - Prefix:PAnsiChar = 'Radio'#9; -var - rt:TTOKENREGISTER; - i:integer; - s:array [0..127] of AnsiChar; - p:pAnsiChar; -begin - rt.cbSize :=SizeOf(rt); - rt.memType :=TR_MEM_OWNER; - rt.szService :=@GetField; - rt.szCleanupService:=@FreeField; - rt.flags:=TRF_FIELD or TRF_CLEANUP or TRF_PARSEFUNC or TRF_CLEANUPFUNC or TRF_UNICODE; - p:=StrCopyE(s,Prefix); - rt.szHelpText:=@s; - for i:=0 to numvars-1 do - begin - rt.szTokenString.w:=vars[i].name; - StrCopy(p,vars[i].help); - CallService(MS_VARS_REGISTERTOKEN,0,lparam(@rt)); - end; -end; diff --git a/plugins/mRadio/i_vars.inc b/plugins/mRadio/i_vars.inc deleted file mode 100644 index 26e7024cc1..0000000000 --- a/plugins/mRadio/i_vars.inc +++ /dev/null @@ -1,184 +0,0 @@ -{used variables} - -{$include m_radio.inc} - -const - optActiveCodec:PAnsiChar = 'ActiveCodec'; - optLastStn :PAnsiChar = 'LastStation'; - optConnect :PAnsiChar = 'AutoConnect'; - optAutoMute :PAnsiChar = 'AutoMute'; - optEQ_OFF :PAnsiChar = 'eqoff'; - optStatusMsg :PAnsiChar = 'StatusMsg'; - optCurElement :PAnsiChar = 'LastPlayed'; - optPlayFirst :PAnsiChar = 'PlayFromFirst'; - optActiveURL :PAnsiChar = 'ActiveURL'; - optContRec :PAnsiChar = 'ContRec'; - optLoop :PAnsiChar = 'Loop'; - optShuffle :PAnsiChar = 'Shuffle'; - optRecPath :PAnsiChar = 'RecordPath'; - optStatus :PAnsiChar = 'Status'; - optVolume :PAnsiChar = 'Volume'; - optBuffer :PAnsiChar = 'Buffer'; - optPreBuf :PAnsiChar = 'PreBuf'; - optTimeout :PAnsiChar = 'Timeout'; - optVersion :PAnsiChar = 'version'; - optStatusTmpl :PAnsiChar = 'StatusTmpl'; - optNumTries :PAnsiChar = 'NumTries'; - optOffline :PAnsiChar = 'asOffline'; - // mRadio compatibility - optStationURL :PAnsiChar = 'StationURL'; - optMyHandle :PAnsiChar = 'MyHandle'; - optGenre :PAnsiChar = 'Genre'; - optBitrate :PAnsiChar = 'Bitrate'; - // UserInfo compatibility - optFirstName :PAnsiChar = 'FirstName'; - optNick :PAnsiChar = 'Nick'; - optLastName :PAnsiChar = 'LastName'; - optAge :PAnsiChar = 'Age'; - // 3D sound support - optEAXType :PAnsiChar = 'EAXtype'; - optForcedMono :PAnsiChar = 'ForcedMono'; - - optGroup :PAnsiChar = 'Group'; - optBASSPath :PAnsiChar = 'BASSpath'; - optTitle :PAnsiChar = 'Title'; - optArtist :PAnsiChar = 'Artist'; - -var - hhRadioStatus, - // service handles - hsPlayStop, - hsRecord, - hsSettings, - hsSetVol, - hsGetVol, - hsMute, - hsCommand, - hsExport, - hsImport, - hsTrayMenu, - hsEqOnOff, - - hNetLib, - hDblClick, - hHookShutdown, - hCMenuItemRec, - hCMenuItemPlay, - contexthook, - opthook, - onsetting, - ondelete, - onloadhook:THANDLE; - hiddenwindow:HWND; -var - plist:tPlaylist; -// plFile:pWideChar; // playlist file name (for delete after using?) -// plLocal:boolean; // true - no need to delete playlist -var - RemoteSong:bool; - gVolume:integer; - NumTries:cardinal; - doLoop:cardinal; - PlayFirst:cardinal; - doShuffle:cardinal; - ForcedMono:cardinal; - doContRec:cardinal; - AuConnect:cardinal; - AuMute:cardinal; - AsOffline:cardinal; - isEQ_OFF:cardinal; - PluginStatus:integer; - storagep,storage:PAnsiChar; - recpath:pWideChar; - sBuffer, - sTimeout, - sPreBuf:cardinal; -const - hVolCtrl :HWND=0; - hVolFrmCtrl :HWND=0; -const - {$IFDEF KOL_MCK} - btnMute:pIcoButton = nil; - {$ELSE} - hMuteFrmCtrl:HWND=0; - {$ENDIF} -const - Inited:boolean=false; -const - StatusTmpl:pWideChar = nil; - proxy:pAnsiChar = nil; -type - tEQRec = record - fx :HFX; - wnd :HWND; - param :BASS_DX8_PARAMEQ; - text :PAnsiChar; - end; -var - eq:array [0..9] of tEQRec = ( - (fx:0;wnd:0;param:(fCenter:80 ;fBandwidth:18;fGain:0);text:'80'), - (fx:0;wnd:0;param:(fCenter:170 ;fBandwidth:18;fGain:0);text:'170'), - (fx:0;wnd:0;param:(fCenter:310 ;fBandwidth:18;fGain:0);text:'310'), - (fx:0;wnd:0;param:(fCenter:600 ;fBandwidth:18;fGain:0);text:'600'), - (fx:0;wnd:0;param:(fCenter:1000 ;fBandwidth:18;fGain:0);text:'1k'), - (fx:0;wnd:0;param:(fCenter:3000 ;fBandwidth:18;fGain:0);text:'3k'), - (fx:0;wnd:0;param:(fCenter:6000 ;fBandwidth:18;fGain:0);text:'6k'), - (fx:0;wnd:0;param:(fCenter:12000;fBandwidth:18;fGain:0);text:'12k'), - (fx:0;wnd:0;param:(fCenter:14000;fBandwidth:18;fGain:0);text:'14k'), - (fx:0;wnd:0;param:(fCenter:16000;fBandwidth:18;fGain:0);text:'16k')); -const - IcoBtnSettings:PAnsiChar = 'Radio_Setting'; - IcoBtnOn :PAnsiChar = 'Radio_On'; - IcoBtnOff :PAnsiChar = 'Radio_Off'; - IcoBtnRecUp :PAnsiChar = 'Radio_RecUp'; - IcoBtnRecDn :PAnsiChar = 'Radio_RecDn'; - IcoBtnAdd :PAnsiChar = 'Radio_Add'; - IcoBtnDel :PAnsiChar = 'Radio_Del'; -const - hRecord :THANDLE = 0; - chan :HSTREAM = 0; - ActiveContact:THANDLE = 0; - ActiveURLw :PWideChar = nil; - -type - TEAXItem = record - name:PWideChar; - code:dword; - end; -const - EAXItems:array [0..EAX_ENVIRONMENT_COUNT] of TEAXItem=( - (name:'Off' ; code:0), - (name:'Generic' ; code:EAX_ENVIRONMENT_GENERIC), - (name:'Padded Cell' ; code:EAX_ENVIRONMENT_PADDEDCELL), - (name:'Room' ; code:EAX_ENVIRONMENT_ROOM), - (name:'Bathroom' ; code:EAX_ENVIRONMENT_BATHROOM), - (name:'Living Room' ; code:EAX_ENVIRONMENT_LIVINGROOM), - (name:'Stone Room' ; code:EAX_ENVIRONMENT_STONEROOM), - (name:'Auditorium' ; code:EAX_ENVIRONMENT_AUDITORIUM), - (name:'Concert Hall' ; code:EAX_ENVIRONMENT_CONCERTHALL), - (name:'Cave' ; code:EAX_ENVIRONMENT_CAVE), - (name:'Arena' ; code:EAX_ENVIRONMENT_ARENA), - (name:'Hangar' ; code:EAX_ENVIRONMENT_HANGAR), - (name:'Carpeted Hallway'; code:EAX_ENVIRONMENT_CARPETEDHALLWAY), - (name:'Hallway' ; code:EAX_ENVIRONMENT_HALLWAY), - (name:'Stone Corridor' ; code:EAX_ENVIRONMENT_STONECORRIDOR), - (name:'Alley' ; code:EAX_ENVIRONMENT_ALLEY), - (name:'Forrest' ; code:EAX_ENVIRONMENT_FOREST), - (name:'City' ; code:EAX_ENVIRONMENT_CITY), - (name:'Mountains' ; code:EAX_ENVIRONMENT_MOUNTAINS), - (name:'Quarry' ; code:EAX_ENVIRONMENT_QUARRY), - (name:'Plain' ; code:EAX_ENVIRONMENT_PLAIN), - (name:'Parking Lot' ; code:EAX_ENVIRONMENT_PARKINGLOT), - (name:'Sewer Pipe' ; code:EAX_ENVIRONMENT_SEWERPIPE), - (name:'Under Water' ; code:EAX_ENVIRONMENT_UNDERWATER), - (name:'Drugged' ; code:EAX_ENVIRONMENT_DRUGGED), - (name:'Dizzy' ; code:EAX_ENVIRONMENT_DIZZY), - (name:'Psychotic' ; code:EAX_ENVIRONMENT_PSYCHOTIC)); - -type - tPreset = record - name :PWideChar; - preset:array [0..9] of shortint; - end; -var - Presets: array of tPreset; diff --git a/plugins/mRadio/i_visual.inc b/plugins/mRadio/i_visual.inc deleted file mode 100644 index 77012b55f2..0000000000 --- a/plugins/mRadio/i_visual.inc +++ /dev/null @@ -1,115 +0,0 @@ -{Visual part} -function OnContactMenu(hContact:WPARAM;lParam:LPARAM):int;cdecl; -var - mi:TCListMenuItem; -begin - FillChar(mi,SizeOf(mi),0); - mi.cbSize:=sizeof(mi); - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)), - PluginName)<>0 then - begin - mi.flags:=CMIM_FLAGS or CMIF_HIDDEN; - CallService(MS_CLIST_MODIFYMENUITEM,hCMenuItemPlay,tlparam(@mi)); - end - else - begin - // play/Stop - mi.flags:=CMIM_FLAGS or CMIM_ICON or CMIM_NAME; - if THANDLE(hContact)<>ActiveContact then - begin - mi.szName.a:='Start broadcasting'; - mi.hIcon:=CallService(MS_SKIN2_GETICON,0,tlparam(IcoBtnOn)); - end - else - begin - mi.szName.a:='Stop broadcasting'; - mi.hIcon:=CallService(MS_SKIN2_GETICON,0,tlparam(IcoBtnOff)); - end; - CallService(MS_CLIST_MODIFYMENUITEM,hCMenuItemPlay,tlparam(@mi)); - - // record - mi.flags:=CMIM_FLAGS or CMIM_ICON or CMIM_NAME; - if Service_RadioRecord(0,1)<>0 then - begin - mi.szName.a:='Stop record'; - mi.hIcon:=CallService(MS_SKIN2_GETICON,0,tlparam(IcoBtnRecDn)); - end - else - begin - mi.szName.a:='Start record'; - mi.hIcon:=CallService(MS_SKIN2_GETICON,0,tlparam(IcoBtnRecUp)); - end; - end; - CallService(MS_CLIST_MODIFYMENUITEM,hCMenuItemRec,tlparam(@mi)); - result:=0; -end; - -procedure CreateMenu; -var - mi:TCListMenuItem; -begin - FillChar(mi, sizeof(mi), 0); - mi.cbSize :=sizeof(mi); -// mi.popupPosition:=MenuUserInfoPos; - mi.pszService:=MS_RADIO_RECORD; - mi.szName.a :='Start/Stop Record'; - hCMenuItemRec:=Menu_AddContactMenuItem(@mi); - -//!! mi.flags :=CMIF_NOTOFFLINE or CMIF_NOTOFFLIST; - mi.hIcon :=CallService(MS_SKIN2_GETICON,0,lparam(IcoBtnOn)); - mi.pszService :=MS_RADIO_PLAYSTOP; - mi.szName.a :='Start/Stop broadcasting'; - hCMenuItemPlay:=Menu_AddContactMenuItem(@mi); -end; - -procedure RegisterIcons; -var - sid:TSKINICONDESC; -begin - FillChar(sid,SizeOf(TSKINICONDESC),0); - sid.cbSize:=SizeOf(TSKINICONDESC); - sid.cx:=16; - sid.cy:=16; - sid.szSection.a:='Protocols/mRadio'; - sid.hDefaultIcon :=LoadImage(hInstance,MAKEINTRESOURCE(BTN_RECUP),IMAGE_ICON,16,16,0); - sid.pszName :=IcoBtnRecUp; - sid.szDescription.a:='Start record'; - Skin_AddIcon(@sid); - DestroyIcon(sid.hDefaultIcon); - - sid.hDefaultIcon :=LoadImage(hInstance,MAKEINTRESOURCE(BTN_RECDN),IMAGE_ICON,16,16,0); - sid.pszName :=IcoBtnRecDn; - sid.szDescription.a:='Stop record'; - Skin_AddIcon(@sid); - DestroyIcon(sid.hDefaultIcon); - - sid.hDefaultIcon :=LoadImage(hInstance,MAKEINTRESOURCE(IDI_MAIN),IMAGE_ICON,16,16,0); - sid.pszName :=IcoBtnSettings; - sid.szDescription.a:='Settings'; - Skin_AddIcon(@sid); - DestroyIcon(sid.hDefaultIcon); - - sid.hDefaultIcon :=LoadImage(hInstance,MAKEINTRESOURCE(IDI_ON),IMAGE_ICON,16,16,0); - sid.pszName :=IcoBtnOn; - sid.szDescription.a:='Broadcast ON'; - Skin_AddIcon(@sid); - DestroyIcon(sid.hDefaultIcon); - - sid.hDefaultIcon :=LoadImage(hInstance,MAKEINTRESOURCE(IDI_OFF),IMAGE_ICON,16,16,0); - sid.pszName :=IcoBtnOff; - sid.szDescription.a:='Broadcast OFF'; - Skin_AddIcon(@sid); - DestroyIcon(sid.hDefaultIcon); - - sid.hDefaultIcon :=LoadImage(hInstance,MAKEINTRESOURCE(IDI_ADD),IMAGE_ICON,16,16,0); - sid.pszName :=IcoBtnAdd; - sid.szDescription.a:='Add EQ preset'; - Skin_AddIcon(@sid); - DestroyIcon(sid.hDefaultIcon); - - sid.hDefaultIcon :=LoadImage(hInstance,MAKEINTRESOURCE(IDI_DEL),IMAGE_ICON,16,16,0); - sid.pszName :=IcoBtnDel; - sid.szDescription.a:='Delete EQ preset'; - Skin_AddIcon(@sid); - DestroyIcon(sid.hDefaultIcon); -end; diff --git a/plugins/mRadio/ico/delete.ico b/plugins/mRadio/ico/delete.ico deleted file mode 100644 index eea851da19..0000000000 Binary files a/plugins/mRadio/ico/delete.ico and /dev/null differ diff --git a/plugins/mRadio/ico/mradio.ico b/plugins/mRadio/ico/mradio.ico deleted file mode 100644 index e95c6fe21a..0000000000 Binary files a/plugins/mRadio/ico/mradio.ico and /dev/null differ diff --git a/plugins/mRadio/ico/new.ico b/plugins/mRadio/ico/new.ico deleted file mode 100644 index 73937210e0..0000000000 Binary files a/plugins/mRadio/ico/new.ico and /dev/null differ diff --git a/plugins/mRadio/ico/off.ico b/plugins/mRadio/ico/off.ico deleted file mode 100644 index 041e55bb9e..0000000000 Binary files a/plugins/mRadio/ico/off.ico and /dev/null differ diff --git a/plugins/mRadio/ico/on.ico b/plugins/mRadio/ico/on.ico deleted file mode 100644 index 35bf39e0b9..0000000000 Binary files a/plugins/mRadio/ico/on.ico and /dev/null differ diff --git a/plugins/mRadio/ico/recoff.ico b/plugins/mRadio/ico/recoff.ico deleted file mode 100644 index 4bb6000ef0..0000000000 Binary files a/plugins/mRadio/ico/recoff.ico and /dev/null differ diff --git a/plugins/mRadio/ico/recon.ico b/plugins/mRadio/ico/recon.ico deleted file mode 100644 index d8007b1c8c..0000000000 Binary files a/plugins/mRadio/ico/recon.ico and /dev/null differ diff --git a/plugins/mRadio/make.bat b/plugins/mRadio/make.bat deleted file mode 100644 index dd8fca64a6..0000000000 --- a/plugins/mRadio/make.bat +++ /dev/null @@ -1,20 +0,0 @@ -@echo off -if /i '%1' == 'fpc' ( - set OUTDIR="..\..\bin10\Release\Plugins" - set FPCBIN=fpc.exe -) else if /i '%1' == 'fpc64' ( - set OUTDIR="..\..\bin10\Release64\Plugins" - set FPCBIN=ppcrossx64.exe -) -set PROJECT=mRadio - -if not exist %OUTDIR% mkdir %OUTDIR% -md tmp - -rem brcc32.exe mradio.rc -fomradio.res - -%FPCBIN% @..\Utils.pas\fpc.cfg %PROJECT%.dpr %2 %3 %4 %5 %6 %7 %8 %9 - -move .\tmp\%PROJECT%.dll %OUTDIR% -del /Q tmp\* -rd tmp diff --git a/plugins/mRadio/mr_rc.inc b/plugins/mRadio/mr_rc.inc deleted file mode 100644 index 41998194b6..0000000000 --- a/plugins/mRadio/mr_rc.inc +++ /dev/null @@ -1,87 +0,0 @@ -const - IDD_SEARCH = 101; - IDD_SETTING = 102; - IDD_SETTING_TECH = 103; - IDD_FRAME = 104; - - IDC_GENRE = 1025; - IDC_BITRATE = 1026; - IDC_STATION = 1027; - IDC_LT = 1029; - IDC_EQ = 1030; - IDC_GT = 1031; - - IDC_LOOP = 1032; - IDC_SHUFFLE = 1033; - IDC_CONTREC = 1034; - IDC_PLAYFIRST = 1035; - IDC_EQOFF = 1036; - IDC_BN_INIPATH = 1037; - IDC_BN_URLPATH = 1038; - IDC_CUSTOMINI = 1039; - - IDC_VOLUME = 1040; - IDC_STATIONURL = 1041; - IDC_ADD_LIST = 1042; - IDC_ADD_INI = 1043; - IDC_BN_RECPATH = 1044; - IDC_ED_RECPATH = 1045; - IDC_BN_RECORD = 1046; - IDC_EAXTYPE = 1047; - IDC_USEEAX = 1048; - IDC_BUFFER = 1049; - IDC_PREBUF = 1050; - IDC_TIMEOUT = 1051; - IDC_PRESET = 1052; - IDC_TRIES = 1053; - IDC_MONO = 1054; - - IDC_BASSPATH = 1100; - IDC_BASSPTHBTN = 1101; - - IDC_ZERO = 1060; - IDC_EQ00 = 1061; - IDC_EQ01 = 1062; - IDC_EQ02 = 1063; - IDC_EQ03 = 1064; - IDC_EQ04 = 1065; - IDC_EQ05 = 1066; - IDC_EQ06 = 1067; - IDC_EQ07 = 1068; - IDC_EQ08 = 1069; - IDC_EQ09 = 1070; - IDC_0 = 1161; - IDC_1 = 1162; - IDC_2 = 1163; - IDC_3 = 1164; - IDC_4 = 1165; - IDC_5 = 1166; - IDC_6 = 1167; - IDC_7 = 1168; - IDC_8 = 1169; - IDC_9 = 1170; - - IDC_CONNECT = 1072; - IDC_OFFLINE = 1073; - IDC_AUTOMUTE = 1074; - - IDC_STATUS = 1075; - IDC_HLP_VARS = 1076; - - IDC_IMPORT = 1077; - IDC_EXPORT = 1078; - - IDC_EQ_ADD = 1079; - IDC_EQ_DEL = 1080; - - IDC_RADIO_MUTE = 1025; - IDC_RADIO_VOL = 1026; - - BTN_RECUP = 202; - BTN_RECDN = 203; - - IDI_MAIN = 302; - IDI_ON = 303; - IDI_OFF = 304; - IDI_ADD = 305; - IDI_DEL = 306; diff --git a/plugins/mRadio/mradio.dpr b/plugins/mRadio/mradio.dpr deleted file mode 100644 index 56c2b7dba9..0000000000 --- a/plugins/mRadio/mradio.dpr +++ /dev/null @@ -1,350 +0,0 @@ -{.$DEFINE CHANGE_NAME_BUFFERED} -{$include compilers.inc} -{$IFDEF COMPILER_16_UP} - {$WEAKLINKRTTI ON} - {.$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} -{$ENDIF} -{$IMAGEBASE $13300000} -library mradio; - -uses -// FastMM4, - {$IFDEF KOL_MCK}kol,icobuttons,KOLCCtrls,{$ENDIF}Windows,messages,commctrl - ,common,io,wrapper,wrapdlgs,syswin - ,Dynamic_Bass,dynbasswma - ,m_api,dbsettings,mirutils,playlist,memini; - -{$include mr_rc.inc} -{$r mradio.res} - -{$include i_vars.inc} - -const - cPluginName = 'mRadio'; -const - PluginName:PAnsiChar = cPluginName; - -function MakeMessage:pWideChar; -var - p,artist,title:pWideChar; - len:cardinal; -begin - artist:=DBReadUnicode(0,PluginName,optArtist); - title :=DBReadUnicode(0,PluginName,optTitle); - len:=StrLenW(artist); - if (artist<>nil) and (title<>nil) then - inc(len,3); - inc(len,StrLenW(title)); - - if len>0 then - begin - mGetMem(result,(len+1)*SizeOf(WideChar)); - p:=result; - if artist<>nil then - begin - p:=StrCopyEW(p,artist); - if title<>nil then - p:=StrCopyEW(p,' - '); - mFreeMem(artist); - end; - if title<>nil then - begin - StrCopyW(p,title); - mFreeMem(title); - end; - end - else - result:=nil; -end; - -procedure SetStatus(hContact:THANDLE;status:integer); -begin -// if Status=ID_STATUS_OFFLINE then -// MyStopBass; - - if status=ID_STATUS_OFFLINE then - begin - if (AsOffline=BST_UNCHECKED) or (PluginStatus<>ID_STATUS_OFFLINE) then - status:=ID_STATUS_INVISIBLE; - end; - - if hContact=0 then - begin - hContact:=CallService(MS_DB_CONTACT_FINDFIRST,0,0); - while hContact<>0 do - begin - if StrCmp(PAnsiChar(CallService(MS_PROTO_GETCONTACTBASEPROTO,hContact,0)),PluginName)=0 then - begin - DBWriteWord(hContact,PluginName,optStatus,status); - end; - hContact:=CallService(MS_DB_CONTACT_FINDNEXT,hContact,0); - end; - end - else - DBWriteWord(hContact,PluginName,optStatus,status); -end; - -{$include i_search.inc} -{$include i_bass.inc} -{$include i_cc.inc} -{$include i_variables.inc} -{$include i_service.inc} -{$include i_myservice.inc} -{$include i_hotkey.inc} -{$IFDEF KOL_MCK} - {$include i_frame.inc} -{$ELSE} - {$include i_frameapi.inc} -{$ENDIF} -{$include i_tray.inc} -{$include i_visual.inc} -{$include i_optdlg.inc} - -function MirandaPluginInfoEx(mirandaVersion:DWORD):PPLUGININFOEX; cdecl; -begin - result:=@PluginInfo; - PluginInfo.cbSize :=SizeOf(TPLUGININFOEX); - PluginInfo.shortName :='mRadio Mod'; - PluginInfo.version :=$00000202; - PluginInfo.description:='This plugin plays and records Internet radio streams.'+ - ' Also local media files can be played.'; - PluginInfo.author :='Awkward'; - PluginInfo.authorEmail:='panda75@bk.ru; awk1975@ya.ru'; - PluginInfo.copyright :='(c) 2007-2012 Awkward'; - PluginInfo.homepage :='http://code.google.com/p/delphi-miranda-plugins/'; - PluginInfo.flags :=UNICODE_AWARE; - PluginInfo.uuid :=MIID_MRADIO; -end; - -function OnModulesLoaded(wParam:WPARAM;lParam:LPARAM):int;cdecl; -var - nlu:TNETLIBUSER; - szTemp:array [0..255] of AnsiChar; - i:integer; -begin - UnhookEvent(onloadhook); - - DBWriteDWord(0,PluginName,optVersion,PluginInfo.version); - - szTemp[0]:='E'; - szTemp[1]:='Q'; - szTemp[2]:='_'; - szTemp[4]:=#0; - for i:=0 to 9 do - begin - szTemp[3]:=AnsiChar(ORD('0')+i); - eq[i].param.fGain:=DBReadByte(0,PluginName,szTemp,15)-15; - end; - LoadPresets; - - RegisterIcons; - CreateMenu; - CreateMIMTrayMenu; - - FillChar(nlu,SizeOf(nlu),0); - StrCopy(szTemp,Translate('%s server connection')); - StrReplace(szTemp,'%s',PluginName); - nlu.szDescriptiveName.a:=szTemp; - nlu.cbSize :=SizeOf(nlu); - nlu.flags :=NUF_HTTPCONNS or NUF_NOHTTPSOPTION or NUF_OUTGOING; - nlu.szSettingsModule :=PluginName; - hNetLib:=CallService(MS_NETLIB_REGISTERUSER,0,tlparam(@nlu)); - -// CallService(MS_RADIO_COMMAND,MRC_RECORD,2); record off - not so necessary - - recpath:=DBReadUnicode(0,PluginName,optRecPath); - - sPreBuf:=DBReadWord(0,PluginName,optPreBuf,75); - BASS_SetConfig(BASS_CONFIG_NET_PREBUF,sPreBuf); - - sBuffer:=DBReadWord(0,PluginName,optBuffer,5000); - BASS_SetConfig(BASS_CONFIG_NET_BUFFER,sBuffer); - - sTimeout:=DBReadWord(0,PluginName,optTimeout,5000); - BASS_SetConfig(BASS_CONFIG_NET_TIMEOUT,sTimeout); - - doLoop :=DBReadByte(0,PluginName,optLoop); - doShuffle :=DBReadByte(0,PluginName,optShuffle); - doContRec :=DBReadByte(0,PluginName,optContRec); - PlayFirst :=DBReadByte(0,PluginName,optPlayFirst); - isEQ_OFF :=DBReadByte(0,PluginName,optEQ_OFF); - AuConnect :=DBReadByte(0,PluginName,optConnect); - AuMute :=DBReadByte(0,PluginName,optAutoMute); - AsOffline :=DBReadByte(0,PluginName,optOffline); - gVolume :=DBReadByte(0,PluginName,optVolume,50); - NumTries :=DBReadByte(0,PluginName,optNumTries,1); - ForcedMono:=DBReadByte(0,PluginName,optForcedMono); - if NumTries<1 then NumTries:=1; - - SetStatus(0,ID_STATUS_OFFLINE); - - StatusTmpl:=DBReadUnicode(0,PluginName,optStatusTmpl,'%radio_title%'); - - CallService(MS_RADIO_COMMAND,MRC_STATUS,RD_STATUS_NOSTATION); - - IsMultiThread:=true; - - RegisterVariables; - - if AuConnect<>BST_UNCHECKED then - ActiveContact:=LoadContact(PluginName,optLastStn) - else - ActiveContact:=0; - - onsetting:=HookEvent(ME_DB_CONTACT_SETTINGCHANGED,@OnSettingsChanged); - ondelete :=HookEvent(ME_DB_CONTACT_DELETED ,@OnContactDeleted); - randomize; - CreateFrame(0); - - RegisterHotKey; - - result:=0; -end; - -function PreShutdown(wParam:WPARAM;lParam:LPARAM):int;cdecl; -{ -var - buf:array [0..MAX_PATH-1] of AnsiChar; - fdata:WIN32_FIND_DATAA; - p:pAnsiChar; - fi:THANDLE; -} -begin - RemoveTrayItems; - - CallService(MS_RADIO_COMMAND,MRC_STOP,1); - UnregisterHotKey; - - DestroyProtoServices; - DestroyWindow(hiddenwindow); - DestroyFrame(); - MyFreeBASS; - DBWriteByte(0,PluginName,optVolume,gVolume); - - DestroyServiceFunction(hsTrayMenu); - DestroyServiceFunction(hsPlayStop); - DestroyServiceFunction(hsRecord); - DestroyServiceFunction(hsSettings); - DestroyServiceFunction(hsSetVol); - DestroyServiceFunction(hsGetVol); - DestroyServiceFunction(hsMute); - DestroyServiceFunction(hsCommand); - DestroyServiceFunction(hsEqOnOff); - - DestroyServiceFunction(hsExport); - DestroyServiceFunction(hsImport); - - DestroyHookableEvent(hhRadioStatus); - - UnhookEvent(onsetting); - UnhookEvent(ondelete); - UnhookEvent(hHookShutdown); - UnhookEvent(hDblClick); - UnhookEvent(opthook); - UnhookEvent(contexthook); - - CallService(MS_NETLIB_CLOSEHANDLE,hNetLib,0); - mFreeMem(storage); - mFreeMem(storagep); - mFreeMem(recpath); - mFreeMem(StatusTmpl); - mFreeMem(basspath); - FreePresets; -{ - //delete cover files - buf[0]:=#0; - GetTempPathA(MAX_PATH,buf); - p:=StrEnd(buf); - StrCopy(p,'mrAvt*.*'); - - fi:=FindFirstFileA(buf,fdata); - if fi<>THANDLE(INVALID_HANDLE_VALUE) then - begin - repeat - StrCopy(p,fdata.cFileName); - DeleteFileA(buf); - until not FindNextFileA(fi,fdata); - FindClose(fi); - end; -} - result:=0; -end; - -function Load(): int; cdecl; -var - desc:TPROTOCOLDESCRIPTOR; - szTemp:array [0..MAX_PATH-1] of WideChar; - pc:pWideChar; - custom:pWideChar; -begin - Langpack_register; - - GetModuleFileNameW(0,szTemp,MAX_PATH-1); - pc:=StrEndW(szTemp); - repeat - dec(pc); - until pc^='\'; - inc(pc); - pc^:=#0; - - custom:=DBReadUnicode(0,PluginName,optBASSPath,nil); - - if MyLoadBASS(szTemp,custom) then - begin - StrCopyW(pc,'plugins\mradio.ini'); -// StrDup(storage,szTemp); - FastWideToAnsi(szTemp,storage); - mGetMem(storagep,MAX_PATH+32); - CallService(MS_DB_GETPROFILEPATH,MAX_PATH-1,lparam(storagep)); - StrCat(storagep,'\mradio.ini'); - - FillChar(desc,SizeOf(desc),0); - desc.cbSize:=PROTOCOLDESCRIPTOR_V3_SIZE;//SizeOf(desc); - desc.szName:=PluginName; - desc._type :=PROTOTYPE_PROTOCOL; - CallService(MS_PROTO_REGISTERMODULE,0,lparam(@desc)); - - hhRadioStatus:=CreateHookableEvent(ME_RADIO_STATUS); - - hsPlayStop:=CreateServiceFunction(MS_RADIO_PLAYSTOP,@Service_RadioPlayStop); - hsRecord :=CreateServiceFunction(MS_RADIO_RECORD ,@Service_RadioRecord); - hsSettings:=CreateServiceFunction(MS_RADIO_SETTINGS,@Service_RadioSettings); - hsSetVol :=CreateServiceFunction(MS_RADIO_SETVOL ,@Service_RadioSetVolume); - hsGetVol :=CreateServiceFunction(MS_RADIO_GETVOL ,@Service_RadioGetVolume); - hsMute :=CreateServiceFunction(MS_RADIO_MUTE ,@Service_RadioMute); - hsCommand :=CreateServiceFunction(MS_RADIO_COMMAND ,@ControlCenter); - hsEqOnOff :=CreateServiceFunction(MS_RADIO_EQONOFF ,@Service_EqOnOff); - - hiddenwindow:=CreateHiddenWindow; - hsTrayMenu:=CreateServiceFunction(MS_RADIO_TRAYMENU,@CreateTrayMenu); - - hsExport :=CreateServiceFunction(MS_RADIO_EXPORT ,@ExportAll); - hsImport :=CreateServiceFunction(MS_RADIO_IMPORT ,@ImportAll); - - - CreateProtoServices; - onloadhook :=HookEvent(ME_SYSTEM_MODULESLOADED ,@OnModulesLoaded); - hHookShutdown:=HookEvent(ME_SYSTEM_OKTOEXIT ,@PreShutdown); - hDblClick :=HookEvent(ME_CLIST_DOUBLECLICKED ,@Service_RadioPlayStop{@DblClickProc}); - opthook :=HookEvent(ME_OPT_INITIALISE ,@OnOptInitialise); - contexthook :=HookEvent(ME_CLIST_PREBUILDCONTACTMENU,@OnContactMenu); - - PluginStatus:=ID_STATUS_OFFLINE; - end; - mFreeMem(custom); - - Result:=0; -end; - -function Unload: int; cdecl; -begin - Unload_BASSDLL; - Result:=0; -end; - -exports - Load, Unload, - MirandaPluginInfoEx; - -begin -end. diff --git a/plugins/mRadio/mradio.rc b/plugins/mRadio/mradio.rc deleted file mode 100644 index 91e976fa35..0000000000 --- a/plugins/mRadio/mradio.rc +++ /dev/null @@ -1,182 +0,0 @@ -#include "mr_rc.inc" - -LANGUAGE 0,0 - -IDD_SETTING DIALOGEX 0, 0, 304, 226, 0 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0 -{ - GROUPBOX "Add Station",-1,1,1,200,108, WS_TABSTOP - LTEXT "Station Name",IDC_STATIC,6,12,192,8 - EDITTEXT IDC_STATION,4,22,194,11,ES_AUTOHSCROLL - LTEXT "Station URL (required)",IDC_STATIC,6,36,178,8 - PUSHBUTTON "...", IDC_BN_URLPATH, 184,47,14,11, BS_BOTTOM - EDITTEXT IDC_STATIONURL,4,47,178,11,ES_AUTOHSCROLL - LTEXT "Genre",IDC_STATIC,6,60,192,8 - EDITTEXT IDC_GENRE,4,71,194,11,ES_AUTOHSCROLL - LTEXT "Bitrate",IDC_STATIC,6,84,46,8 - EDITTEXT IDC_BITRATE,4,94,48,11, ES_RIGHT | ES_NUMBER - CTEXT "Add station",IDC_STATIC,74,84,124,8 - PUSHBUTTON "To list", IDC_ADD_LIST, 74,94,60,11 - PUSHBUTTON "To INI" , IDC_ADD_INI , 138,94,60,11 - - GROUPBOX "Record",-1,1,114,200,34, WS_TABSTOP - CTEXT "Record path",IDC_STATIC,4,122,194,8,SS_CENTERIMAGE - EDITTEXT IDC_ED_RECPATH,4,132,178,12,ES_AUTOHSCROLL - PUSHBUTTON "...", IDC_BN_RECPATH, 184,132,14,12 - - GROUPBOX "Status Message",-1,1,152,200,70, WS_TABSTOP - CONTROL "V", IDC_HLP_VARS, "MButtonClass",WS_TABSTOP, 4,162,16,16,$18000000 - RTEXT "Status message template",IDC_STATIC,22,170,174,10 - EDITTEXT IDC_STATUS,4,180,194,40, - ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN - - AUTOCHECKBOX "Shuffle playlist" ,IDC_SHUFFLE , 204, 4,98,22, BS_VCENTER | BS_MULTILINE - AUTOCHECKBOX "Play from first" ,IDC_PLAYFIRST, 204, 28,98,22, BS_VCENTER | BS_MULTILINE - AUTOCHECKBOX "Loop single media" ,IDC_LOOP , 204, 52,98,22, BS_VCENTER | BS_MULTILINE - AUTOCHECKBOX "Continuous record" ,IDC_CONTREC , 204, 76,98,22, BS_VCENTER | BS_MULTILINE - AUTOCHECKBOX "Autoconnect last station" ,IDC_CONNECT , 204,100,98,22, BS_VCENTER | BS_MULTILINE - AUTOCHECKBOX "Protocol depending status" ,IDC_OFFLINE , 204,124,98,22, BS_VCENTER | BS_MULTILINE - AUTOCHECKBOX "Mute with Miranda" ,IDC_AUTOMUTE , 204,148,98,22, BS_VCENTER | BS_MULTILINE - - PUSHBUTTON "Import File", IDC_IMPORT, 204,188,98,16, BS_MULTILINE - PUSHBUTTON "Export All" , IDC_EXPORT, 204,206,98,16, BS_MULTILINE -} - -IDD_SETTING_TECH DIALOGEX 0, 0, 304, 226, 0 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0 -{ - CTEXT "Use EAX",IDC_USEEAX,2,34,72,16,SS_CENTERIMAGE - COMBOBOX IDC_EAXTYPE,75,34,96,75,CBS_DROPDOWNLIST | WS_VSCROLL - - AUTOCHECKBOX "Forced Mono",IDC_MONO,2,52,169,16, BS_RIGHT | BS_VCENTER | BS_LEFTTEXT - - CONTROL "",IDC_VOLUME,"msctls_trackbar32",TBS_NOTICKS | WS_TABSTOP|$100,19,12,129,16 - CTEXT "min",IDC_STATIC,5,15,18,8 - CTEXT "max",IDC_STATIC,150,15,18,8 - GROUPBOX "Volume",-1,2,2,170,28, WS_TABSTOP - - GROUPBOX "",-1,174,2,128,73, WS_TABSTOP - LTEXT "Buffer, ms (5000)",IDC_STATIC,210,8,90,16,SS_CENTERIMAGE - EDITTEXT IDC_BUFFER,178,10,30,12, ES_RIGHT | ES_NUMBER - LTEXT "PreBuf, % (75%)",IDC_STATIC,210,24,90,16,SS_CENTERIMAGE - EDITTEXT IDC_PREBUF,178,26,30,12, ES_RIGHT | ES_NUMBER - LTEXT "Timeout, ms (5000)",IDC_STATIC,210,40,90,16,SS_CENTERIMAGE - EDITTEXT IDC_TIMEOUT,178,42,30,12, ES_RIGHT | ES_NUMBER - LTEXT "Tries to connect",IDC_STATIC,210,56,90,16,SS_CENTERIMAGE - EDITTEXT IDC_TRIES,178,58,30,12, ES_RIGHT | ES_NUMBER - - LTEXT "BASS library path (empty for default)",IDC_STATIC,6,76,276,14,SS_CENTERIMAGE - EDITTEXT IDC_BASSPATH, 2,90,284,11,ES_AUTOHSCROLL - PUSHBUTTON "...", IDC_BASSPTHBTN, 288,90,14,11, BS_BOTTOM - - PUSHBUTTON "OFF", IDC_EQOFF,6 ,154,22,12,BS_PUSHLIKE | BS_CHECKBOX | BS_DEFPUSHBUTTON - PUSHBUTTON "0" ,IDC_ZERO ,9 ,171,14,13 - RTEXT "15" ,IDC_STATIC,13,141,16,10 - RTEXT "-15",IDC_STATIC,13,199,16,10 - - COMBOBOX IDC_PRESET,2,116,150,75,CBS_DROPDOWN | WS_VSCROLL - CONTROL "+", IDC_EQ_ADD, "MButtonClass",WS_TABSTOP, 154,114,16,16,$18000000 - CONTROL "-", IDC_EQ_DEL, "MButtonClass",WS_TABSTOP, 174,114,16,16,$18000000 - LTEXT "Equalizer presets",IDC_STATIC,194,114,106,16,SS_CENTERIMAGE - - CTEXT "",IDC_0,34,211,16,9 - CONTROL "",IDC_EQ00,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP, 29,136,22,75 - CTEXT "",IDC_1,61,211,16,9 - CONTROL "",IDC_EQ01,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP, 55,136,22,75 - CTEXT "",IDC_2,87,211,16,9 - CONTROL "",IDC_EQ02,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP, 81,136,22,75 - CTEXT "",IDC_3,113,211,16,9 - CONTROL "",IDC_EQ03,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP,107,136,22,75 - CTEXT "",IDC_4,139,211,16,9 - CONTROL "",IDC_EQ04,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP,133,136,22,75 - CTEXT "",IDC_5,165,211,16,9 - CONTROL "",IDC_EQ05,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP,159,136,22,75 - CTEXT "",IDC_6,191,211,16,9 - CONTROL "",IDC_EQ06,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP,185,136,22,75 - CTEXT "",IDC_7,217,211,16,9 - CONTROL "",IDC_EQ07,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP,211,136,22,75 - CTEXT "",IDC_8,243,211,16,9 - CONTROL "",IDC_EQ08,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP,237,136,22,75 - CTEXT "",IDC_9,269,211,16,9 - CONTROL "",IDC_EQ09,"msctls_trackbar32",TBS_LEFT|TBS_VERT|WS_TABSTOP,263,136,22,75 - GROUPBOX "Equalizer",IDC_STATIC,2,130,298,92 -} - -IDD_SEARCH DIALOGEX 0, 0, 110, 140 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0 -BEGIN - LTEXT "Station",IDC_STATIC,8,1,98,8 - EDITTEXT IDC_STATION,4,11,102,12,ES_AUTOHSCROLL - LTEXT "URL",IDC_STATIC,8,27,98,8 - EDITTEXT IDC_STATIONURL,4,37,102,12,ES_AUTOHSCROLL - LTEXT "Genre",IDC_STATIC,8,53,98,8 - EDITTEXT IDC_GENRE,4,63,102,12,ES_AUTOHSCROLL - LTEXT "Bitrate",IDC_STATIC,8,79,72,8 - EDITTEXT IDC_BITRATE,4,89,76,12, ES_RIGHT | ES_NUMBER - - AUTORADIOBUTTON "<",IDC_LT,86,80,20,10 - AUTORADIOBUTTON "=",IDC_EQ,86,91,20,10 - AUTORADIOBUTTON ">",IDC_GT,86,102,20,10 - - LTEXT "Custom INI file",IDC_STATIC,8,112,98,8 - EDITTEXT IDC_CUSTOMINI,4,122,84,12,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_BN_INIPATH, 90,122,14,12 -END - -// just for frame API version -IDD_FRAME DIALOGEX 0, 0, 114, 16, 0 -STYLE DS_SETFONT | WS_CHILD | DS_FIXEDSYS | WS_VISIBLE -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0 -BEGIN - CONTROL "" ,IDC_RADIO_VOL ,"msctls_trackbar32", TBS_BOTTOM|TBS_NOTICKS|$100,0,2,98,11 -// CONTROL "*",IDC_RADIO_MUTE,"MButtonClass" ,WS_TABSTOP,100,1,12,12//,$18000000 - PUSHBUTTON "*" ,IDC_RADIO_MUTE, 100,1,12,12, -// BS_OWNERDRAW - BS_FLAT | BS_ICON | BS_PUSHLIKE | BS_CHECKBOX | BS_DEFPUSHBUTTON | BS_CENTER | BS_VCENTER -END - - -IDI_MAIN ICON "ico\mradio.ico" -IDI_ON ICON "ico\on.ico" -IDI_OFF ICON "ico\off.ico" -IDI_ADD ICON "ico\new.ico" -IDI_DEL ICON "ico\delete.ico" -BTN_RECUP ICON "ico\recon.ico" -BTN_RECDN ICON "ico\recoff.ico" - -LANGUAGE 0,0 -VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,2,2 - PRODUCTVERSION 0,0,8,0 - FILEFLAGSMASK $3F - FILEOS 4 - FILETYPE 2 - FILESUBTYPE 0 -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "000004b0" - BEGIN - VALUE "CompanyName",""0 - VALUE "Comments", "Plugin to play Internet radio"0 - VALUE "FileDescription", "mRadio Mod plugin for Miranda NG"0 - VALUE "FileVersion", "0, 0, 2, 2 "0 - VALUE "InternalName", "mRadio Mod"0 - VALUE "OriginalFilename", "mradio.dll"0 - VALUE "ProductName", "mRadio Mod Dynamic Link Library (DLL)"0 - VALUE "ProductVersion", "0, 0, 8, 0 "0 - VALUE "SpecialBuild", "10.05.2012 "0 - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation",0,1200 - END -END diff --git a/plugins/mRadio/mradio.res b/plugins/mRadio/mradio.res deleted file mode 100644 index d70c64c58e..0000000000 Binary files a/plugins/mRadio/mradio.res and /dev/null differ diff --git a/plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj b/plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj deleted file mode 100644 index f78dc543ae..0000000000 --- a/plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj +++ /dev/null @@ -1,130 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {2BCC460C-E7C0-4AA8-B680-B9DE561A8408} - - - - DynamicLibrary - true - Unicode - - - DynamicLibrary - true - Unicode - - - DynamicLibrary - false - Unicode - - - DynamicLibrary - false - Unicode - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\Icons\ - $(SolutionDir)$(Configuration)64\Icons\ - $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ - $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ - $(SolutionDir)$(Configuration)\Icons\ - $(SolutionDir)$(Configuration)64\Icons\ - $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ - $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ - true - - - - Windows - true - false - $(SolutionDir)\lib - - - _DEBUG;%(PreprocessorDefinitions) - ..\..\..\include\msapi - - - - - Windows - true - false - $(SolutionDir)\lib - - - _DEBUG;%(PreprocessorDefinitions) - ..\..\..\include\msapi - - - - - Windows - true - false - $(SolutionDir)\lib - - - NDEBUG;%(PreprocessorDefinitions) - ..\..\..\include\msapi - - - - - Windows - true - false - $(SolutionDir)\lib - - - NDEBUG;%(PreprocessorDefinitions) - ..\..\..\include\msapi - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj.filters b/plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj.filters deleted file mode 100644 index adb1b35427..0000000000 --- a/plugins/mRadio/proto_mradio/Proto_mRadio.vcxproj.filters +++ /dev/null @@ -1,23 +0,0 @@ - - - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/plugins/mRadio/proto_mradio/res/proto_away.ico b/plugins/mRadio/proto_mradio/res/proto_away.ico deleted file mode 100644 index f9d97408f8..0000000000 Binary files a/plugins/mRadio/proto_mradio/res/proto_away.ico and /dev/null differ diff --git a/plugins/mRadio/proto_mradio/res/proto_invisible.ico b/plugins/mRadio/proto_mradio/res/proto_invisible.ico deleted file mode 100644 index 6a868bc106..0000000000 Binary files a/plugins/mRadio/proto_mradio/res/proto_invisible.ico and /dev/null differ diff --git a/plugins/mRadio/proto_mradio/res/proto_offline.ico b/plugins/mRadio/proto_mradio/res/proto_offline.ico deleted file mode 100644 index 5a7e6172ac..0000000000 Binary files a/plugins/mRadio/proto_mradio/res/proto_offline.ico and /dev/null differ diff --git a/plugins/mRadio/proto_mradio/res/proto_online.ico b/plugins/mRadio/proto_mradio/res/proto_online.ico deleted file mode 100644 index 53f13cddca..0000000000 Binary files a/plugins/mRadio/proto_mradio/res/proto_online.ico and /dev/null differ diff --git a/plugins/mRadio/proto_mradio/res/resource.rc b/plugins/mRadio/proto_mradio/res/resource.rc deleted file mode 100644 index 43ad52b944..0000000000 --- a/plugins/mRadio/proto_mradio/res/resource.rc +++ /dev/null @@ -1,37 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// - -#include "..\src\resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON1 ICON "proto_online.ico" -IDI_ICON2 ICON "proto_offline.ico" -IDI_ICON3 ICON "proto_away.ico" -IDI_ICON4 ICON "proto_invisible.ico" - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/plugins/mRadio/proto_mradio/src/resource.h b/plugins/mRadio/proto_mradio/src/resource.h deleted file mode 100644 index d425e7b8b1..0000000000 Binary files a/plugins/mRadio/proto_mradio/src/resource.h and /dev/null differ diff --git a/plugins/mRadio/readme.txt b/plugins/mRadio/readme.txt deleted file mode 100644 index ea111e1056..0000000000 --- a/plugins/mRadio/readme.txt +++ /dev/null @@ -1,147 +0,0 @@ -Description: ------------- -This plugin plays and records Internet radio streams. Also local media files can be played. - -This is not 'clear' mod of mRadio plugin from Bankrut. -So, some things can be different or even uncomplete. - -Notes: ------- -1) Supported formats -BASS library support plugins, so format list can be expanded. -BASS.dll give support for MP3 and OGG formats -BASSWMA.dll give WMA/ASX stream support -PLS (ansi), M3U (old and new format, ansi), M3U8 (old and new format utf8) supported. -This is plugin processing and now all strings converted to ansi. - -2) Tooltip templates -Tipper template: -Common status message (not only mRadio): %sys:status_msg% -also you can check CList/StatusMsg or StationURL values. - -mToolTip templates: -[Station_Codec] -DBSub=mRadio -DBSet=ActiveCodec - -[Station_URL] -DBSub=mRadio -DBSet=StationURL - -[Station_Bitrate] -DBSub=mRadio -DBSet=Bitrate - -[Station_Genre] -DBSub=mRadio -DBSet=Genre - -3) Different info - WMA stations don't recorded, only MP3 and OGG stream record tested. - Not all metatags supported. - Manual proxy settings supported. - BASS Plugins loading ONLY when protocol going Online - -Changelog: ----------- -0.0.2.1 () - 64 bit compatibility fix - new event notifications -0.0.2.0 (19 mar 2011) - Adapted for FreePascal and 64 bit support -0.0.1.7 () - Added internet radio reconnect on track end - Added button to import all radiostations from file - Added frame right-click action "Open mradio settings" - Improved frame coloration - Added Frame (1st try) - Added another WMA stream processing - Added option for several tries to connect radiostation -0.0.1.6 (20 sep 2010) - Changed streams/files tag process -0.0.1.5 (6 sep 2010) - Fixed simple form of M3U playlist reading - Improved compatibility with Watrack plugin - Restored ANSI URL processing if no Unicode possible (especially for BASSWMA) - Fixed group choosing for "Add to List" of new stations - Fixed some memory leaks - Changed proxy processing to ability to use IE settings (through miranda proxy settings) - Fixed crash when contact goin offline (Offline as offline setting) - Code changed to BASS 2.4.6 support (unicode URL support) -0.0.1.4 () - Added event ME_RADIO_STATUS - Added Variables plugin parsing for record filename - Added ability to choose BASS.dll placement - Radio stopping now if active contact deleting - Added services for import/export stations -0.0.1.3 (15 oct 2009) - Radio record filename must calc from media info - Radio record fixed -0.0.1.2 (15 oct 2009) - Added equalizer preset work - "Record" crash fixed - Added changing icon in contact menu for start/stop broadcasting -0.0.1.1 (10 oct 2009) - Added option to export all radio station from list to choosed INI-file -0.0.1.0 () - Fixed UTF8 station track info showing - Dropped ANSI and pre-0.7 Miranda IM version support -0.0.0.15 (14 jan 2008) - Toolbar button to switch sound on/off affect now on mRadio sound - Added 'radio_codec' variable - Added GUID to header files - Added option to show offline stations as Offline (not invisible) - Added option to autconnect last played station -0.0.0.14 ( nov 2007) - Fixed: record directory not created if it not exists - Fixed: Database hook error - Station choosing change plugin status from Offline to Online - Fixed: last played track wrongly restored at start -0.0.0.13 (24 jun 2007) - Added notification for 'Work Offline' IE mode - New option for network timeout -0.0.0.12 (20 jun 2007) - Small fixes - Added Unicode for file select dialog in Options -0.0.0.11 (18 jun 2007) - Added test unicode support (can work wrong) - Added ability to change INI-file for station search - Changed search interface for Miranda version 0.7+ - Added button to switch equalizer off - Options interface changed -0.0.0.10 (13 jun 2007) - Added partial SHOUTcast metatags support - Added playing station status info -0.0.0.9 (10 jun 2007) - Added support old and new ANSI and UTF8 M3U (M3U8) playlists - Added relative pathnames in playlist support -0.0.0.8 (9 jun 2007) - Added partial updater support - Small fixes - Added new option for playlist -0.0.0.7 (7 jun 2007) - Fixed: equalizer values was reversed - Added PLS and M3U playlist support - Code changes -0.0.0.6 (3 jun 2007) - Fixed: Global volume (not music only) used - Fixed: Can't break slowly connected stations -0.0.0.5 (2 jun 2007) - Fixed: Double click contact dialog can't open - Changed: OGG station stream saving -0.0.0.4 (1 jun 2007) - Small Radio station search dialog adaptation for 0.7 and 0.6 Miranda versions - Added volume control synchronization with SndVol - Added option to repeat media - Added global 'Record' menu item to contact menu - Fixed: exit while online Radio status make crash - Added: Equalizer -0.0.0.3 (30 may 2007) - Added UserInfoEx (station editing) compatibility - Code cleaning and optimization - Convert to (2 in 1) -0.0.0.2 (30 may 2007) - Added Variables plugin support - Added Buffer size changing ability -0.0.0.1 (29 may 2007) - First release diff --git a/plugins/mRadio/variants.pas b/plugins/mRadio/variants.pas deleted file mode 100644 index c7c8fdc824..0000000000 --- a/plugins/mRadio/variants.pas +++ /dev/null @@ -1,7 +0,0 @@ -unit variants; - -interface - -implementation - -end. \ No newline at end of file -- cgit v1.2.3