MODULE WinOle ["OLE32.dll"];
(**
	project	= "BlackBox"
	organization	= "www.oberon.ch"
	contributors	= "Oberon microsystems"
	version	= "System/Rsrc/About"
	copyright	= "System/Rsrc/About"
	license	= "Docu/BB-License"
	changes	= "
	- YYYYMMDD, nn, ...
	"
	issues	= "
	- ...
	"

**)

	IMPORT COM, WinApi;

	CONST
		GUID_NULL* = "{00000000-0000-0000-0000-000000000000}";

	CONST (* macros *)
		WIN32* = 100;
		CLSCTX_ALL* = {0..2, 4};
		CLSCTX_INPROC* = {0, 1};
		CLSCTX_SERVER* = {0, 2, 4};
		MARSHALINTERFACE_MIN* = 500;
		CWCSTORAGENAME* = 32;
		STGM_DIRECT* = {};
		STGM_TRANSACTED* = {16};
		STGM_SIMPLE* = {27};
		STGM_READ* = {};
		STGM_WRITE* = {0};
		STGM_READWRITE* = {1};
		STGM_SHARE_DENY_NONE* = {6};
		STGM_SHARE_DENY_READ* = {4, 5};
		STGM_SHARE_DENY_WRITE* = {5};
		STGM_SHARE_EXCLUSIVE* = {4};
		STGM_PRIORITY* = {18};
		STGM_DELETEONRELEASE* = {26};
		STGM_NOSCRATCH* = {20};
		STGM_CREATE* = {12};
		STGM_CONVERT* = {17};
		STGM_FAILIFTHERE* = {};
		ROTFLAGS_REGISTRATIONKEEPSALIVE* = {0};
		ROT_COMPARE_MAX* = 2048;
		WDT_INPROC_CALL* = 1232364631;
		WDT_REMOTE_CALL* = 1383359575;
		DECIMAL_NEG* = 128;
		PROPSETFLAG_DEFAULT* = 0;
		PROPSETFLAG_NONSIMPLE* = 1;
		PROPSETFLAG_ANSI* = 2;
		PID_DICTIONARY* = 0;
		PID_CODEPAGE* = 1;
		PID_FIRST_NAME_DEFAULT* = 4095;
		PID_LOCALE* = 80000000H;
		PID_MODIFY_TIME* = -2147483647;
		PID_SECURITY* = -2147483646;
		PID_ILLEGAL* = -1;
		PRSPEC_INVALID* = -1;
		PRSPEC_LPWSTR* = 0;
		PRSPEC_PROPID* = 1;
		COM_RIGHTS_EXECUTE* = 1;
		E_DRAW* = -2147221184;
		DATA_E_FORMATETC* = -2147221404;
		OLEIVERB_PRIMARY* = 0;
		OLEIVERB_SHOW* = -1;
		OLEIVERB_OPEN* = -2;
		OLEIVERB_HIDE* = -3;
		OLEIVERB_UIACTIVATE* = -4;
		OLEIVERB_INPLACEACTIVATE* = -5;
		OLEIVERB_DISCARDUNDOSTATE* = -6;
		EMBDHLP_INPROC_HANDLER* = {};
		EMBDHLP_INPROC_SERVER* = {0};
		EMBDHLP_CREATENOW* = {};
		EMBDHLP_DELAYCREATE* = {16};
		UPDFCACHE_NODATACACHE* = {0};
		UPDFCACHE_ONSAVECACHE* = {1};
		UPDFCACHE_ONSTOPCACHE* = {2};
		UPDFCACHE_NORMALCACHE* = {3};
		UPDFCACHE_IFBLANK* = {4};
		UPDFCACHE_ONLYIFBLANK* = {31};
		UPDFCACHE_IFBLANKORONSAVECACHE* = {1, 4};
		UPDFCACHE_ALL* = {0..30};
		UPDFCACHE_ALLBUTNODATACACHE* = {1..30};
		MK_ALT* = {5};
		DROPEFFECT_NONE* = {};
		DROPEFFECT_COPY* = {0};
		DROPEFFECT_MOVE* = {1};
		DROPEFFECT_LINK* = {2};
		DROPEFFECT_SCROLL* = {31};
		DD_DEFSCROLLINSET* = 11;
		DD_DEFSCROLLDELAY* = 50;
		DD_DEFSCROLLINTERVAL* = 50;
		DD_DEFDRAGDELAY* = 200;
		DD_DEFDRAGMINDIST* = 2;

	CONST (* enumerations *)
		REGCLS_SINGLEUSE* = {};
		REGCLS_MULTIPLEUSE* = {0};
		REGCLS_MULTI_SEPARATE* = {1};
		MEMCTX_TASK* = 1;
		MEMCTX_SHARED* = 2;
		MEMCTX_MACSYSTEM* = 3;
		MEMCTX_UNKNOWN* = -1;
		MEMCTX_SAME* = -2;
		CLSCTX_INPROC_SERVER* = {0};
		CLSCTX_INPROC_HANDLER* = {1};
		CLSCTX_LOCAL_SERVER* = {2};
		CLSCTX_INPROC_SERVER16* = {3};
		CLSCTX_REMOTE_SERVER* = {4};
		CLSCTX_INPROC_HANDLER16* = {5};
		CLSCTX_INPROC_SERVERX86* = {6};
		CLSCTX_INPROC_HANDLERX86* = {7};
		MSHLFLAGS_NORMAL* = {};
		MSHLFLAGS_TABLESTRONG* = {0};
		MSHLFLAGS_TABLEWEAK* = {1};
		MSHCTX_LOCAL* = 0;
		MSHCTX_NOSHAREDMEM* = 1;
		MSHCTX_DIFFERENTMACHINE* = 2;
		MSHCTX_INPROC* = 3;
		DVASPECT_CONTENT* = {0};
		DVASPECT_THUMBNAIL* = {1};
		DVASPECT_ICON* = {2};
		DVASPECT_DOCPRINT* = {3};
		STGC_DEFAULT* = {};
		STGC_OVERWRITE* = {0};
		STGC_ONLYIFCURRENT* = {1};
		STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE* = {2};
		STGMOVE_MOVE* = 0;
		STGMOVE_COPY* = 1;
		STGMOVE_SHALLOWCOPY* = 2;
		STATFLAG_DEFAULT* = 0;
		STATFLAG_NONAME* = 1;
		STATFLAG_NOOPEN* = 2;
		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;
		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;
		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_VECTOR* = 4096;
		VT_ARRAY* = 8192;
		VT_BYREF* = 16384;
		VT_RESERVED* = 32768;
		VT_ILLEGAL* = 65535;
		VT_ILLEGALMASKED* = 4095;
		VT_TYPEMASK* = 4095;
		EXTCONN_STRONG* = {0};
		EXTCONN_WEAK* = {1};
		EXTCONN_CALLABLE* = {2};
		BIND_MAYBOTHERUSER* = {0};
		BIND_JUSTTESTEXISTENCE* = {1};
		MKSYS_NONE* = 0;
		MKSYS_GENERICCOMPOSITE* = 1;
		MKSYS_FILEMONIKER* = 2;
		MKSYS_ANTIMONIKER* = 3;
		MKSYS_ITEMMONIKER* = 4;
		MKSYS_POINTERMONIKER* = 5;
		MKRREDUCE_ONE* = 196608;
		MKRREDUCE_TOUSER* = 131072;
		MKRREDUCE_THROUGHUSER* = 65536;
		MKRREDUCE_ALL* = 0;
		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* = {0};
		LOCK_EXCLUSIVE* = {1};
		LOCK_ONLYONCE* = {2};
		ADVF_NODATA* = {0};
		ADVF_PRIMEFIRST* = {1};
		ADVF_ONLYONCE* = {2};
		ADVF_DATAONSTOP* = {6};
		ADVFCACHE_NOHANDLER* = {3};
		ADVFCACHE_FORCEBUILTIN* = {4};
		ADVFCACHE_ONSAVE* = {5};
		TYMED_HGLOBAL* = {0};
		TYMED_FILE* = {1};
		TYMED_ISTREAM* = {2};
		TYMED_ISTORAGE* = {3};
		TYMED_GDI* = {4};
		TYMED_MFPICT* = {5};
		TYMED_ENHMF* = {6};
		TYMED_NULL* = {};
		DATADIR_GET* = {0};
		DATADIR_SET* = {1};
		CALLTYPE_TOPLEVEL* = 1;
		CALLTYPE_NESTED* = 2;
		CALLTYPE_ASYNC* = 3;
		CALLTYPE_TOPLEVEL_CALLPENDING* = 4;
		CALLTYPE_ASYNC_CALLPENDING* = 5;
		SERVERCALL_ISHANDLED* = 0;
		SERVERCALL_REJECTED* = 1;
		SERVERCALL_RETRYLATER* = 2;
		PENDINGTYPE_TOPLEVEL* = 1;
		PENDINGTYPE_NESTED* = 2;
		PENDINGMSG_CANCELCALL* = 0;
		PENDINGMSG_WAITNOPROCESS* = 1;
		PENDINGMSG_WAITDEFPROCESS* = 2;
		EOAC_NONE* = 0;
		EOAC_MUTUAL_AUTH* = 1;
		COINIT_MULTITHREADED* = 0;
		COINIT_APARTMENTTHREADED* = 2;
		COINIT_DISABLE_OLE1DDE* = 4;
		DISCARDCACHE_SAVEIFDIRTY* = 0;
		DISCARDCACHE_NOSAVE* = 1;
		OLEGETMONIKER_ONLYIFTHERE* = 1;
		OLEGETMONIKER_FORCEASSIGN* = 2;
		OLEGETMONIKER_UNASSIGN* = 3;
		OLEGETMONIKER_TEMPFORUSER* = 4;
		OLEWHICHMK_CONTAINER* = 1;
		OLEWHICHMK_OBJREL* = 2;
		OLEWHICHMK_OBJFULL* = 3;
		USERCLASSTYPE_FULL* = 1;
		USERCLASSTYPE_SHORT* = 2;
		USERCLASSTYPE_APPNAME* = 3;
		OLEMISC_RECOMPOSEONRESIZE* = {0};
		OLEMISC_ONLYICONIC* = {1};
		OLEMISC_INSERTNOTREPLACE* = {2};
		OLEMISC_STATIC* = {3};
		OLEMISC_CANTLINKINSIDE* = {4};
		OLEMISC_CANLINKBYOLE1* = {5};
		OLEMISC_ISLINKOBJECT* = {6};
		OLEMISC_INSIDEOUT* = {7};
		OLEMISC_ACTIVATEWHENVISIBLE* = {8};
		OLEMISC_RENDERINGISDEVICEINDEPENDENT* = {9};
		OLECLOSE_SAVEIFDIRTY* = 0;
		OLECLOSE_NOSAVE* = 1;
		OLECLOSE_PROMPTSAVE* = 2;
		OLERENDER_NONE* = 0;
		OLERENDER_DRAW* = 1;
		OLERENDER_FORMAT* = 2;
		OLERENDER_ASIS* = 3;
		OLEUPDATE_ALWAYS* = 1;
		OLEUPDATE_ONCALL* = 3;
		OLELINKBIND_EVENIFCLASSDIFF* = {0};
		BINDSPEED_INDEFINITE* = 1;
		BINDSPEED_MODERATE* = 2;
		BINDSPEED_IMMEDIATE* = 3;
		OLECONTF_EMBEDDINGS* = {0};
		OLECONTF_LINKS* = {1};
		OLECONTF_OTHERS* = {2};
		OLECONTF_ONLYUSER* = {3};
		OLECONTF_ONLYIFRUNNING* = {4};
		OLEVERBATTRIB_NEVERDIRTIES* = {0};
		OLEVERBATTRIB_ONCONTAINERMENU* = {1};
		
	CONST (* additional *)
		STGFMT_DOCUMENT*  = 0;
		STGFMT_DIRECTORY* = 1;
		STGFMT_CATALOG*   = 2;
		STGFMT_FILE*      = 3;


	TYPE
		BSTR* = POINTER TO ARRAY [untagged] OF CHAR;
		PtrWSTR* = WinApi.PtrWSTR;
		REGCLS* = INTEGER;
		RemHGLOBAL* = RECORD [untagged]
			fNullHGlobal*: INTEGER;
			cbData*: INTEGER;
			data*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		RemHMETAFILEPICT* = RECORD [untagged]
			mm*: INTEGER;
			xExt*: INTEGER;
			yExt*: INTEGER;
			cbData*: INTEGER;
			data*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		RemHENHMETAFILE* = RECORD [untagged]
			cbData*: INTEGER;
			data*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		RemHBITMAP* = RECORD [untagged]
			cbData*: INTEGER;
			data*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		RemHPALETTE* = RECORD [untagged]
			cbData*: INTEGER;
			data*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		RemHBRUSH* = RECORD [untagged]
			cbData*: INTEGER;
			data*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		MEMCTX* = INTEGER;
		CLSCTX* = INTEGER;
		MSHLFLAGS* = INTEGER;
		MSHCTX* = INTEGER;
		DVASPECT* = INTEGER;
		STGC* = INTEGER;
		STGMOVE* = INTEGER;
		STATFLAG* = INTEGER;
		LCID* = INTEGER;
		BYTE_BLOB* = RECORD [untagged]
			clSize*: INTEGER;
			abData*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		PtrBYTE_BLOB* = POINTER TO BYTE_BLOB;
		WORD_BLOB* = RECORD [untagged]
			clSize*: INTEGER;
			asData*: ARRAY [untagged] 1 OF SHORTINT;
		END;
		PtrWORD_BLOB* = POINTER TO WORD_BLOB;
		DWORD_BLOB* = RECORD [untagged]
			clSize*: INTEGER;
			alData*: ARRAY [untagged] 1 OF INTEGER;
		END;
		PtrDWORD_BLOB* = POINTER TO DWORD_BLOB;
		FLAGGED_BYTE_BLOB* = RECORD [untagged]
			fFlags*: INTEGER;
			clSize*: INTEGER;
			abData*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		PtrFLAGGED_BYTE_BLOB* = POINTER TO FLAGGED_BYTE_BLOB;
		FLAGGED_WORD_BLOB* = RECORD [untagged]
			fFlags*: INTEGER;
			clSize*: INTEGER;
			asData*: ARRAY [untagged] 1 OF SHORTINT;
		END;
		PtrFLAGGED_WORD_BLOB* = POINTER TO FLAGGED_WORD_BLOB;
		BYTE_SIZEDARR* = RECORD [untagged]
			clSize*: INTEGER;
			pData*: POINTER TO (*?*) ARRAY [untagged] OF SHORTCHAR;
		END;
		WORD_SIZEDARR* = RECORD [untagged]
			clSize*: INTEGER;
			pData*: POINTER TO (*?*) ARRAY [untagged] OF SHORTINT;
		END;
		DWORD_SIZEDARR* = RECORD [untagged]
			clSize*: INTEGER;
			pData*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
		END;
		HYPER_SIZEDARR* = RECORD [untagged]
			clSize*: INTEGER;
			pData*: POINTER TO (*?*) ARRAY [untagged] OF LONGINT;
		END;
		GDI_NONREMOTE* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: PtrDWORD_BLOB;
				hGlobal*: INTEGER;
			END;
		END;
		userHGLOBAL* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: PtrFLAGGED_BYTE_BLOB;
				hGlobal*: INTEGER;
			END;
		END;
		PtruserHGLOBAL* = POINTER TO userHGLOBAL;
		userHMETAFILE* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: PtrBYTE_BLOB;
				hGlobal*: INTEGER;
			END;
		END;
		PtruserHMETAFILE* = POINTER TO userHMETAFILE;
		remoteMETAFILEPICT* = RECORD [untagged]
			mm*: INTEGER;
			xExt*: INTEGER;
			yExt*: INTEGER;
			hMF*: PtruserHMETAFILE;
		END;
		PtrremoteMETAFILEPICT* = POINTER TO remoteMETAFILEPICT;
		userHMETAFILEPICT* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: PtrremoteMETAFILEPICT;
				hGlobal*: INTEGER;
			END;
		END;
		PtruserHMETAFILEPICT* = POINTER TO userHMETAFILEPICT;
		userHENHMETAFILE* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: PtrBYTE_BLOB;
				hGlobal*: INTEGER;
			END;
		END;
		PtruserHENHMETAFILE* = POINTER TO userHENHMETAFILE;
		userBITMAP* = RECORD [untagged]
			bmType*: INTEGER;
			bmWidth*: INTEGER;
			bmHeight*: INTEGER;
			bmWidthBytes*: INTEGER;
			bmPlanes*: SHORTINT;
			bmBitsPixel*: SHORTINT;
			cbSize*: INTEGER;
			pBuffer*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		PtruserBITMAP* = POINTER TO userBITMAP;
		userHBITMAP* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: PtruserBITMAP;
				hGlobal*: INTEGER;
			END;
		END;
		PtruserHBITMAP* = POINTER TO userHBITMAP;
		rpcLOGPALETTE* = RECORD [untagged]
			palVersion*: SHORTINT;
			palNumEntries*: SHORTINT;
			palPalEntry*: ARRAY [untagged] 1 OF WinApi.PALETTEENTRY;
		END;
		PtrrpcLOGPALETTE* = POINTER TO rpcLOGPALETTE;
		userHPALETTE* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: PtrrpcLOGPALETTE;
				hGlobal*: INTEGER;
			END;
		END;
		PtruserHPALETTE* = POINTER TO userHPALETTE;
		RemotableHandle* = RECORD [untagged]
			fContext*: INTEGER;
			u*: RECORD [union]
				hInproc*: INTEGER;
				hRemote*: INTEGER;
				hGlobal*: INTEGER;
			END;
		END;
		PtrRemotableHandle* = POINTER TO RemotableHandle;
		tagCY* = RECORD [union]
			r*: RECORD [untagged]
				Lo*: INTEGER;
				Hi*: INTEGER;
			END;
			int64*: LONGINT;
		END;
		DECIMAL* = RECORD [align8]
			wReserved*: SHORTINT;
			u*: RECORD [union]
				r*: RECORD [untagged]
					scale*: SHORTCHAR;
					sign*: SHORTCHAR;
				END;
				signscale*: SHORTINT;
			END;
			Hi32*: INTEGER;
			u1*: RECORD [union]
				r*: RECORD [untagged]
					Lo32*: INTEGER;
					Mid32*: INTEGER;
				END;
				Lo64*: LONGINT;
			END;
		END;
		PtrDECIMAL* = POINTER TO DECIMAL;
		VARIANT_BOOL* = SHORTINT;
		BLOB* = RECORD [untagged]
			cbSize*: INTEGER;
			pBlobData*: POINTER TO (*?*) ARRAY [untagged] OF SHORTCHAR;
		END;
		PtrBLOB* = POINTER TO BLOB;
		CLIPDATA* = RECORD [untagged]
			cbSize*: INTEGER;
			ulClipFmt*: INTEGER;
			pClipData*: POINTER TO (*?*) ARRAY [untagged] OF SHORTCHAR;
		END;
		PtrCLIPDATA* = POINTER TO CLIPDATA;
		VARTYPE* = SHORTINT;
		VARENUM* = INTEGER;
		PROPID* = INTEGER;
		IClassFactory* = POINTER TO ABSTRACT RECORD ["{00000001-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IMarshal* = POINTER TO ABSTRACT RECORD ["{00000003-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IMalloc* = POINTER TO ABSTRACT RECORD ["{00000002-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IMallocSpy* = POINTER TO ABSTRACT RECORD ["{0000001d-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IStdMarshalInfo* = POINTER TO ABSTRACT RECORD ["{00000018-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		EXTCONN* = INTEGER;
		IExternalConnection* = POINTER TO ABSTRACT RECORD ["{00000019-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IEnumUnknown* = POINTER TO ABSTRACT RECORD ["{00000100-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		BIND_OPTS* = RECORD [untagged]
			cbStruct*: INTEGER;
			grfFlags*: SET;
			grfMode*: SET;
			dwTickCountDeadline*: INTEGER;
		END;
		PtrBIND_OPTS* = POINTER TO BIND_OPTS;
		BIND_FLAGS* = INTEGER;
		IBindCtx* = POINTER TO ABSTRACT RECORD ["{0000000e-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IEnumMoniker* = POINTER TO ABSTRACT RECORD ["{00000102-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IRunnableObject* = POINTER TO ABSTRACT RECORD ["{00000126-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IRunningObjectTable* = POINTER TO ABSTRACT RECORD ["{00000010-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IPersist* = POINTER TO ABSTRACT RECORD ["{0000010c-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IPersistStream* = POINTER TO ABSTRACT RECORD ["{00000109-0000-0000-C000-000000000046}"] (IPersist)
		END;
		MKSYS* = INTEGER;
		MKRREDUCE* = INTEGER;
		IMoniker* = POINTER TO ABSTRACT RECORD ["{0000000f-0000-0000-C000-000000000046}"] (IPersistStream)
		END;
		IROTData* = POINTER TO ABSTRACT RECORD ["{f29f6bc0-5021-11ce-aa15-00006901293f}"] (COM.IUnknown)
		END;
		IEnumString* = POINTER TO ABSTRACT RECORD ["{00000101-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		ISequentialStream* = POINTER TO ABSTRACT RECORD ["{0c733a30-2a1c-11ce-ade5-00aa0044773d}"] (COM.IUnknown)
		END;
		STATSTG* = RECORD [align8]
			pwcsName*: WinApi.PtrWSTR;
			type*: INTEGER;
			cbSize*: LONGINT;
			mtime*: WinApi.FILETIME;
			ctime*: WinApi.FILETIME;
			atime*: WinApi.FILETIME;
			grfMode*: SET;
			grfLocksSupported*: SET;
			clsid*: COM.GUID;
			grfStateBits*: SET;
			dwStgFmt*: INTEGER;
		END;
		PtrSTATSTG* = POINTER TO STATSTG;
		STGTY* = INTEGER;
		STREAM_SEEK* = INTEGER;
		LOCKTYPE* = INTEGER;
		IStream* = POINTER TO ABSTRACT RECORD ["{0000000c-0000-0000-C000-000000000046}"] (ISequentialStream)
		END;
		IEnumSTATSTG* = POINTER TO ABSTRACT RECORD ["{0000000d-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		RemSNB* = RECORD [untagged]
			ulCntStr*: INTEGER;
			ulCntChar*: INTEGER;
			rgString*: ARRAY [untagged] 1 OF CHAR;
		END;
		PtrRemSNB* = POINTER TO RemSNB;
		SNB* = POINTER TO (*?*) ARRAY [untagged] OF WinApi.PtrWSTR;
		IStorage* = POINTER TO ABSTRACT RECORD ["{0000000b-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IPersistFile* = POINTER TO ABSTRACT RECORD ["{0000010b-0000-0000-C000-000000000046}"] (IPersist)
		END;
		IPersistStorage* = POINTER TO ABSTRACT RECORD ["{0000010a-0000-0000-C000-000000000046}"] (IPersist)
		END;
		ILockBytes* = POINTER TO ABSTRACT RECORD ["{0000000a-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		DVTARGETDEVICE* = RECORD [untagged]
			tdSize*: INTEGER;
			tdDriverNameOffset*: SHORTINT;
			tdDeviceNameOffset*: SHORTINT;
			tdPortNameOffset*: SHORTINT;
			tdExtDevmodeOffset*: SHORTINT;
			tdData*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		PtrDVTARGETDEVICE* = POINTER TO DVTARGETDEVICE;
		CLIPFORMAT* = SHORTINT;
		FORMATETC* = RECORD [untagged]
			cfFormat*: CLIPFORMAT;
			ptd*: PtrDVTARGETDEVICE;
			dwAspect*: SET;
			lindex*: INTEGER;
			tymed*: SET;
		END;
		PtrFORMATETC* = POINTER TO FORMATETC;
		IEnumFORMATETC* = POINTER TO ABSTRACT RECORD ["{00000103-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		ADVF* = INTEGER;
		STATDATA* = RECORD [untagged]
			formatetc*: FORMATETC;
			advf*: SET;
			pAdvSink*: IAdviseSink;
			dwConnection*: INTEGER;
		END;
		PtrSTATDATA* = POINTER TO STATDATA;
		IEnumSTATDATA* = POINTER TO ABSTRACT RECORD ["{00000105-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IRootStorage* = POINTER TO ABSTRACT RECORD ["{00000012-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		TYMED* = INTEGER;
		RemSTGMEDIUM* = RECORD [untagged]
			tymed*: SET;
			dwHandleType*: INTEGER;
			pData*: INTEGER;
			pUnkForRelease*: INTEGER;
			cbData*: INTEGER;
			data*: ARRAY [untagged] 1 OF SHORTCHAR;
		END;
		STGMEDIUM* = RECORD [untagged]
			tymed*: SET;
			u*: RECORD [union]
				hBitmap*: WinApi.HBITMAP;
				hMetaFilePict*: WinApi.HMETAFILEPICT;
				hEnhMetaFile*: WinApi.HENHMETAFILE;
				hGlobal*: WinApi.HGLOBAL;
				lpszFileName*: WinApi.PtrWSTR;
				pstm*: IStream;
				pstg*: IStorage;
			END;
			pUnkForRelease*: COM.IUnknown;
		END;
		PtrSTGMEDIUM* = POINTER TO STGMEDIUM;
		GDI_OBJECT* = RECORD [untagged]
			ObjectType*: INTEGER;
			u*: RECORD [union]
				hBitmap*: PtruserHBITMAP;
				hPalette*: PtruserHPALETTE;
				hGeneric*: PtruserHGLOBAL;
			END;
		END;
		PtrGDI_OBJECT* = POINTER TO GDI_OBJECT;
		_STGMEDIUM_UNION* = RECORD [untagged]
			tymed*: SET;
			u*: RECORD [union]
				hMetaFilePict*: PtruserHMETAFILEPICT;
				hHEnhMetaFile*: PtruserHENHMETAFILE;
				hGdiHandle*: PtrGDI_OBJECT;
				hGlobal*: PtruserHGLOBAL;
				lpszFileName*: WinApi.PtrWSTR;
				pstm*: PtrBYTE_BLOB;
				pstg*: PtrBYTE_BLOB;
			END;
		END;
		userSTGMEDIUM* = RECORD [untagged]
			r*: _STGMEDIUM_UNION;
			pUnkForRelease*: COM.IUnknown;
		END;
		PtruserSTGMEDIUM* = POINTER TO userSTGMEDIUM;
		userFLAG_STGMEDIUM* = RECORD [untagged]
			ContextFlags*: SET;
			fPassOwnership*: INTEGER;
			Stgmed*: userSTGMEDIUM;
		END;
		PtruserFLAG_STGMEDIUM* = POINTER TO userFLAG_STGMEDIUM;
		FLAG_STGMEDIUM* = RECORD [untagged]
			ContextFlags*: SET;
			fPassOwnership*: INTEGER;
			Stgmed*: STGMEDIUM;
		END;
		PtrFLAG_STGMEDIUM* = POINTER TO FLAG_STGMEDIUM;
		IAdviseSink* = POINTER TO ABSTRACT RECORD ["{0000010f-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IAdviseSink2* = POINTER TO ABSTRACT RECORD ["{00000125-0000-0000-C000-000000000046}"] (IAdviseSink)
		END;
		DATADIR* = INTEGER;
		IDataObject* = POINTER TO ABSTRACT RECORD ["{0000010e-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IDataAdviseHolder* = POINTER TO ABSTRACT RECORD ["{00000110-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		CALLTYPE* = INTEGER;
		SERVERCALL* = INTEGER;
		PENDINGTYPE* = INTEGER;
		PENDINGMSG* = INTEGER;
		INTERFACEINFO* = RECORD [untagged]
			pUnk*: COM.IUnknown;
			iid*: COM.GUID;
			wMethod*: SHORTINT;
		END;
		PtrINTERFACEINFO* = POINTER TO INTERFACEINFO;
		IMessageFilter* = POINTER TO ABSTRACT RECORD ["{00000016-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		RPCOLEDATAREP* = INTEGER;
		RPCOLEMESSAGE* = RECORD [untagged]
			reserved1*: WinApi.PtrVoid;
			dataRepresentation*: RPCOLEDATAREP;
			Buffer*: WinApi.PtrVoid;
			cbBuffer*: INTEGER;
			iMethod*: INTEGER;
			reserved2*: ARRAY [untagged] 5 OF WinApi.PtrVoid;
			rpcFlags*: INTEGER;
		END;
		PtrRPCOLEMESSAGE* = POINTER TO RPCOLEMESSAGE;
		IRpcChannelBuffer* = POINTER TO ABSTRACT RECORD ["{D5F56B60-593B-101A-B569-08002B2DBF7A}"] (COM.IUnknown)
		END;
		IRpcProxyBuffer* = POINTER TO ABSTRACT RECORD ["{D5F56A34-593B-101A-B569-08002B2DBF7A}"] (COM.IUnknown)
		END;
		IRpcStubBuffer* = POINTER TO ABSTRACT RECORD ["{D5F56AFC-593B-101A-B569-08002B2DBF7A}"] (COM.IUnknown)
		END;
		IPSFactoryBuffer* = POINTER TO ABSTRACT RECORD ["{D5F569D0-593B-101A-B569-08002B2DBF7A}"] (COM.IUnknown)
		END;
		FMTID* = COM.GUID;
		CAUB* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: WinApi.PtrSTR;
		END;
		CAI* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF SHORTINT;
		END;
		CAUI* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF SHORTINT;
		END;
		CAL* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
		END;
		CAUL* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
		END;
		CAFLT* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF SHORTREAL;
		END;
		CADBL* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF REAL;
		END;
		CACY* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.CY;
		END;
		CADATE* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.DATE;
		END;
		CABSTR* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF BSTR;
		END;
		CABOOL* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF VARIANT_BOOL;
		END;
		CASCODE* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF COM.RESULT;
		END;
		PtrPROPVARIANT* = POINTER TO PROPVARIANT;
		CAPROPVARIANT* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: PtrPROPVARIANT;
		END;
		CAH* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF LONGINT;
		END;
		CAUH* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF LONGINT;
		END;
		CALPSTR* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.PtrSTR;
		END;
		CALPWSTR* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.PtrWSTR;
		END;
		CAFILETIME* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.FILETIME;
		END;
		CACLIPDATA* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: PtrCLIPDATA;
		END;
		CACLSID* = RECORD [untagged]
			cElems*: INTEGER;
			pElems*: POINTER TO (*?*) ARRAY [untagged] OF COM.GUID;
		END;
		PROPVARIANT* = RECORD [align8]
			vt*: VARTYPE;
			wReserved1*: SHORTINT;
			wReserved2*: SHORTINT;
			wReserved3*: SHORTINT;
			u*: RECORD [union]
				bVal*: SHORTCHAR;
				iVal*: SHORTINT;
				uiVal*: SHORTINT;
				bool*: VARIANT_BOOL;
				lVal*: INTEGER;
				ulVal*: INTEGER;
				fltVal*: SHORTREAL;
				scode*: COM.RESULT;
				hVal*: LONGINT;
				uhVal*: LONGINT;
				dblVal*: REAL;
				cyVal*: WinApi.CY;
				date*: WinApi.DATE;
				filetime*: WinApi.FILETIME;
				puuid*: POINTER TO (*?*) ARRAY [untagged] OF COM.GUID;
				blob*: BLOB;
				pclipdata*: PtrCLIPDATA;
				pStream*: IStream;
				pStorage*: IStorage;
				bstrVal*: BSTR;
				pszVal*: WinApi.PtrSTR;
				pwszVal*: WinApi.PtrWSTR;
				caub*: CAUB;
				cai*: CAI;
				caui*: CAUI;
				cabool*: CABOOL;
				cal*: CAL;
				caul*: CAUL;
				caflt*: CAFLT;
				cascode*: CASCODE;
				cah*: CAH;
				cauh*: CAUH;
				cadbl*: CADBL;
				cacy*: CACY;
				cadate*: CADATE;
				cafiletime*: CAFILETIME;
				cauuid*: CACLSID;
				caclipdata*: CACLIPDATA;
				cabstr*: CABSTR;
				calpstr*: CALPSTR;
				calpwstr*: CALPWSTR;
				capropvar*: CAPROPVARIANT;
			END;
		END;
		PROPSPEC* = RECORD [untagged]
			ulKind*: INTEGER;
			u*: RECORD [union]
				propid*: PROPID;
				lpwstr*: WinApi.PtrWSTR;
			END;
		END;
		STATPROPSTG* = RECORD [untagged]
			lpwstrName*: WinApi.PtrWSTR;
			propid*: PROPID;
			vt*: VARTYPE;
		END;
		PtrSTATPROPSTG* = POINTER TO STATPROPSTG;
		STATPROPSETSTG* = RECORD [align8]
			fmtid*: FMTID;
			clsid*: COM.GUID;
			grfFlags*: SET;
			mtime*: WinApi.FILETIME;
			ctime*: WinApi.FILETIME;
			atime*: WinApi.FILETIME;
		END;
		PtrSTATPROPSETSTG* = POINTER TO STATPROPSETSTG;
		IPropertyStorage* = POINTER TO ABSTRACT RECORD ["{00000138-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IPropertySetStorage* = POINTER TO ABSTRACT RECORD ["{0000013A-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IEnumSTATPROPSTG* = POINTER TO ABSTRACT RECORD ["{00000139-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IEnumSTATPROPSETSTG* = POINTER TO ABSTRACT RECORD ["{0000013B-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IConnectionPoint* = POINTER TO ABSTRACT RECORD ["{B196B286-BAB4-101A-B69C-00AA00341D07}"] (COM.IUnknown)
		END;
		IConnectionPointContainer* = POINTER TO ABSTRACT RECORD ["{B196B284-BAB4-101A-B69C-00AA00341D07}"] (COM.IUnknown)
		END;
		CONNECTDATA* = RECORD [untagged]
			pUnk*: COM.IUnknown;
			dwCookie*: INTEGER;
		END;
		PtrCONNECTDATA* = POINTER TO CONNECTDATA;
		IEnumConnections* = POINTER TO ABSTRACT RECORD ["{B196B287-BAB4-101A-B69C-00AA00341D07}"] (COM.IUnknown)
		END;
		IEnumConnectionPoints* = POINTER TO ABSTRACT RECORD ["{B196B285-BAB4-101A-B69C-00AA00341D07}"] (COM.IUnknown)
		END;
		SOLE_AUTHENTICATION_SERVICE* = RECORD [untagged]
			dwAuthnSvc*: INTEGER;
			dwAuthzSvc*: INTEGER;
			pPrincipalName*: WinApi.PtrWSTR;
			hr*: COM.RESULT;
		END;
		PtrSOLE_AUTHENTICATION_SERVICE* = POINTER TO SOLE_AUTHENTICATION_SERVICE;
		EOLE_AUTHENTICATION_CAPABILITES* = INTEGER;
		IClientSecurity* = POINTER TO ABSTRACT RECORD ["{0000013D-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IServerSecurity* = POINTER TO ABSTRACT RECORD ["{0000013E-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		COINIT* = INTEGER;
		COSERVERINFO* = RECORD [untagged]
			dwSize*: INTEGER;
			pszName*: WinApi.PtrWSTR;
		END;
		PtrCOSERVERINFO* = POINTER TO COSERVERINFO;
		MULTI_QI* = RECORD [untagged]
			pIID*: POINTER TO (*?*) ARRAY [untagged] OF COM.GUID;
			pItf*: COM.IUnknown;
			hr*: COM.RESULT;
		END;
		PtrMULTI_QI* = POINTER TO MULTI_QI;
		FNGETCLASSOBJECT* = PROCEDURE (IN [nil] p0: COM.GUID; IN [iid] p1: COM.GUID; OUT [new] p2: COM.IUnknown): COM.RESULT;
		FNCANUNLOADNOW* = PROCEDURE (): COM.RESULT;
		IOleAdviseHolder* = POINTER TO ABSTRACT RECORD ["{00000111-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IOleCache* = POINTER TO ABSTRACT RECORD ["{0000011e-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		DISCARDCACHE* = INTEGER;
		IOleCache2* = POINTER TO ABSTRACT RECORD ["{00000128-0000-0000-C000-000000000046}"] (IOleCache)
		END;
		IOleCacheControl* = POINTER TO ABSTRACT RECORD ["{00000129-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IParseDisplayName* = POINTER TO ABSTRACT RECORD ["{0000011a-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IOleContainer* = POINTER TO ABSTRACT RECORD ["{0000011b-0000-0000-C000-000000000046}"] (IParseDisplayName)
		END;
		IOleClientSite* = POINTER TO ABSTRACT RECORD ["{00000118-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		OLEGETMONIKER* = INTEGER;
		OLEWHICHMK* = INTEGER;
		USERCLASSTYPE* = INTEGER;
		OLEMISC* = INTEGER;
		OLECLOSE* = INTEGER;
		IOleObject* = POINTER TO ABSTRACT RECORD ["{00000112-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		OLERENDER* = INTEGER;
		OBJECTDESCRIPTOR* = RECORD [untagged]
			cbSize*: INTEGER;
			clsid*: COM.GUID;
			dwDrawAspect*: SET;
			sizel*: WinApi.SIZE;
			pointl*: WinApi.POINT;
			dwStatus*: SET;
			dwFullUserTypeName*: INTEGER;
			dwSrcOfCopy*: INTEGER;
		END;
		PtrOBJECTDESCRIPTOR* = POINTER TO OBJECTDESCRIPTOR;
		LINKSRCDESCRIPTOR* = OBJECTDESCRIPTOR;
		PtrLINKSRCDESCRIPTOR* = PtrOBJECTDESCRIPTOR;
		IOleWindow* = POINTER TO ABSTRACT RECORD ["{00000114-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		OLEUPDATE* = INTEGER;
		OLELINKBIND* = INTEGER;
		IOleLink* = POINTER TO ABSTRACT RECORD ["{0000011d-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		BINDSPEED* = INTEGER;
		OLECONTF* = INTEGER;
		IOleItemContainer* = POINTER TO ABSTRACT RECORD ["{0000011c-0000-0000-C000-000000000046}"] (IOleContainer)
		END;
		BORDERWIDTHS* = WinApi.RECT;
		PtrBORDERWIDTHS* = WinApi.PtrRECT;
		IOleInPlaceUIWindow* = POINTER TO ABSTRACT RECORD ["{00000115-0000-0000-C000-000000000046}"] (IOleWindow)
		END;
		IOleInPlaceActiveObject* = POINTER TO ABSTRACT RECORD ["{00000117-0000-0000-C000-000000000046}"] (IOleWindow)
		END;
		OLEINPLACEFRAMEINFO* = RECORD [untagged]
			cb*: INTEGER;
			fMDIApp*: WinApi.BOOL;
			hwndFrame*: WinApi.HWND;
			haccel*: WinApi.HACCEL;
			cAccelEntries*: INTEGER;
		END;
		PtrOLEINPLACEFRAMEINFO* = POINTER TO OLEINPLACEFRAMEINFO;
		OLEMENUGROUPWIDTHS* = RECORD [untagged]
			width*: ARRAY [untagged] 6 OF INTEGER;
		END;
		PtrOLEMENUGROUPWIDTHS* = POINTER TO OLEMENUGROUPWIDTHS;
		HOLEMENU* = WinApi.HGLOBAL;
		IOleInPlaceFrame* = POINTER TO ABSTRACT RECORD ["{00000116-0000-0000-C000-000000000046}"] (IOleInPlaceUIWindow)
		END;
		IOleInPlaceObject* = POINTER TO ABSTRACT RECORD ["{00000113-0000-0000-C000-000000000046}"] (IOleWindow)
		END;
		IOleInPlaceSite* = POINTER TO ABSTRACT RECORD ["{00000119-0000-0000-C000-000000000046}"] (IOleWindow)
		END;
		IViewObject* = POINTER TO ABSTRACT RECORD ["{0000010d-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IViewObject2* = POINTER TO ABSTRACT RECORD ["{00000127-0000-0000-C000-000000000046}"] (IViewObject)
		END;
		IDropSource* = POINTER TO ABSTRACT RECORD ["{00000121-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IDropTarget* = POINTER TO ABSTRACT RECORD ["{00000122-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		OLEVERB* = RECORD [untagged]
			lVerb*: INTEGER;
			lpszVerbName*: WinApi.PtrWSTR;
			fuFlags*: SET;
			grfAttribs*: SET;
		END;
		PtrOLEVERB* = POINTER TO OLEVERB;
		OLEVERBATTRIB* = INTEGER;
		IEnumOLEVERB* = POINTER TO ABSTRACT RECORD ["{00000104-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		PtrOLESTREAM* = POINTER TO OLESTREAM;
		OLESTREAMVTBL* = RECORD [untagged]
			Get*: PROCEDURE (p0: PtrOLESTREAM; p1: WinApi.PtrVoid; p2: INTEGER): INTEGER;
			Put*: PROCEDURE (p0: PtrOLESTREAM; p1: WinApi.PtrVoid; p2: INTEGER): INTEGER;
		END;
		PtrOLESTREAMVTBL* = POINTER TO OLESTREAMVTBL;
		OLESTREAM* = RECORD [untagged]
			lpstbl*: PtrOLESTREAMVTBL;
		END;

	PROCEDURE (this: IClassFactory) CreateInstance* (pUnkOuter: COM.IUnknown; IN [iid] riid: COM.GUID; OUT [new] ppvObject: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IClassFactory) LockServer* (fLock: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMarshal) GetUnmarshalClass* (IN [nil] riid: COM.GUID; pv: WinApi.PtrVoid; dwDestContext: INTEGER; pvDestContext: WinApi.PtrVoid; mshlflags: SET; OUT [nil] pCid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMarshal) GetMarshalSizeMax* (IN [nil] riid: COM.GUID; pv: WinApi.PtrVoid; dwDestContext: INTEGER; pvDestContext: WinApi.PtrVoid; mshlflags: SET; OUT [nil] pSize: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMarshal) MarshalInterface* (pStm: IStream; IN [nil] riid: COM.GUID; pv: WinApi.PtrVoid; dwDestContext: INTEGER; pvDestContext: WinApi.PtrVoid; mshlflags: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMarshal) UnmarshalInterface* (pStm: IStream; IN [iid] riid: COM.GUID; OUT [new] ppv: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMarshal) ReleaseMarshalData* (pStm: IStream): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMarshal) DisconnectObject* (dwReserved: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMalloc) Alloc* (cb: INTEGER): WinApi.PtrVoid, NEW, ABSTRACT;

	PROCEDURE (this: IMalloc) Realloc* (pv: WinApi.PtrVoid; cb: INTEGER): WinApi.PtrVoid, NEW, ABSTRACT;

	PROCEDURE (this: IMalloc) Free* (pv: WinApi.PtrVoid), NEW, ABSTRACT;

	PROCEDURE (this: IMalloc) GetSize* (pv: WinApi.PtrVoid): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IMalloc) DidAlloc* (pv: WinApi.PtrVoid): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IMalloc) HeapMinimize* (), NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PreAlloc* (cbRequest: INTEGER): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PostAlloc* (pActual: WinApi.PtrVoid): WinApi.PtrVoid, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PreFree* (pRequest: WinApi.PtrVoid; fSpyed: WinApi.BOOL): WinApi.PtrVoid, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PostFree* (fSpyed: WinApi.BOOL), NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PreRealloc* (pRequest: WinApi.PtrVoid; cbRequest: INTEGER; OUT [nil] ppNewRequest: WinApi.PtrVoid; fSpyed: WinApi.BOOL): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PostRealloc* (pActual: WinApi.PtrVoid; fSpyed: WinApi.BOOL): WinApi.PtrVoid, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PreGetSize* (pRequest: WinApi.PtrVoid; fSpyed: WinApi.BOOL): WinApi.PtrVoid, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PostGetSize* (cbActual: INTEGER; fSpyed: WinApi.BOOL): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PreDidAlloc* (pRequest: WinApi.PtrVoid; fSpyed: WinApi.BOOL): WinApi.PtrVoid, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PostDidAlloc* (pRequest: WinApi.PtrVoid; fSpyed: WinApi.BOOL; fActual: INTEGER): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PreHeapMinimize* (), NEW, ABSTRACT;

	PROCEDURE (this: IMallocSpy) PostHeapMinimize* (), NEW, ABSTRACT;

	PROCEDURE (this: IStdMarshalInfo) GetClassForHandler* (dwDestContext: INTEGER; pvDestContext: WinApi.PtrVoid; OUT [nil] pClsid: COM.GUID): COM.RESULT, NEW, ABSTRACT;
	
	PROCEDURE (this: IExternalConnection) AddConnection* (extconn: SET; reserved: INTEGER): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IExternalConnection) ReleaseConnection* (extconn: SET; reserved: INTEGER; fLastReleaseCloses: WinApi.BOOL): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IEnumUnknown) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF COM.IUnknown; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumUnknown) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IEnumUnknown) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumUnknown) Clone* (OUT [nil] ppenum: IEnumUnknown): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IBindCtx) RegisterObjectBound* (punk: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IBindCtx) RevokeObjectBound* (punk: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IBindCtx) ReleaseBoundObjects* (): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IBindCtx) SetBindOptions* (IN [nil] pbindopts: BIND_OPTS): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IBindCtx) GetBindOptions* (VAR [nil] pbindopts: BIND_OPTS): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IBindCtx) GetRunningObjectTable* (OUT [nil] pprot: IRunningObjectTable): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IBindCtx) RegisterObjectParam* (pszKey: WinApi.PtrWSTR; punk: COM.IUnknown): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IBindCtx) GetObjectParam* (pszKey: WinApi.PtrWSTR; OUT [nil] ppunk: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IBindCtx) EnumObjectParam* (OUT [nil] ppenum: IEnumString): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IBindCtx) RevokeObjectParam* (pszKey: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IEnumMoniker) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF IMoniker; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IEnumMoniker) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IEnumMoniker) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumMoniker) Clone* (OUT [nil] ppenum: IEnumMoniker): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRunnableObject) GetRunningClass* (OUT [nil] lpClsid: COM.GUID): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRunnableObject) Run* (pbc: IBindCtx): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunnableObject) IsRunning* (): WinApi.BOOL, NEW, ABSTRACT;

	PROCEDURE (this: IRunnableObject) LockRunning* (fLock: WinApi.BOOL; fLastUnlockCloses: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunnableObject) SetContainedObject* (fContained: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunningObjectTable) Register* (grfFlags: SET; punkObject: COM.IUnknown; pmkObjectName: IMoniker; OUT [nil] pdwRegister: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunningObjectTable) Revoke* (dwRegister: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunningObjectTable) IsRunning* (pmkObjectName: IMoniker): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRunningObjectTable) GetObjectA* (pmkObjectName: IMoniker; OUT [nil] ppunkObject: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunningObjectTable) NoteChangeTime* (dwRegister: INTEGER;VAR [nil] pfiletime: WinApi.FILETIME): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunningObjectTable) GetTimeOfLastChange* (pmkObjectName: IMoniker; OUT [nil] pfiletime: WinApi.FILETIME): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRunningObjectTable) EnumRunning* (OUT [nil] ppenumMoniker: IEnumMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersist) GetClassID* (OUT [nil] pClassID: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersistStream) IsDirty* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersistStream) Load* (pStm: IStream): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistStream) Save* (pStm: IStream; fClearDirty: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersistStream) GetSizeMax* (OUT [nil] pcbSize: LONGINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) BindToObject* (pbc: IBindCtx; pmkToLeft: IMoniker; IN [iid] riidResult: COM.GUID; OUT [new] ppvResult: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) BindToStorage* (pbc: IBindCtx; pmkToLeft: IMoniker; IN [iid] riid: COM.GUID; OUT [new] ppvObj: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) Reduce* (pbc: IBindCtx; dwReduceHowFar: INTEGER; VAR [nil] ppmkToLeft: IMoniker; OUT [nil] ppmkReduced: IMoniker): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IMoniker) ComposeWith* (pmkRight: IMoniker; fOnlyIfNotGeneric: WinApi.BOOL; OUT [nil] ppmkComposite: IMoniker): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IMoniker) Enum* (fForward: WinApi.BOOL; OUT [nil] ppenumMoniker: IEnumMoniker): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IMoniker) IsEqual* (pmkOtherMoniker: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) Hash* (OUT [nil] pdwHash: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) IsRunning* (pbc: IBindCtx; pmkToLeft: IMoniker; pmkNewlyRunning: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) GetTimeOfLastChange* (pbc: IBindCtx; pmkToLeft: IMoniker; OUT [nil] pFileTime: WinApi.FILETIME): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) Inverse* (OUT [nil] ppmk: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) CommonPrefixWith* (pmkOther: IMoniker; OUT [nil] ppmkPrefix: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) RelativePathTo* (pmkOther: IMoniker; OUT [nil] ppmkRelPath: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) GetDisplayName* (pbc: IBindCtx; pmkToLeft: IMoniker; OUT [nil] ppszDisplayName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) ParseDisplayName* (pbc: IBindCtx; pmkToLeft: IMoniker; pszDisplayName: WinApi.PtrWSTR; OUT [nil] pchEaten: INTEGER; OUT [nil] ppmkOut: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IMoniker) IsSystemMoniker* (OUT [nil] pdwMksys: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IROTData) GetComparisonData* (OUT [nil] pbData: SHORTCHAR; cbMax: INTEGER; OUT [nil] pcbData: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumString) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF WinApi.PtrWSTR; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumString) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumString) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumString) Clone* (OUT [nil] ppenum: IEnumString): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ISequentialStream) Read* (pv: WinApi.PtrVoid; cb: INTEGER; OUT [nil] pcbRead: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ISequentialStream) Write* (pv: WinApi.PtrVoid; cb: INTEGER; OUT [nil] pcbWritten: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStream) Seek* (dlibMove: LONGINT; dwOrigin: INTEGER; OUT [nil] plibNewPosition: LONGINT): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStream) SetSize* (libNewSize: LONGINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStream) CopyTo* (pstm: IStream; cb: LONGINT; OUT [nil] pcbRead: LONGINT; OUT [nil] pcbWritten: LONGINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStream) Commit* (grfCommitFlags: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStream) Revert* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStream) LockRegion* (libOffset: LONGINT; cb: LONGINT; dwLockType: SET): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStream) UnlockRegion* (libOffset: LONGINT; cb: LONGINT; dwLockType: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStream) Stat* (OUT [nil] pstatstg: STATSTG; grfStatFlag: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStream) Clone* (OUT [nil] ppstm: IStream): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATSTG) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF STATSTG; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATSTG) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IEnumSTATSTG) Reset* (): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IEnumSTATSTG) Clone* (OUT [nil] ppenum: IEnumSTATSTG): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) CreateStream* (pwcsName: WinApi.PtrWSTR; grfMode: SET; reserved1: INTEGER; reserved2: INTEGER; OUT [nil] ppstm: IStream): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) OpenStream* (pwcsName: WinApi.PtrWSTR; reserved1: WinApi.PtrVoid; grfMode: SET; reserved2: INTEGER; OUT [nil] ppstm: IStream): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) CreateStorage* (pwcsName: WinApi.PtrWSTR; grfMode: SET; dwStgFmt: INTEGER; reserved2: INTEGER; OUT [nil] ppstg: IStorage): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) OpenStorage* (pwcsName: WinApi.PtrWSTR; pstgPriority: IStorage; grfMode: SET; snbExclude: SNB; reserved: INTEGER; OUT [nil] ppstg: IStorage): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStorage) CopyTo* (ciidExclude: INTEGER; IN [nil] rgiidExclude: COM.GUID; snbExclude: SNB; pstgDest: IStorage): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) MoveElementTo* (pwcsName: WinApi.PtrWSTR; pstgDest: IStorage; pwcsNewName: WinApi.PtrWSTR; grfFlags: SET): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) Commit* (grfCommitFlags: SET): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) Revert* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStorage) EnumElements* (reserved1: INTEGER; reserved2: WinApi.PtrVoid; reserved3: INTEGER; OUT [nil] ppenum: IEnumSTATSTG): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStorage) DestroyElement* (pwcsName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) RenameElement* (pwcsOldName: WinApi.PtrWSTR; pwcsNewName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) SetElementTimes* (pwcsName: WinApi.PtrWSTR; VAR [nil] pctime: WinApi.FILETIME; VAR [nil] patime: WinApi.FILETIME; VAR [nil] pmtime: WinApi.FILETIME): COM.RESULT, NEW, ABSTRACT; 
	
	PROCEDURE (this: IStorage) SetClass* (IN [nil] clsid: COM.GUID): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IStorage) SetStateBits* (grfStateBits: SET; grfMask: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IStorage) Stat* (OUT [nil] pstatstg: STATSTG; grfStatFlag: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistFile) IsDirty* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersistFile) Load* (pszFileName: WinApi.PtrWSTR; dwMode: SET): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistFile) Save* (pszFileName: WinApi.PtrWSTR; fRemember: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistFile) SaveCompleted* (pszFileName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistFile) GetCurFile* (OUT [nil] ppszFileName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistStorage) IsDirty* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersistStorage) InitNew* (pStg: IStorage): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersistStorage) Load* (pStg: IStorage): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistStorage) Save* (pStgSave: IStorage; fSameAsLoad: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPersistStorage) SaveCompleted* (pStgNew: IStorage): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPersistStorage) HandsOffStorage* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ILockBytes) ReadAt* (ulOffset: LONGINT; pv: WinApi.PtrVoid; cb: INTEGER; OUT [nil] pcbRead: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ILockBytes) WriteAt* (ulOffset: LONGINT; pv: WinApi.PtrVoid; cb: INTEGER; OUT [nil] pcbWritten: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ILockBytes) Flush* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ILockBytes) SetSize* (cb: LONGINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ILockBytes) LockRegion* (libOffset: LONGINT; cb: LONGINT; dwLockType: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ILockBytes) UnlockRegion* (libOffset: LONGINT; cb: LONGINT; dwLockType: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ILockBytes) Stat* (OUT [nil] pstatstg: STATSTG; grfStatFlag: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IEnumFORMATETC) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF FORMATETC; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumFORMATETC) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumFORMATETC) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumFORMATETC) Clone* (OUT [nil] ppenum: IEnumFORMATETC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATDATA) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF STATDATA; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATDATA) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATDATA) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATDATA) Clone* (OUT [nil] ppenum: IEnumSTATDATA): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRootStorage) SwitchToFile* (pszFile: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IAdviseSink) OnDataChange* (IN [nil] pFormatetc: FORMATETC; IN [nil] pStgmed: STGMEDIUM), NEW, ABSTRACT; 

	PROCEDURE (this: IAdviseSink) OnViewChange* (dwAspect: SET; lindex: INTEGER), NEW, ABSTRACT; 

	PROCEDURE (this: IAdviseSink) OnRename* (pmk: IMoniker), NEW, ABSTRACT; 

	PROCEDURE (this: IAdviseSink) OnSave* (), NEW, ABSTRACT;

	PROCEDURE (this: IAdviseSink) OnClose* (), NEW, ABSTRACT; 

	PROCEDURE (this: IAdviseSink2) OnLinkSrcChange* (pmk: IMoniker), NEW, ABSTRACT;

	PROCEDURE (this: IDataObject) GetData* (IN [nil] pformatetcIn: FORMATETC; OUT [nil] pmedium: STGMEDIUM): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) GetDataHere* (IN [nil] pformatetc: FORMATETC; VAR [nil] pmedium: STGMEDIUM): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) QueryGetData* (IN [nil] pformatetc: FORMATETC): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) GetCanonicalFormatEtc* (IN [nil] pformatectIn: FORMATETC; OUT [nil] pformatetcOut: FORMATETC): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) SetData* (IN [nil] pformatetc: FORMATETC; IN [nil] pmedium: STGMEDIUM; fRelease: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) EnumFormatEtc* (dwDirection: SET; OUT [nil] ppenumFormatEtc: IEnumFORMATETC): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) DAdvise* (IN [nil] pformatetc: FORMATETC; advf: SET; pAdvSink: IAdviseSink; OUT [nil] pdwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) DUnadvise* (dwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataObject) EnumDAdvise* (OUT [nil] ppenumAdvise: IEnumSTATDATA): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDataAdviseHolder) Advise* (pDataObject: IDataObject; IN [nil] pFetc: FORMATETC; advf: SET; pAdvise: IAdviseSink; OUT [nil] pdwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataAdviseHolder) Unadvise* (dwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDataAdviseHolder) EnumAdvise* (OUT [nil] ppenumAdvise: IEnumSTATDATA): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IDataAdviseHolder) SendOnDataChange* (pDataObject: IDataObject; dwReserved: INTEGER; advf: SET): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IMessageFilter) HandleInComingCall* (dwCallType: INTEGER; htaskCaller: WinApi.HTASK; dwTickCount: INTEGER; IN [nil] lpInterfaceInfo: INTERFACEINFO): INTEGER, NEW, ABSTRACT; 

	PROCEDURE (this: IMessageFilter) RetryRejectedCall* (htaskCallee: WinApi.HTASK; dwTickCount: INTEGER; dwRejectType: INTEGER): INTEGER, NEW, ABSTRACT; 

	PROCEDURE (this: IMessageFilter) MessagePending* (htaskCallee: WinApi.HTASK; dwTickCount: INTEGER; dwPendingType: INTEGER): INTEGER, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcChannelBuffer) GetBuffer* (IN [nil] pMessage: RPCOLEMESSAGE; IN [nil] riid: COM.GUID): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcChannelBuffer) SendReceive* (VAR [nil] pMessage: RPCOLEMESSAGE; OUT [nil] pStatus: INTEGER): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcChannelBuffer) FreeBuffer* (IN [nil] pMessage: RPCOLEMESSAGE): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcChannelBuffer) GetDestCtx* (OUT [nil] pdwDestContext: INTEGER; OUT [nil] ppvDestContext: WinApi.PtrVoid): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcChannelBuffer) IsConnected* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRpcProxyBuffer) Connect* (pRpcChannelBuffer: IRpcChannelBuffer): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcProxyBuffer) Disconnect* (), NEW, ABSTRACT; 

	PROCEDURE (this: IRpcStubBuffer) Connect* (pUnkServer: COM.IUnknown): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcStubBuffer) Disconnect* (), NEW, ABSTRACT; 

	PROCEDURE (this: IRpcStubBuffer) Invoke* (IN [nil] _prpcmsg: RPCOLEMESSAGE; _pRpcChannelBuffer: IRpcChannelBuffer): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IRpcStubBuffer) IsIIDSupported* (IN [nil] riid: COM.GUID): IRpcStubBuffer, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcStubBuffer) CountRefs* (): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: IRpcStubBuffer) DebugServerQueryInterface* (VAR [nil] ppv: WinApi.PtrVoid): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IRpcStubBuffer) DebugServerRelease* (pv: WinApi.PtrVoid), NEW, ABSTRACT;

	PROCEDURE (this: IPSFactoryBuffer) CreateProxy* (pUnkOuter: COM.IUnknown; IN [iid] riid: COM.GUID; OUT [nil] ppProxy: IRpcProxyBuffer; OUT [new] ppv: COM.IUnknown): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPSFactoryBuffer) CreateStub* (IN [nil] riid: COM.GUID; pUnkServer: COM.IUnknown; OUT [nil] ppStub: IRpcStubBuffer): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPropertyStorage) ReadMultiple* (cpspec: INTEGER; IN [nil] rgpspec: ARRAY [untagged]  OF PROPSPEC; IN [nil] rgpropvar: ARRAY [untagged]  OF PROPVARIANT): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPropertyStorage) WriteMultiple* (cpspec: INTEGER; IN [nil] rgpspec: ARRAY [untagged]  OF PROPSPEC; IN [nil] rgpropvar: ARRAY [untagged]  OF PROPVARIANT; propidNameFirst: PROPID): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPropertyStorage) DeleteMultiple* (cpspec: INTEGER; IN [nil] rgpspec: ARRAY [untagged]  OF PROPSPEC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertyStorage) ReadPropertyNames* (cpropid: INTEGER; IN [nil] rgpropid: ARRAY [untagged]  OF PROPID; IN [nil] rglpwstrName: ARRAY [untagged]  OF WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertyStorage) WritePropertyNames* (cpropid: INTEGER; IN [nil] rgpropid: ARRAY [untagged]  OF PROPID; IN [nil] rglpwstrName: ARRAY [untagged]  OF WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPropertyStorage) DeletePropertyNames* (cpropid: INTEGER; IN [nil] rgpropid: ARRAY [untagged]  OF PROPID): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPropertyStorage) Commit* (grfCommitFlags: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertyStorage) Revert* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertyStorage) Enum* (OUT [nil] ppenum: IEnumSTATPROPSTG): COM.RESULT, NEW, ABSTRACT; 

	PROCEDURE (this: IPropertyStorage) SetTimes* (VAR [nil] pctime: WinApi.FILETIME; VAR [nil] patime: WinApi.FILETIME; VAR [nil] pmtime: WinApi.FILETIME): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertyStorage) SetClass* (IN [nil] clsid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertyStorage) Stat* (OUT [nil] pstatpsstg: STATPROPSETSTG): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertySetStorage) Create* (IN [nil] rfmtid: FMTID; IN [nil] pclsid: COM.GUID; grfFlags: SET; grfMode: SET; OUT [nil] ppprstg: IPropertyStorage): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertySetStorage) Open* (IN [nil] rfmtid: FMTID; grfMode: SET; OUT [nil] ppprstg: IPropertyStorage): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertySetStorage) Delete* (IN [nil] rfmtid: FMTID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IPropertySetStorage) Enum* (OUT [nil] ppenum: IEnumSTATPROPSETSTG): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSTG) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF STATPROPSTG; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSTG) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSTG) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSTG) Clone* (OUT [nil] ppenum: IEnumSTATPROPSTG): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSETSTG) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF STATPROPSETSTG; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSETSTG) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSETSTG) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumSTATPROPSETSTG) Clone* (OUT [nil] ppenum: IEnumSTATPROPSETSTG): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IConnectionPoint) GetConnectionInterface* (OUT [nil] piid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IConnectionPoint) GetConnectionPointContainer* (OUT [nil] ppCPC: IConnectionPointContainer): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IConnectionPoint) Advise* (pUnkSink: COM.IUnknown; OUT [nil] pdwCookie: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IConnectionPoint) Unadvise* (dwCookie: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IConnectionPoint) EnumConnections* (OUT [nil] ppEnum: IEnumConnections): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IConnectionPointContainer) EnumConnectionPoints* (OUT [nil] ppEnum: IEnumConnectionPoints): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IConnectionPointContainer) FindConnectionPoint* (IN [nil] riid: COM.GUID; OUT [nil] ppCP: IConnectionPoint): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnections) Next* (cConnections: INTEGER; OUT rgcd: ARRAY [untagged] OF CONNECTDATA; OUT [nil] lpcFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnections) Skip* (cConnections: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnections) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnections) Clone* (OUT [nil] ppEnum: IEnumConnections): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnectionPoints) Next* (cConnections: INTEGER; OUT rgpcn: ARRAY [untagged] OF IConnectionPoint; OUT [nil] lpcFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnectionPoints) Skip* (cConnections: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnectionPoints) Reset* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumConnectionPoints) Clone* (OUT [nil] ppEnum: IEnumConnectionPoints): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IClientSecurity) QueryBlanket* (pProxy: COM.IUnknown; OUT [nil] pAuthnSvc: INTEGER; OUT [nil] pAuthzSvc: INTEGER; OUT [nil] pServerPrincName: WinApi.PtrWSTR; OUT [nil] pAuthnLevel: INTEGER; OUT [nil] pImpLevel: INTEGER; OUT [nil] pAuthInfo: WinApi.PtrVoid; OUT [nil] pCapabilites: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IClientSecurity) SetBlanket* (pProxy: COM.IUnknown; AuthnSvc: INTEGER; AuthzSvc: INTEGER; pServerPrincName: WinApi.PtrWSTR; AuthnLevel: INTEGER; ImpLevel: INTEGER; pAuthInfo: WinApi.PtrVoid; Capabilities: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IClientSecurity) CopyProxy* (pProxy: COM.IUnknown; OUT [nil] ppCopy: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IServerSecurity) QueryBlanket* (OUT [nil] pAuthnSvc: INTEGER; OUT [nil] pAuthzSvc: INTEGER; OUT [nil] pServerPrincName: WinApi.PtrWSTR; OUT [nil] pAuthnLevel: INTEGER; OUT [nil] pImpLevel: INTEGER; OUT [nil] pPrivs: WinApi.PtrVoid; OUT [nil] pCapabilities: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IServerSecurity) ImpersonateClient* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IServerSecurity) RevertToSelf* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IServerSecurity) IsImpersonating* (): WinApi.BOOL, NEW, ABSTRACT;

	PROCEDURE (this: IOleAdviseHolder) Advise* (pAdvise: IAdviseSink; OUT [nil] pdwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleAdviseHolder) Unadvise* (dwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleAdviseHolder) EnumAdvise* (OUT [nil] ppenumAdvise: IEnumSTATDATA): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleAdviseHolder) SendOnRename* (pmk: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleAdviseHolder) SendOnSave* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleAdviseHolder) SendOnClose* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCache) Cache* (IN [nil] pformatetc: FORMATETC; advf: SET; OUT [nil] pdwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCache) Uncache* (dwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCache) EnumCache* (OUT [nil] ppenumSTATDATA: IEnumSTATDATA): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCache) InitCache* (pDataObject: IDataObject): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCache) SetData* (IN [nil] pformatetc: FORMATETC; IN [nil] pmedium: STGMEDIUM; fRelease: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCache2) UpdateCache* (pDataObject: IDataObject; grfUpdf: SET; pReserved: WinApi.PtrVoid): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCache2) DiscardCache* (dwDiscardOptions: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCacheControl) OnRun* (pDataObject: IDataObject): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleCacheControl) OnStop* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IParseDisplayName) ParseDisplayName* (pbc: IBindCtx; pszDisplayName: WinApi.PtrWSTR; OUT [nil] pchEaten: INTEGER; OUT [nil] ppmkOut: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleContainer) EnumObjects* (grfFlags: SET; OUT [nil] ppenum: IEnumUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleContainer) LockContainer* (fLock: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleClientSite) SaveObject* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleClientSite) GetMoniker* (dwAssign: INTEGER; dwWhichMoniker: INTEGER; OUT [nil] ppmk: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleClientSite) GetContainer* (OUT [nil] ppContainer: IOleContainer): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleClientSite) ShowObject* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleClientSite) OnShowWindow* (fShow: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleClientSite) RequestNewObjectLayout* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) SetClientSite* (pClientSite: IOleClientSite): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) GetClientSite* (OUT [nil] ppClientSite: IOleClientSite): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) SetHostNames* (szContainerApp: WinApi.PtrWSTR; szContainerObj: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) Close* (dwSaveOption: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) SetMoniker* (dwWhichMoniker: INTEGER; pmk: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) GetMoniker* (dwAssign: INTEGER; dwWhichMoniker: INTEGER; OUT [nil] ppmk: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) InitFromData* (pDataObject: IDataObject; fCreation: WinApi.BOOL; dwReserved: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) GetClipboardData* (dwReserved: INTEGER; OUT [nil] ppDataObject: IDataObject): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) DoVerb* (iVerb: INTEGER; IN [nil] lpmsg: WinApi.MSG; pActiveSite: IOleClientSite; lindex: INTEGER; hwndParent: WinApi.HWND; IN [nil] lprcPosRect: WinApi.RECT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) EnumVerbs* (OUT [nil] ppEnumOleVerb: IEnumOLEVERB): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) Update* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) IsUpToDate* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) GetUserClassID* (OUT [nil] pClsid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) GetUserType* (dwFormOfType: INTEGER; OUT [nil] pszUserType: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) SetExtent* (dwDrawAspect: SET; IN [nil] psizel: WinApi.SIZE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) GetExtent* (dwDrawAspect: SET; OUT [nil] psizel: WinApi.SIZE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) Advise* (pAdvSink: IAdviseSink; OUT [nil] pdwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) Unadvise* (dwConnection: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) EnumAdvise* (OUT [nil] ppenumAdvise: IEnumSTATDATA): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) GetMiscStatus* (dwAspect: SET; OUT [nil] pdwStatus: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleObject) SetColorScheme* (IN [nil] pLogpal: WinApi.LOGPALETTE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleWindow) GetWindow* (OUT [nil] phwnd: WinApi.HWND): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleWindow) ContextSensitiveHelp* (fEnterMode: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) SetUpdateOptions* (dwUpdateOpt: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) GetUpdateOptions* (OUT [nil] pdwUpdateOpt: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) SetSourceMoniker* (pmk: IMoniker; IN [nil] rclsid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) GetSourceMoniker* (OUT [nil] ppmk: IMoniker): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) SetSourceDisplayName* (pszStatusText: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) GetSourceDisplayName* (OUT [nil] ppszDisplayName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) BindToSource* (bindflags: SET; pbc: IBindCtx): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) BindIfRunning* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) GetBoundSource* (OUT [nil] ppunk: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) UnbindSource* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleLink) Update* (pbc: IBindCtx): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleItemContainer) GetObjectA* (pszItem: WinApi.PtrWSTR; dwSpeedNeeded: INTEGER; pbc: IBindCtx; IN [iid] riid: COM.GUID; OUT [new] ppvObject: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleItemContainer) GetObjectStorage* (pszItem: WinApi.PtrWSTR; pbc: IBindCtx; IN [iid] riid: COM.GUID; OUT [new] ppvStorage: COM.IUnknown): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleItemContainer) IsRunning* (pszItem: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceUIWindow) GetBorder* (OUT [nil] lprectBorder: WinApi.RECT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceUIWindow) RequestBorderSpace* (IN [nil] pborderwidths: WinApi.RECT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceUIWindow) SetBorderSpace* (IN [nil] pborderwidths: WinApi.RECT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceUIWindow) SetActiveObject* (pActiveObject: IOleInPlaceActiveObject; pszObjName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceActiveObject) TranslateAccelerator* (IN [nil] lpmsg: WinApi.MSG): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceActiveObject) OnFrameWindowActivate* (fActivate: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceActiveObject) OnDocWindowActivate* (fActivate: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceActiveObject) ResizeBorder* (IN [nil] prcBorder: WinApi.RECT; pUIWindow: IOleInPlaceUIWindow; fFrameWindow: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceActiveObject) EnableModeless* (fEnable: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceFrame) InsertMenus* (hmenuShared: WinApi.HMENU; VAR [nil] lpMenuWidths: OLEMENUGROUPWIDTHS): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceFrame) SetMenu* (hmenuShared: WinApi.HMENU; holemenu: HOLEMENU; hwndActiveObject: WinApi.HWND): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceFrame) RemoveMenus* (hmenuShared: WinApi.HMENU): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceFrame) SetStatusText* (pszStatusText: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceFrame) EnableModeless* (fEnable: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceFrame) TranslateAccelerator* (IN [nil] lpmsg: WinApi.MSG; wID: SHORTINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceObject) InPlaceDeactivate* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceObject) UIDeactivate* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceObject) SetObjectRects* (IN [nil] lprcPosRect: WinApi.RECT; IN [nil] lprcClipRect: WinApi.RECT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceObject) ReactivateAndUndo* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) CanInPlaceActivate* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) OnInPlaceActivate* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) OnUIActivate* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) GetWindowContext* (OUT [nil] ppFrame: IOleInPlaceFrame; OUT [nil] ppDoc: IOleInPlaceUIWindow; OUT [nil] lprcPosRect: WinApi.RECT; OUT [nil] lprcClipRect: WinApi.RECT; VAR [nil] lpFrameInfo: OLEINPLACEFRAMEINFO): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) Scroll* (scrollExtant: WinApi.SIZE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) OnUIDeactivate* (fUndoable: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) OnInPlaceDeactivate* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) DiscardUndoState* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) DeactivateAndUndo* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IOleInPlaceSite) OnPosRectChange* (IN [nil] lprcPosRect: WinApi.RECT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IViewObject) Draw* (dwDrawAspect: SET; lindex: INTEGER; pvAspect: WinApi.PtrVoid; IN [nil] ptd: DVTARGETDEVICE; hdcTargetDev: WinApi.HDC; hdcDraw: WinApi.HDC; IN [nil] lprcBounds: WinApi.RECT; IN [nil] lprcWBounds: WinApi.RECT; pfnContinue: PROCEDURE (dwContinue: INTEGER): WinApi.BOOL; dwContinue: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IViewObject) GetColorSet* (dwDrawAspect: SET; lindex: INTEGER; pvAspect: WinApi.PtrVoid; IN [nil] ptd: DVTARGETDEVICE; hicTargetDev: WinApi.HDC; OUT [nil] ppColorSet: WinApi.PtrLOGPALETTE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IViewObject) Freeze* (dwDrawAspect: SET; lindex: INTEGER; pvAspect: WinApi.PtrVoid; OUT [nil] pdwFreeze: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IViewObject) Unfreeze* (dwFreeze: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IViewObject) SetAdvise* (aspects: SET; advf: SET; pAdvSink: IAdviseSink): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IViewObject) GetAdvise* (OUT [nil] pAspects: SET; OUT [nil] pAdvf: INTEGER; OUT [nil] ppAdvSink: IAdviseSink): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IViewObject2) GetExtent* (dwDrawAspect: SET; lindex: INTEGER; IN [nil] ptd: DVTARGETDEVICE; OUT [nil] lpsizel: WinApi.SIZE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDropSource) QueryContinueDrag* (fEscapePressed: WinApi.BOOL; grfKeyState: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDropSource) GiveFeedback* (dwEffect: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDropTarget) DragEnter* (pDataObj: IDataObject; grfKeyState: SET; pt: WinApi.POINT; VAR [nil] pdwEffect: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDropTarget) DragOver* (grfKeyState: SET; pt: WinApi.POINT; VAR [nil] pdwEffect: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDropTarget) DragLeave* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDropTarget) Drop* (pDataObj: IDataObject; grfKeyState: SET; pt: WinApi.POINT; VAR [nil] pdwEffect: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumOLEVERB) Next* (celt: INTEGER; OUT rgelt: ARRAY [untagged] OF OLEVERB; OUT [nil] pceltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumOLEVERB) Skip* (celt: INTEGER): COM.RESULT, NEW, ABSTRACT;
	PROCEDURE (this: IEnumOLEVERB) Reset* (): COM.RESULT, NEW, ABSTRACT;
	PROCEDURE (this: IEnumOLEVERB) Clone* (OUT [nil] ppenum: IEnumOLEVERB): COM.RESULT, NEW, ABSTRACT;
	PROCEDURE PropVariantCopy* (VAR [nil] pvarDest: PROPVARIANT; VAR [nil] pvarSrc: PROPVARIANT): COM.RESULT;
	PROCEDURE PropVariantClear* (VAR [nil] pvar: PROPVARIANT): COM.RESULT;
	PROCEDURE FreePropVariantArray* (cVariants: INTEGER; VAR [nil] rgvars: PROPVARIANT): COM.RESULT;
	PROCEDURE SNB_UserSize* (VAR [nil] p0: INTEGER; p1: INTEGER; VAR [nil] p2: SNB): INTEGER;
	PROCEDURE SNB_UserMarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: SNB): WinApi.PtrSTR;
	PROCEDURE SNB_UserUnmarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: SNB): WinApi.PtrSTR;
	PROCEDURE SNB_UserFree* (VAR [nil] p0: INTEGER; VAR [nil] p1: SNB);
	PROCEDURE STGMEDIUM_UserSize* (VAR [nil] p0: INTEGER; p1: INTEGER; VAR [nil] p2: STGMEDIUM): INTEGER;
	PROCEDURE STGMEDIUM_UserMarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: STGMEDIUM): WinApi.PtrSTR;
	PROCEDURE STGMEDIUM_UserUnmarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: STGMEDIUM): WinApi.PtrSTR; 	PROCEDURE STGMEDIUM_UserFree* (VAR [nil] p0: INTEGER; VAR [nil] p1: STGMEDIUM);
	PROCEDURE CoBuildVersion* (): INTEGER;
	PROCEDURE CoInitialize* (pvReserved: WinApi.PtrVoid): COM.RESULT;
	PROCEDURE CoInitializeEx* (pvReserved: WinApi.PtrVoid; dwCoInit: INTEGER): COM.RESULT;
	PROCEDURE CoUninitialize* ();
	PROCEDURE CoGetMalloc* (dwMemContext: INTEGER; VAR [nil] ppMalloc: IMalloc): COM.RESULT;
	PROCEDURE CoGetCurrentProcess* (): INTEGER;
	PROCEDURE CoRegisterMallocSpy* (pMallocSpy: IMallocSpy): COM.RESULT;
	PROCEDURE CoRevokeMallocSpy* (): COM.RESULT;
	PROCEDURE CoGetClassObject* (IN [nil] rclsid: COM.GUID; dwClsContext: SET; pvReserved: WinApi.PtrVoid; IN [iid] riid: COM.GUID; OUT [new] ppv: COM.IUnknown): COM.RESULT;
	PROCEDURE CoRegisterClassObject* (IN [nil] rclsid: COM.GUID; pUnk: COM.IUnknown; dwClsContext: SET; flags: SET; VAR [nil] lpdwRegister: INTEGER): COM.RESULT;
	PROCEDURE CoRevokeClassObject* (dwRegister: INTEGER): COM.RESULT;

	PROCEDURE CoGetMarshalSizeMax* (VAR [nil] pulSize: INTEGER; IN [nil] riid: COM.GUID; pUnk: COM.IUnknown; dwDestContext: INTEGER; pvDestContext: WinApi.PtrVoid; mshlflags: SET): COM.RESULT;

	PROCEDURE CoMarshalInterface* (pStm: IStream; IN [nil] riid: COM.GUID; pUnk: COM.IUnknown; dwDestContext: INTEGER; pvDestContext: WinApi.PtrVoid; mshlflags: SET): COM.RESULT;

	PROCEDURE CoUnmarshalInterface* (pStm: IStream; IN [iid] riid: COM.GUID; OUT [new] ppv: COM.IUnknown): COM.RESULT;

	PROCEDURE CoMarshalHresult* (pstm: IStream; hresult: COM.RESULT): COM.RESULT;

	PROCEDURE CoUnmarshalHresult* (pstm: IStream; VAR [nil] phresult: COM.RESULT): COM.RESULT;

	PROCEDURE CoReleaseMarshalData* (pStm: IStream): COM.RESULT;

	PROCEDURE CoDisconnectObject* (pUnk: COM.IUnknown; dwReserved: INTEGER): COM.RESULT;

	PROCEDURE CoLockObjectExternal* (pUnk: COM.IUnknown; fLock: WinApi.BOOL; fLastUnlockReleases: WinApi.BOOL): COM.RESULT;

	PROCEDURE CoGetStandardMarshal* (IN [nil] riid: COM.GUID; pUnk: COM.IUnknown; dwDestContext: INTEGER; pvDestContext: WinApi.PtrVoid; mshlflags: SET; VAR [nil] ppMarshal: IMarshal): COM.RESULT;

	PROCEDURE CoIsHandlerConnected* (pUnk: COM.IUnknown): WinApi.BOOL;

	PROCEDURE CoMarshalInterThreadInterfaceInStream* (IN [nil] riid: COM.GUID; pUnk: COM.IUnknown; VAR [nil] ppStm: IStream): COM.RESULT;

	PROCEDURE CoGetInterfaceAndReleaseStream* (pStm: IStream; IN [iid] iid: COM.GUID; OUT [new] ppv: COM.IUnknown): COM.RESULT;

	PROCEDURE CoCreateFreeThreadedMarshaler* (punkOuter: COM.IUnknown; VAR [nil] ppunkMarshal: COM.IUnknown): COM.RESULT;

	PROCEDURE CoLoadLibrary* (lpszLibName: WinApi.PtrWSTR; bAutoFree: WinApi.BOOL): WinApi.HINSTANCE;

	PROCEDURE CoFreeLibrary* (hInst: WinApi.HINSTANCE);

	PROCEDURE CoFreeAllLibraries* ();

	PROCEDURE CoFreeUnusedLibraries* ();

	PROCEDURE CoInitializeSecurity* (VAR [nil] pSecDesc: WinApi.SECURITY_DESCRIPTOR; dwAuthnLevel: INTEGER; dwImpLevel: INTEGER; pReserved: WinApi.PtrVoid): COM.RESULT;

	PROCEDURE CoRegisterAuthenticationServices* (cbAuthSvc: INTEGER; VAR [nil] asAuthSvc: SOLE_AUTHENTICATION_SERVICE): COM.RESULT;

	PROCEDURE CoGetCallContext* (IN [iid] riid: COM.GUID; OUT [new] ppInterface: COM.IUnknown): COM.RESULT;

	PROCEDURE CoQueryProxyBlanket* (pProxy: COM.IUnknown; VAR [nil] pwAuthnSvc: INTEGER; VAR [nil] pAuthzSvc: INTEGER; VAR [nil] pServerPrincName: WinApi.PtrWSTR; VAR [nil] pAuthnLevel: INTEGER; VAR [nil] pImpLevel: INTEGER; VAR [nil] pAuthInfo: WinApi.PtrVoid; VAR [nil] pCapabilites: INTEGER): COM.RESULT;

	PROCEDURE CoSetProxyBlanket* (pProxy: COM.IUnknown; dwAuthnSvc: INTEGER; dwAuthzSvc: INTEGER; pServerPrincName: WinApi.PtrWSTR; dwAuthnLevel: INTEGER; dwImpLevel: INTEGER; VAR [nil] pAuthInfo: WinApi.PtrVoid; dwCapabilities: INTEGER): COM.RESULT;

	PROCEDURE CoCopyProxy* (pProxy: COM.IUnknown; VAR [nil] ppCopy: COM.IUnknown): COM.RESULT;

	PROCEDURE CoQueryClientBlanket* (VAR [nil] pAuthnSvc: INTEGER; VAR [nil] pAuthzSvc: INTEGER; VAR [nil] pServerPrincName: WinApi.PtrWSTR; VAR [nil] pAuthnLevel: INTEGER; VAR [nil] pImpLevel: INTEGER; VAR [nil] pPrivs: WinApi.PtrVoid; VAR [nil] pCapabilities: INTEGER): COM.RESULT;

	PROCEDURE CoImpersonateClient* (): COM.RESULT;

	PROCEDURE CoRevertToSelf* (): COM.RESULT;

	PROCEDURE CoCreateInstance* (IN [nil] rclsid: COM.GUID; pUnkOuter: COM.IUnknown; dwClsContext: SET; IN [iid] riid: COM.GUID; OUT [new] ppv: COM.IUnknown): COM.RESULT;

	PROCEDURE CoGetInstanceFromFile* (VAR [nil] pServerInfo: COSERVERINFO; VAR [nil] pClsid: COM.GUID; punkOuter: COM.IUnknown; dwClsCtx: INTEGER; grfMode: SET; pwszName: WinApi.PtrWSTR; dwCount: INTEGER; VAR [nil] pResults: MULTI_QI): COM.RESULT;

	PROCEDURE CoGetInstanceFromIStorage* (VAR [nil] pServerInfo: COSERVERINFO; VAR [nil] pClsid: COM.GUID; punkOuter: COM.IUnknown; dwClsCtx: INTEGER; pstg: IStorage; dwCount: INTEGER; VAR [nil] pResults: MULTI_QI): COM.RESULT;

	PROCEDURE CoCreateInstanceEx* (IN [nil] Clsid: COM.GUID; punkOuter: COM.IUnknown; dwClsCtx: INTEGER; VAR [nil] pServerInfo: COSERVERINFO; dwCount: INTEGER; VAR [nil] pResults: MULTI_QI): COM.RESULT;

	PROCEDURE StringFromCLSID* (IN [nil] rclsid: COM.GUID; VAR [nil] lplpsz: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE CLSIDFromString* (lpsz: WinApi.PtrWSTR; VAR [nil] pclsid: COM.GUID): COM.RESULT;

	PROCEDURE StringFromIID* (IN [nil] rclsid: COM.GUID; VAR [nil] lplpsz: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE IIDFromString* (lpsz: WinApi.PtrWSTR; VAR [nil] lpiid: COM.GUID): COM.RESULT;

	PROCEDURE CoIsOle1Class* (IN [nil] rclsid: COM.GUID): WinApi.BOOL;

	PROCEDURE ProgIDFromCLSID* (IN [nil] clsid: COM.GUID; VAR [nil] lplpszProgID: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE CLSIDFromProgID* (lpszProgID: WinApi.PtrWSTR; VAR [nil] lpclsid: COM.GUID): COM.RESULT;

	PROCEDURE StringFromGUID2* (IN [nil] rguid: COM.GUID; lpsz: WinApi.PtrWSTR; cbMax: INTEGER): INTEGER;

	PROCEDURE CoCreateGuid* (VAR [nil] pguid: COM.GUID): COM.RESULT;

	PROCEDURE CoFileTimeToDosDateTime* (VAR [nil] lpFileTime: WinApi.FILETIME; VAR [nil] lpDosDate: SHORTINT; VAR [nil] lpDosTime: SHORTINT): WinApi.BOOL;

	PROCEDURE CoDosDateTimeToFileTime* (nDosDate: SHORTINT; nDosTime: SHORTINT; VAR [nil] lpFileTime: WinApi.FILETIME): WinApi.BOOL;

	PROCEDURE CoFileTimeNow* (VAR [nil] lpFileTime: WinApi.FILETIME): COM.RESULT;

	PROCEDURE CoRegisterMessageFilter* (lpMessageFilter: IMessageFilter; VAR [nil] lplpMessageFilter: IMessageFilter): COM.RESULT;

	PROCEDURE CoGetTreatAsClass* (IN [nil] clsidOld: COM.GUID; VAR [nil] pClsidNew: COM.GUID): COM.RESULT;

	PROCEDURE CoTreatAsClass* (IN [nil] clsidOld: COM.GUID; IN [nil] clsidNew: COM.GUID): COM.RESULT;

	PROCEDURE DllGetClassObject* ["OLEAUT32.dll", ""] (IN [nil] rclsid: COM.GUID; IN [iid] riid: COM.GUID; OUT [new] ppv: COM.IUnknown): COM.RESULT;

	PROCEDURE DllCanUnloadNow* ["OLEAUT32.dll", ""] (): COM.RESULT;

	PROCEDURE CoTaskMemAlloc* (cb: INTEGER): WinApi.PtrVoid;

	PROCEDURE CoTaskMemRealloc* (pv: WinApi.PtrVoid; cb: INTEGER): WinApi.PtrVoid;

	PROCEDURE CoTaskMemFree* (pv: WinApi.PtrVoid);

	PROCEDURE CreateDataAdviseHolder* (VAR [nil] ppDAHolder: IDataAdviseHolder): COM.RESULT;

	PROCEDURE CreateDataCache* (pUnkOuter: COM.IUnknown; IN [nil] rclsid: COM.GUID; IN [iid] iid: COM.GUID; OUT [new] ppv: COM.IUnknown): COM.RESULT;

	PROCEDURE StgCreateDocfile* (pwcsName: WinApi.PtrWSTR; grfMode: SET; reserved: INTEGER; VAR [nil] ppstgOpen: IStorage): COM.RESULT;

	PROCEDURE StgCreateDocfileOnILockBytes* (plkbyt: ILockBytes; grfMode: SET; reserved: INTEGER; VAR [nil] ppstgOpen: IStorage): COM.RESULT;

	PROCEDURE StgOpenStorage* (pwcsName: WinApi.PtrWSTR; pstgPriority: IStorage; grfMode: SET; snbExclude: SNB; reserved: INTEGER; VAR [nil] ppstgOpen: IStorage): COM.RESULT;

	PROCEDURE StgOpenStorageOnILockBytes* (plkbyt: ILockBytes; pstgPriority: IStorage; grfMode: SET; snbExclude: SNB; reserved: INTEGER; VAR [nil] ppstgOpen: IStorage): COM.RESULT;

	PROCEDURE StgIsStorageFile* (pwcsName: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE StgIsStorageILockBytes* (plkbyt: ILockBytes): COM.RESULT;

	PROCEDURE StgSetTimes* (lpszName: WinApi.PtrWSTR; VAR [nil] pctime: WinApi.FILETIME; VAR [nil] patime: WinApi.FILETIME; VAR [nil] pmtime: WinApi.FILETIME): COM.RESULT;

	PROCEDURE BindMoniker* (pmk: IMoniker; grfOpt: INTEGER; IN [iid] iidResult: COM.GUID; OUT [new] ppvResult: COM.IUnknown): COM.RESULT;

	PROCEDURE MkParseDisplayName* (pbc: IBindCtx; szUserName: WinApi.PtrWSTR; VAR [nil] pchEaten: INTEGER; VAR [nil] ppmk: IMoniker): COM.RESULT;

	PROCEDURE MonikerRelativePathTo* (pmkSrc: IMoniker; pmkDest: IMoniker; VAR [nil] ppmkRelPath: IMoniker; dwReserved: WinApi.BOOL): COM.RESULT;

	PROCEDURE MonikerCommonPrefixWith* (pmkThis: IMoniker; pmkOther: IMoniker; VAR [nil] ppmkCommon: IMoniker): COM.RESULT;

	PROCEDURE CreateBindCtx* (reserved: INTEGER; VAR [nil] ppbc: IBindCtx): COM.RESULT;

	PROCEDURE CreateGenericComposite* (pmkFirst: IMoniker; pmkRest: IMoniker; VAR [nil] ppmkComposite: IMoniker): COM.RESULT;

	PROCEDURE GetClassFile* (szFilename: WinApi.PtrWSTR; VAR [nil] pclsid: COM.GUID): COM.RESULT;

	PROCEDURE CreateFileMoniker* (lpszPathName: WinApi.PtrWSTR; VAR [nil] ppmk: IMoniker): COM.RESULT;

	PROCEDURE CreateItemMoniker* (lpszDelim: WinApi.PtrWSTR; lpszItem: WinApi.PtrWSTR; VAR [nil] ppmk: IMoniker): COM.RESULT;

	PROCEDURE CreateAntiMoniker* (VAR [nil] ppmk: IMoniker): COM.RESULT;

	PROCEDURE CreatePointerMoniker* (punk: COM.IUnknown; VAR [nil] ppmk: IMoniker): COM.RESULT;

	PROCEDURE GetRunningObjectTable* (reserved: INTEGER; VAR [nil] pprot: IRunningObjectTable): COM.RESULT;

	PROCEDURE HACCEL_UserSize* (VAR [nil] p0: INTEGER; p1: INTEGER; VAR [nil] p2: WinApi.HACCEL): INTEGER;

	PROCEDURE HACCEL_UserMarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HACCEL): WinApi.PtrSTR;

	PROCEDURE HACCEL_UserUnmarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HACCEL): WinApi.PtrSTR;

	PROCEDURE HACCEL_UserFree* (VAR [nil] p0: INTEGER; VAR [nil] p1: WinApi.HACCEL);

	PROCEDURE HGLOBAL_UserSize* (VAR [nil] p0: INTEGER; p1: INTEGER; VAR [nil] p2: WinApi.HGLOBAL): INTEGER;

	PROCEDURE HGLOBAL_UserMarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HGLOBAL): WinApi.PtrSTR;

	PROCEDURE HGLOBAL_UserUnmarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HGLOBAL): WinApi.PtrSTR;

	PROCEDURE HGLOBAL_UserFree* (VAR [nil] p0: INTEGER; VAR [nil] p1: WinApi.HGLOBAL);

	PROCEDURE HMENU_UserSize* (VAR [nil] p0: INTEGER; p1: INTEGER; VAR [nil] p2: WinApi.HMENU): INTEGER;

	PROCEDURE HMENU_UserMarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HMENU): WinApi.PtrSTR;

	PROCEDURE HMENU_UserUnmarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HMENU): WinApi.PtrSTR;

	PROCEDURE HMENU_UserFree* (VAR [nil] p0: INTEGER; VAR [nil] p1: WinApi.HMENU);

	PROCEDURE HWND_UserSize* (VAR [nil] p0: INTEGER; p1: INTEGER; VAR [nil] p2: WinApi.HWND): INTEGER;

	PROCEDURE HWND_UserMarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HWND): WinApi.PtrSTR;

	PROCEDURE HWND_UserUnmarshal* (VAR [nil] p0: INTEGER; p1: WinApi.PtrSTR; VAR [nil] p2: WinApi.HWND): WinApi.PtrSTR;

	PROCEDURE HWND_UserFree* (VAR [nil] p0: INTEGER; VAR [nil] p1: WinApi.HWND);

	PROCEDURE OleBuildVersion* (): INTEGER;

	PROCEDURE ReadClassStg* (pStg: IStorage; VAR [nil] pclsid: COM.GUID): COM.RESULT;

	PROCEDURE WriteClassStg* (pStg: IStorage; IN [nil] rclsid: COM.GUID): COM.RESULT;

	PROCEDURE ReadClassStm* (pStm: IStream; VAR [nil] pclsid: COM.GUID): COM.RESULT;

	PROCEDURE WriteClassStm* (pStm: IStream; IN [nil] rclsid: COM.GUID): COM.RESULT;

	PROCEDURE WriteFmtUserTypeStg* (pstg: IStorage; cf: CLIPFORMAT; lpszUserType: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE ReadFmtUserTypeStg* (pstg: IStorage; VAR [nil] pcf: CLIPFORMAT; VAR [nil] lplpszUserType: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE OleInitialize* (pvReserved: WinApi.PtrVoid): COM.RESULT;

	PROCEDURE OleUninitialize* ();

	PROCEDURE OleQueryLinkFromData* (pSrcDataObject: IDataObject): COM.RESULT;

	PROCEDURE OleQueryCreateFromData* (pSrcDataObject: IDataObject): COM.RESULT;

	PROCEDURE OleCreate* (IN [nil] rclsid: COM.GUID; IN [iid] riid: COM.GUID; renderopt: INTEGER; VAR [nil] pFormatEtc: FORMATETC; pClientSite: IOleClientSite; pStg: IStorage; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleCreateFromData* (pSrcDataObj: IDataObject; IN [iid] riid: COM.GUID; renderopt: INTEGER; VAR [nil] pFormatEtc: FORMATETC; pClientSite: IOleClientSite; pStg: IStorage; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleCreateLinkFromData* (pSrcDataObj: IDataObject; IN [iid] riid: COM.GUID; renderopt: INTEGER; VAR [nil] pFormatEtc: FORMATETC; pClientSite: IOleClientSite; pStg: IStorage; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleCreateStaticFromData* (pSrcDataObj: IDataObject; IN [iid] iid: COM.GUID; renderopt: INTEGER; VAR [nil] pFormatEtc: FORMATETC; pClientSite: IOleClientSite; pStg: IStorage; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleCreateLink* (pmkLinkSrc: IMoniker; IN [iid] riid: COM.GUID; renderopt: INTEGER; VAR [nil] lpFormatEtc: FORMATETC; pClientSite: IOleClientSite; pStg: IStorage; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleCreateLinkToFile* (lpszFileName: WinApi.PtrWSTR; IN [iid] riid: COM.GUID; renderopt: INTEGER; VAR [nil] lpFormatEtc: FORMATETC; pClientSite: IOleClientSite; pStg: IStorage; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleCreateFromFile* (IN [nil] rclsid: COM.GUID; lpszFileName: WinApi.PtrWSTR; IN [iid] riid: COM.GUID; renderopt: INTEGER; VAR [nil] lpFormatEtc: FORMATETC; pClientSite: IOleClientSite; pStg: IStorage; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleLoad* (pStg: IStorage; IN [iid] riid: COM.GUID; pClientSite: IOleClientSite; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleSave* (pPS: IPersistStorage; pStg: IStorage; fSameAsLoad: WinApi.BOOL): COM.RESULT;

	PROCEDURE OleLoadFromStream* (pStm: IStream; IN [iid] iidInterface: COM.GUID; OUT [new] ppvObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleSaveToStream* (pPStm: IPersistStream; pStm: IStream): COM.RESULT;

	PROCEDURE OleSetContainedObject* (pUnknown: COM.IUnknown; fContained: WinApi.BOOL): COM.RESULT;

	PROCEDURE OleNoteObjectVisible* (pUnknown: COM.IUnknown; fVisible: WinApi.BOOL): COM.RESULT;

	PROCEDURE RegisterDragDrop* (hwnd: WinApi.HWND; pDropTarget: IDropTarget): COM.RESULT;

	PROCEDURE RevokeDragDrop* (hwnd: WinApi.HWND): COM.RESULT;

	PROCEDURE DoDragDrop* (pDataObj: IDataObject; pDropSource: IDropSource; dwOKEffects: SET; VAR [nil] pdwEffect: SET): COM.RESULT;

	PROCEDURE OleSetClipboard* (pDataObj: IDataObject): COM.RESULT;

	PROCEDURE OleGetClipboard* (VAR [nil] ppDataObj: IDataObject): COM.RESULT;

	PROCEDURE OleFlushClipboard* (): COM.RESULT;

	PROCEDURE OleIsCurrentClipboard* (pDataObj: IDataObject): COM.RESULT;

	PROCEDURE OleCreateMenuDescriptor* (hmenuCombined: WinApi.HMENU; VAR [nil] lpMenuWidths: OLEMENUGROUPWIDTHS): HOLEMENU;

	PROCEDURE OleSetMenuDescriptor* (holemenu: HOLEMENU; hwndFrame: WinApi.HWND; hwndActiveObject: WinApi.HWND; lpFrame: IOleInPlaceFrame; lpActiveObj: IOleInPlaceActiveObject): COM.RESULT;

	PROCEDURE OleDestroyMenuDescriptor* (holemenu: HOLEMENU): COM.RESULT;

	PROCEDURE OleTranslateAccelerator* (lpFrame: IOleInPlaceFrame; VAR [nil] lpFrameInfo: OLEINPLACEFRAMEINFO; VAR [nil] lpmsg: WinApi.MSG): COM.RESULT;

	PROCEDURE OleDuplicateData* (hSrc: WinApi.HANDLE; cfFormat: CLIPFORMAT; uiFlags: SET): WinApi.HANDLE;

	PROCEDURE OleDraw* (pUnknown: COM.IUnknown; dwAspect: SET; hdcDraw: WinApi.HDC; VAR [nil] lprcBounds: WinApi.RECT): COM.RESULT;

	PROCEDURE OleRun* (pUnknown: COM.IUnknown): COM.RESULT;

	PROCEDURE OleIsRunning* (pObject: IOleObject): WinApi.BOOL;

	PROCEDURE OleLockRunning* (pUnknown: COM.IUnknown; fLock: WinApi.BOOL; fLastUnlockCloses: WinApi.BOOL): COM.RESULT;

	PROCEDURE ReleaseStgMedium* (VAR [nil] p0: STGMEDIUM);

	PROCEDURE CreateOleAdviseHolder* (VAR [nil] ppOAHolder: IOleAdviseHolder): COM.RESULT;

	PROCEDURE OleCreateDefaultHandler* (IN [nil] clsid: COM.GUID; pUnkOuter: COM.IUnknown; IN [iid] riid: COM.GUID; OUT [new] lplpObj: COM.IUnknown): COM.RESULT;

	PROCEDURE OleCreateEmbeddingHelper* (IN [nil] clsid: COM.GUID; pUnkOuter: COM.IUnknown; flags: SET; pCF: IClassFactory; IN [iid] riid: COM.GUID; OUT [new] lplpObj: COM.IUnknown): COM.RESULT;

	PROCEDURE IsAccelerator* (hAccel: WinApi.HACCEL; cAccelEntries: INTEGER; VAR [nil] lpMsg: WinApi.MSG; VAR [nil] lpwCmd: SHORTINT): WinApi.BOOL;

	PROCEDURE OleGetIconOfFile* (lpszPath: WinApi.PtrWSTR; fUseFileAsLabel: WinApi.BOOL): WinApi.HGLOBAL;

	PROCEDURE OleGetIconOfClass* (IN [nil] rclsid: COM.GUID; lpszLabel: WinApi.PtrWSTR; fUseTypeAsLabel: WinApi.BOOL): WinApi.HGLOBAL;

	PROCEDURE OleMetafilePictFromIconAndLabel* (hIcon: WinApi.HICON; lpszLabel: WinApi.PtrWSTR; lpszSourceFile: WinApi.PtrWSTR; iIconIndex: INTEGER): WinApi.HGLOBAL;

	PROCEDURE OleRegGetUserType* (IN [nil] clsid: COM.GUID; dwFormOfType: INTEGER; VAR [nil] pszUserType: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE OleRegGetMiscStatus* (IN [nil] clsid: COM.GUID; dwAspect: SET; VAR [nil] pdwStatus: SET): COM.RESULT;

	PROCEDURE OleRegEnumFormatEtc* (IN [nil] clsid: COM.GUID; dwDirection: SET; VAR [nil] ppenum: IEnumFORMATETC): COM.RESULT;

	PROCEDURE OleRegEnumVerbs* (IN [nil] clsid: COM.GUID; VAR [nil] ppenum: IEnumOLEVERB): COM.RESULT;

	PROCEDURE OleConvertOLESTREAMToIStorage* (VAR [nil] lpolestream: OLESTREAM; pstg: IStorage; VAR [nil] ptd: DVTARGETDEVICE): COM.RESULT;

	PROCEDURE OleConvertIStorageToOLESTREAM* (pstg: IStorage; VAR [nil] lpolestream: OLESTREAM): COM.RESULT;

	PROCEDURE GetHGlobalFromILockBytes* (plkbyt: ILockBytes; VAR [nil] phglobal: WinApi.HGLOBAL): COM.RESULT;

	PROCEDURE CreateILockBytesOnHGlobal* (hGlobal: WinApi.HGLOBAL; fDeleteOnRelease: WinApi.BOOL; VAR [nil] pplkbyt: ILockBytes): COM.RESULT;

	PROCEDURE GetHGlobalFromStream* (pstm: IStream; VAR [nil] phglobal: WinApi.HGLOBAL): COM.RESULT;

	PROCEDURE CreateStreamOnHGlobal* (hGlobal: WinApi.HGLOBAL; fDeleteOnRelease: WinApi.BOOL; VAR [nil] ppstm: IStream): COM.RESULT;

	PROCEDURE OleDoAutoConvert* (pStg: IStorage; VAR [nil] pClsidNew: COM.GUID): COM.RESULT;

	PROCEDURE OleGetAutoConvert* (IN [nil] clsidOld: COM.GUID; VAR [nil] pClsidNew: COM.GUID): COM.RESULT;

	PROCEDURE OleSetAutoConvert* (IN [nil] clsidOld: COM.GUID; IN [nil] clsidNew: COM.GUID): COM.RESULT;

	PROCEDURE GetConvertStg* (pStg: IStorage): COM.RESULT;

	PROCEDURE SetConvertStg* (pStg: IStorage; fConvert: WinApi.BOOL): COM.RESULT;

	PROCEDURE OleConvertIStorageToOLESTREAMEx* (pstg: IStorage; cfFormat: CLIPFORMAT; lWidth: INTEGER; lHeight: INTEGER; dwSize: INTEGER; VAR [nil] pmedium: STGMEDIUM; VAR [nil] polestm: OLESTREAM): COM.RESULT;

	PROCEDURE OleConvertOLESTREAMToIStorageEx* (VAR [nil] polestm: OLESTREAM; pstg: IStorage; VAR [nil] pcfFormat: CLIPFORMAT; VAR [nil] plwWidth: INTEGER; VAR [nil] plHeight: INTEGER; VAR [nil] pdwSize: INTEGER; VAR [nil] pmedium: STGMEDIUM): COM.RESULT;

END WinOle.
