fpc/rtl/win32/activex.pp
2004-05-07 13:26:31 +00:00

2723 lines
121 KiB
ObjectPascal

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
{$define read_interface}
{$undef read_implementation}
Uses Windows,types;
type
{$ifndef ver1_0}
{ extra types }
TOleChar = Types.TOleChar;
POleStr = Types.POleStr;
PPOleStr = Types.PPOleStr;
TBStr = POleStr;
PBStr = ^TBStr;
TOleEnum = type LongWord;
{$else ver1_0}
POleStr = PWideChar;
{$endif ver1_0}
{Glue types, should be linked to the proper windows unit types}
TYPE
Size_t = DWord; {??, probably, like Unix, typecastable to pointer?!?}
OleChar = WChar;
LPOLESTR = ^OLECHAR;
// 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;
// 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;
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;
TYPE
VARTYPE = USHORT;
//TypeInfo stuff.
DISPID = Long ;
SCODE = Long;
pSCODE = ^SCODE;
lpDISPID = ^DISPID;
MEMBERID = DispId;
HREFTYPE = DWord;
// Enums
VARKIND = DWord;
DESCKIND = DWord;
SYSKIND = DWord;
FUNCKIND = DWord;
CHANGEKIND = DWord;
CALLCONV = DWord;
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: pointer {IUnknown}; // get these out (you must set to NULL before calling)
hr : Hresult;
END;
MULTI_QI = TagMULTI_QI;
PMulti_QI = PMultiQI;
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;
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 = record
pwcsName : POleStr;
dwType : DWord;
cbSize : ULarge_integer;
mtime : TFileTime;
ctime : TFileTime;
atime : TFileTime;
grfMode : DWord;
grfLocksSupported : DWord;
clsid : TCLSID;
grfStateBits : DWord;
reserved : DWord;
end;
TStatStg = tagSTATSTG;
PStatStg = ^TStatStg;
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;
tagFORMATETC = Record
CfFormat : Word {TCLIPFORMAT};
Ptd : PDVTARGETDEVICE;
dwAspect : DWORD;
lindex : Long;
tymed : DWORD;
End;
FORMATETC = TagFORMATETC;
TFORMATETC = FORMATETC;
LPFORMATETC = ^FORMATETC;
// 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;
//
// 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;
// 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;
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;
tagDISPPARAMS = Record
rgvarg : lpVARIANTARG;
rgdispipNamedArgs : lpDISPID;
cArgs,
cNamedArgs : UINT;
End;
DISPPARAMS = tagDISPPARAMS;
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 : DWord; // 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,
pfnDeferredFillIn : pULONG;
SCODE : scode;
End;
EXCEPINFO = 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;
tagTLIBATTR = Record
GUID : guid;
LCID : lcid;
SYSKIND : syskind;
wMajorVerNum,
wMinorVerNum,
wLibFlags : Word
End;
TLIBATTR = tagTLIBATTR;
LPTLIBATTR = ^tagTLIBATTR;
LPFUNCDESC = ^FUNCDESC;
tagFUNCDESC = Record
memid : MEMBERID;
lprgscode : pSCODE;
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;
// CURRENCY = CY;
{$IFDEF HASINTF}
// Forward interfaces.
IStream = Interface;
IMoniker = Interface;
IEnumMoniker = Interface;
IEnumString = Interface;
IRunningObjectTable = Interface;
IStorage = Interface;
IEnumSTATSTG = Interface;
IAdviseSink = Interface;
IBindCtx = Interface;
IAsyncManager = Interface;
ICallFactory = Interface;
ISynchronize = Interface;
ITypeLib = Interface;
// 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;
// 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(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:IUnknown;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(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; RiidResult:TIID;Out vresult):HResult;StdCall;
// Function RemoteBindToObject (const pbc:IBindCtx;const mktoleft:IMoniker;RiidResult:TIID;Out vresult):HResult;StdCall;
Function BindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; Riid:TIID;Out vobj):HResult; StdCall;
// Function RemoteBindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; 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:IMoniker;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 IsSystemMonitor(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 = interface(IUnknown)
['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
function Read(pv : Pointer;cb : DWord;pcbRead : PDWord) : HRESULT;stdcall;
function Write(pv : Pointer;cb : DWord;pcbWritten : PDWord): HRESULT;stdcall;
end;
IStream = interface(ISequentialStream)
['{0000000C-0000-0000-C000-000000000046}']
function Seek(dlibMove : Large_integer; dwOrigin: Longint;
out libNewPosition : Large_Integer): HResult; stdcall;
function SetSize(libNewSize : Large_Integer) : HRESULT;stdcall;
function CopyTo(stm: IStream;cb : Large_Integer;out cbRead : Large_Integer;
out cbWritten: Large_Integer) : HRESULT;stdcall;
function Commit(grfCommitFlags : Longint) : HRESULT; stdcall;
function Revert : HRESULT; stdcall;
function LockRegion(libOffset : Large_Integer;cb : Large_Integer;
dwLockType: Longint) : HRESULT;stdcall;
function UnlockRegion(libOffset: Large_Integer;cb: Large_Integer;
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;Out pceltFetched:ULong):HResult; StdCall;
// Function RemoteNext(Celt:ULong;Out Rgelt:FormatEtc;Out pceltFetched:ULong):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;Out pceltFetched:ULong):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 GetCanonicalFormatTEtc(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 EnumDAvise(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;Out lpcFetched : ULong):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;Out lpcFetched : ULong):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; OUT pCeltFetched: ULONG):HResult;StdCall;
{$else}
Function Next(celt: ULONG; OUT rgVar: VARIANT; OUT pCeltFetched: ULONG):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; OUT rgBstrNames: WideString; 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; OUT rgBstrNames: WideString; 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;
{$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(Const pTypeAttr: TypeAttr); StdCall;
{$else}
Function ReleaseTypeAttr():HResult;StdCall;
{$endif}
{$ifndef Call_as}
Procedure ReleaseFuncDesc(const pFuncDesc : FUNCDESC); StdCall;
{$else}
Function LocalReleaseFuncDesc():HResult;StdCall;
{$endif}
{$ifndef Call_as}
Procedure ReleaseVarDesc(Const pVarDesc : VarDesc);
{$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; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
{$else}
Function GetDocumentation2(memid: MEMBERID; lcid: LCID; refPtrFlags: DWORD; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):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; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
{$else}
Function GetDocumentation(index: WINT; refPtrFlags: DWORD; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):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(Const pTLibAttr : TLIBATTR); 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; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
{$else}
Function GetDocumentation2(index: WINT; lcid: LCID; refPtrFlags: DWORD; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):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; OUT pceltFetched: UINT):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;
{$ENDIF}
{ ******************************************************************************************************************
stuff from objbase.h
****************************************************************************************************************** }
{$IFDEF HASINTF}
{$i wininc/objbase.inc}
{ redefinitions }
function CoCreateGuid(out _para1:TGUID):HRESULT;stdcall;external 'ole32.dll' name 'CoCreateGuid';
{ additional definitions }
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 HASINTF}
implementation
{$undef read_interface}
{$define read_implementation}
end.
{
$Log$
Revision 1.12 2004-05-07 13:26:31 marco
* COM related fixes from bug 3090
Revision 1.11 2003/10/05 20:30:09 florian
+ necessary declarations for dx8 headers added
Revision 1.10 2003/10/05 19:10:31 florian
* fixed some delphi compatibilty issues
* improved makefile dependencies
Revision 1.9 2003/09/17 15:06:36 peter
* stdcall patch
Revision 1.8 2002/12/12 17:52:35 peter
* INT renamed to WINT
Revision 1.7 2002/10/10 16:10:45 florian
+ declarations of objbase.h added
Revision 1.6 2002/09/07 16:01:28 peter
* old logs removed and tabs fixed
Revision 1.5 2002/07/28 20:43:49 florian
* several fixes for linux/powerpc
* several fixes to MT
Revision 1.4 2002/03/01 12:42:42 peter
* fixed HASINTF
Revision 1.3 2002/02/28 13:52:59 marco
* has_intf and oaidl
Revision 1.2 2002/02/26 10:30:01 marco
* Merged objidl.idl translation. Most of wtypes.idl also included. Size slightly increased.
}