MODULE WinOleAut ["OLEAUT32.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, WinOle, WinApi;

	CONST (* macros *)
		STDOLE_MAJORVERNUM* = 1;
		STDOLE_MINORVERNUM* = 0;
		STDOLE_LCID* = 0;
		STDOLE2_MAJORVERNUM* = 2;
		STDOLE2_MINORVERNUM* = 0;
		STDOLE2_LCID* = 0;
		FADF_AUTO* = 1;
		FADF_STATIC* = 2;
		FADF_EMBEDDED* = 4;
		FADF_FIXEDSIZE* = 16;
		FADF_BSTR* = 256;
		FADF_UNKNOWN* = 512;
		FADF_DISPATCH* = 1024;
		FADF_VARIANT* = 2048;
		FADF_RESERVED* = 61672;
		PARAMFLAG_NONE* = 0;
		PARAMFLAG_FIN* = 1;
		PARAMFLAG_FOUT* = 2;
		PARAMFLAG_FLCID* = 4;
		PARAMFLAG_FRETVAL* = 8;
		PARAMFLAG_FOPT* = 16;
		PARAMFLAG_FHASDEFAULT* = 32;
		IDLFLAG_NONE* = 0;
		IDLFLAG_FIN* = 1;
		IDLFLAG_FOUT* = 2;
		IDLFLAG_FLCID* = 4;
		IDLFLAG_FRETVAL* = 8;
		IMPLTYPEFLAG_FDEFAULT* = {0};
		IMPLTYPEFLAG_FSOURCE* = {1};
		IMPLTYPEFLAG_FRESTRICTED* = {2};
		IMPLTYPEFLAG_FDEFAULTVTABLE* = {3};
		DISPID_UNKNOWN* = -1;
		DISPID_VALUE* = 0;
		DISPID_PROPERTYPUT* = -3;
		DISPID_NEWENUM* = -4;
		DISPID_EVALUATE* = -5;
		DISPID_CONSTRUCTOR* = -6;
		DISPID_DESTRUCTOR* = -7;
		DISPID_COLLECT* = -8;
		DISPID_Name* = -800;
		DISPID_Delete* = -801;
		DISPID_Object* = -802;
		DISPID_Parent* = -803;
		VARIANT_NOVALUEPROP* = 1;
		VARIANT_ALPHABOOL* = 2;
		VAR_TIMEVALUEONLY* = 1;
		VAR_DATEVALUEONLY* = 2;
		NUMPRS_LEADING_WHITE* = {0};
		NUMPRS_TRAILING_WHITE* = {1};
		NUMPRS_LEADING_PLUS* = {2};
		NUMPRS_TRAILING_PLUS* = {3};
		NUMPRS_LEADING_MINUS* = {4};
		NUMPRS_TRAILING_MINUS* = {5};
		NUMPRS_HEX_OCT* = {6};
		NUMPRS_PARENS* = {7};
		NUMPRS_DECIMAL* = {8};
		NUMPRS_THOUSANDS* = {9};
		NUMPRS_CURRENCY* = {10};
		NUMPRS_EXPONENT* = {11};
		NUMPRS_USE_ALL* = {12};
		NUMPRS_STD* = {0..12};
		NUMPRS_NEG* = {16};
		NUMPRS_INEXACT* = {17};
		VTBIT_I1* = {16};
		VTBIT_UI1* = {17};
		VTBIT_I2* = {2};
		VTBIT_UI2* = {18};
		VTBIT_I4* = {3};
		VTBIT_UI4* = {19};
		VTBIT_R4* = {4};
		VTBIT_R8* = {5};
		VTBIT_CY* = {6};
		VTBIT_DECIMAL* = {14};
		VAR_VALIDDATE* = 4;
		VAR_CALENDAR_HIJRI* = 8;
		VARIANT_CALENDAR_HIJRI* = 8;
		MEMBERID_NIL* = -1;
		ID_DEFAULTINST* = -2;
		DISPATCH_METHOD* = 1;
		DISPATCH_PROPERTYGET* = 2;
		DISPATCH_PROPERTYPUT* = 4;
		DISPATCH_PROPERTYPUTREF* = 8;
		ACTIVEOBJECT_STRONG* = 0;
		ACTIVEOBJECT_WEAK* = 1;

	CONST (* enumerations *)
		SF_ERROR* = 10;
		SF_I1* = 16;
		SF_I2* = 2;
		SF_I4* = 3;
		SF_I8* = 20;
		SF_BSTR* = 8;
		SF_UNKNOWN* = 13;
		SF_DISPATCH* = 9;
		SF_VARIANT* = 12;
		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;
		CC_CDECL* = 1;
		CC_MSCPASCAL* = 2;
		CC_PASCAL* = 2;
		CC_MACPASCAL* = 3;
		CC_STDCALL* = 4;
		CC_RESERVED* = 5;
		CC_SYSCALL* = 6;
		CC_MPWCDECL* = 7;
		CC_MPWPASCAL* = 8;
		CC_MAX* = 9;
		FUNC_VIRTUAL* = 0;
		FUNC_PUREVIRTUAL* = 1;
		FUNC_NONVIRTUAL* = 2;
		FUNC_STATIC* = 3;
		FUNC_DISPATCH* = 4;
		INVOKE_FUNC* = 1;
		INVOKE_PROPERTYGET* = 2;
		INVOKE_PROPERTYPUT* = 4;
		INVOKE_PROPERTYPUTREF* = 8;
		VAR_PERINSTANCE* = 0;
		VAR_STATIC* = 1;
		VAR_CONST* = 2;
		VAR_DISPATCH* = 3;
		TYPEFLAG_FAPPOBJECT* = 1;
		TYPEFLAG_FCANCREATE* = 2;
		TYPEFLAG_FLICENSED* = 4;
		TYPEFLAG_FPREDECLID* = 8;
		TYPEFLAG_FHIDDEN* = 16;
		TYPEFLAG_FCONTROL* = 32;
		TYPEFLAG_FDUAL* = 64;
		TYPEFLAG_FNONEXTENSIBLE* = 128;
		TYPEFLAG_FOLEAUTOMATION* = 256;
		TYPEFLAG_FRESTRICTED* = 512;
		TYPEFLAG_FAGGREGATABLE* = 1024;
		TYPEFLAG_FREPLACEABLE* = 2048;
		TYPEFLAG_FDISPATCHABLE* = 4096;
		FUNCFLAG_FRESTRICTED* = 1;
		FUNCFLAG_FSOURCE* = 2;
		FUNCFLAG_FBINDABLE* = 4;
		FUNCFLAG_FREQUESTEDIT* = 8;
		FUNCFLAG_FDISPLAYBIND* = 16;
		FUNCFLAG_FDEFAULTBIND* = 32;
		FUNCFLAG_FHIDDEN* = 64;
		FUNCFLAG_FUSESGETLASTERROR* = 128;
		FUNCFLAG_FDEFAULTCOLLELEM* = 256;
		FUNCFLAG_FUIDEFAULT* = 512;
		FUNCFLAG_FNONBROWSABLE* = 1024;
		FUNCFLAG_FREPLACEABLE* = 2048;
		FUNCFLAG_FIMMEDIATEBIND* = 4096;
		VARFLAG_FREADONLY* = 1;
		VARFLAG_FSOURCE* = 2;
		VARFLAG_FBINDABLE* = 4;
		VARFLAG_FREQUESTEDIT* = 8;
		VARFLAG_FDISPLAYBIND* = 16;
		VARFLAG_FDEFAULTBIND* = 32;
		VARFLAG_FHIDDEN* = 64;
		VARFLAG_FRESTRICTED* = 128;
		VARFLAG_FDEFAULTCOLLELEM* = 256;
		VARFLAG_FUIDEFAULT* = 512;
		VARFLAG_FNONBROWSABLE* = 1024;
		VARFLAG_FREPLACEABLE* = 2048;
		VARFLAG_FIMMEDIATEBIND* = 4096;
		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;
		LIBFLAG_FRESTRICTED* = 1;
		LIBFLAG_FCONTROL* = 2;
		LIBFLAG_FHIDDEN* = 4;
		CHANGEKIND_ADDMEMBER* = 0;
		CHANGEKIND_DELETEMEMBER* = 1;
		CHANGEKIND_SETNAMES* = 2;
		CHANGEKIND_SETDOCUMENTATION* = 3;
		CHANGEKIND_GENERAL* = 4;
		CHANGEKIND_MAX* = 5;
		REGKIND_DEFAULT* = 0;
		REGKIND_REGISTER* = 1;
		REGKIND_NONE* = 2;

	TYPE
		CURRENCY* = WinApi.CY;
		SAFEARR_BSTR* = RECORD [untagged]
			Size*: INTEGER;
			aBstr*: POINTER TO (*?*) ARRAY [untagged] OF WinOle.PtrFLAGGED_WORD_BLOB;
		END;
		SAFEARR_UNKNOWN* = RECORD [untagged]
			Size*: INTEGER;
			apUnknown*: POINTER TO (*?*) ARRAY [untagged] OF COM.IUnknown;
		END;
		SAFEARR_DISPATCH* = RECORD [untagged]
			Size*: INTEGER;
			apDispatch*: POINTER TO (*?*) ARRAY [untagged] OF IDispatch;
		END;
		Ptr_wireVARIANT* = POINTER TO _wireVARIANT;
		SAFEARR_VARIANT* = RECORD [untagged]
			Size*: INTEGER;
			aVariant*: POINTER TO (*?*) ARRAY [untagged] OF Ptr_wireVARIANT;
		END;
		SF_TYPE* = INTEGER;
		SAFEARRAYBOUND* = RECORD [untagged]
			cElements*: INTEGER;
			lLbound*: INTEGER;
		END;
		PtrSAFEARRAYBOUND* = POINTER TO SAFEARRAYBOUND;
		SAFEARRAYUNION* = RECORD [untagged]
			sfType*: INTEGER;
			u*: RECORD [union]
				BstrStr*: SAFEARR_BSTR;
				UnknownStr*: SAFEARR_UNKNOWN;
				DispatchStr*: SAFEARR_DISPATCH;
				VariantStr*: SAFEARR_VARIANT;
				ByteStr*: WinOle.BYTE_SIZEDARR;
				WordStr*: WinOle.WORD_SIZEDARR;
				LongStr*: WinOle.DWORD_SIZEDARR;
				HyperStr*: WinOle.HYPER_SIZEDARR;
			END;
		END;
		_wireSAFEARRAY* = RECORD [untagged]
			cDims*: SHORTINT;
			fFeatures*: SHORTINT;
			cbElements*: INTEGER;
			cLocks*: INTEGER;
			uArrayStructs*: SAFEARRAYUNION;
			rgsabound*: ARRAY [untagged] 16 OF SAFEARRAYBOUND;
		END;
		Ptr_wireSAFEARRAY* = POINTER TO _wireSAFEARRAY;
		SAFEARRAY* = RECORD [untagged]
			cDims*: SHORTINT;
			fFeatures*: SHORTINT;
			cbElements*: INTEGER;
			cLocks*: INTEGER;
			pvData*: WinApi.PtrVoid;
			rgsabound*: ARRAY [untagged] 16 OF SAFEARRAYBOUND;
		END;
		PtrSAFEARRAY* = POINTER TO SAFEARRAY;
		_VARIANT_BOOL* = WinOle.VARIANT_BOOL;
		PtrVARIANT* = POINTER TO VARIANT;
		VARIANT* = RECORD [align8]
			vt*: WinOle.VARTYPE;
			scale*: SHORTCHAR;
			sign*: SHORTCHAR;
			Hi32*: INTEGER;
			u*: RECORD [union]
				lVal*: INTEGER;
				bVal*: SHORTCHAR;
				iVal*: SHORTINT;
				fltVal*: SHORTREAL;
				dblVal*: REAL;
				boolVal*: WinOle.VARIANT_BOOL;
				bool*: _VARIANT_BOOL;
				scode*: COM.RESULT;
				cyVal*: WinApi.CY;
				date*: WinApi.DATE;
				bstrVal*: WinOle.BSTR;
				punkVal*: COM.IUnknown;
				pdispVal*: IDispatch;
				parray*: PtrSAFEARRAY;
				pbVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTCHAR;
				piVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTINT;
				plVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
				pfltVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTREAL;
				pdblVal*: POINTER TO (*?*) ARRAY [untagged] OF REAL;
				pboolVal*: POINTER TO (*?*) ARRAY [untagged] OF WinOle.VARIANT_BOOL;
				pbool*: POINTER TO (*?*) ARRAY [untagged] OF _VARIANT_BOOL;
				pscode*: POINTER TO (*?*) ARRAY [untagged] OF COM.RESULT;
				pcyVal*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.CY;
				pdate*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.DATE;
				pbstrVal*: POINTER TO (*?*) ARRAY [untagged] OF WinOle.BSTR;
				ppunkVal*: POINTER TO (*?*) ARRAY [untagged] OF COM.IUnknown;
				ppdispVal*: POINTER TO (*?*) ARRAY [untagged] OF IDispatch;
				pparray*: POINTER TO (*?*) ARRAY [untagged] OF PtrSAFEARRAY;
				pvarVal*: PtrVARIANT;
				byref*: WinApi.PtrVoid;
				cVal*: SHORTCHAR;
				uiVal*: SHORTINT;
				ulVal*: INTEGER;
				intVal*: INTEGER;
				uintVal*: INTEGER;
				pdecVal*: WinOle.PtrDECIMAL;
				pcVal*: WinApi.PtrSTR;
				puiVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTINT;
				pulVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
				pintVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
				puintVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
				Lo64*: LONGINT;
			END
		END;
		VARIANTARG* = VARIANT;
		PtrVARIANTARG* = PtrVARIANT;
		_wireVARIANT* = RECORD [align8]
			vt*: SHORTINT;
			wReserved1*: SHORTINT;
			wReserved2*: SHORTINT;
			wReserved3*: SHORTINT;
			u*: RECORD [union]
				lVal*: INTEGER;
				bVal*: SHORTCHAR;
				iVal*: SHORTINT;
				fltVal*: SHORTREAL;
				dblVal*: REAL;
				boolVal*: WinOle.VARIANT_BOOL;
				scode*: COM.RESULT;
				cyVal*: WinApi.CY;
				date*: WinApi.DATE;
				bstrVal*: WinOle.PtrFLAGGED_WORD_BLOB;
				punkVal*: COM.IUnknown;
				pdispVal*: IDispatch;
				parray*: Ptr_wireSAFEARRAY;
				pbVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTCHAR;
				piVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTINT;
				plVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
				pfltVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTREAL;
				pdblVal*: POINTER TO (*?*) ARRAY [untagged] OF REAL;
				pboolVal*: POINTER TO (*?*) ARRAY [untagged] OF WinOle.VARIANT_BOOL;
				pscode*: POINTER TO (*?*) ARRAY [untagged] OF COM.RESULT;
				pcyVal*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.CY;
				pdate*: POINTER TO (*?*) ARRAY [untagged] OF WinApi.DATE;
				pbstrVal*: POINTER TO (*?*) ARRAY [untagged] OF WinOle.PtrFLAGGED_WORD_BLOB;
				ppunkVal*: POINTER TO (*?*) ARRAY [untagged] OF COM.IUnknown;
				ppdispVal*: POINTER TO (*?*) ARRAY [untagged] OF IDispatch;
				pparray*: POINTER TO (*?*) ARRAY [untagged] OF Ptr_wireSAFEARRAY;
				pvarVal*: POINTER TO (*?*) ARRAY [untagged] OF Ptr_wireVARIANT;
				byref*: WinApi.PtrVoid;
				cVal*: SHORTCHAR;
				uiVal*: SHORTINT;
				ulVal*: INTEGER;
				intVal*: INTEGER;
				uintVal*: INTEGER;
				pdecVal*: WinOle.PtrDECIMAL;
				pcVal*: WinApi.PtrSTR;
				puiVal*: POINTER TO (*?*) ARRAY [untagged] OF SHORTINT;
				pulVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
				pintVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
				puintVal*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
			END;
		END;
		DISPID* = INTEGER;
		MEMBERID* = DISPID;
		HREFTYPE* = INTEGER;
		TYPEKIND* = INTEGER;
		PtrTYPEDESC* = POINTER TO TYPEDESC;
		PtrARRAYDESC* = POINTER TO ARRAYDESC;
		TYPEDESC* = RECORD [untagged]
			u*: RECORD [union]
				lptdesc*: PtrTYPEDESC;
				lpadesc*: PtrARRAYDESC;
				hreftype*: HREFTYPE;
			END;
			vt*: WinOle.VARTYPE;
		END;
		ARRAYDESC* = RECORD [untagged]
			tdescElem*: TYPEDESC;
			cDims*: SHORTINT;
			rgbounds*: ARRAY [untagged] 16 OF SAFEARRAYBOUND;
		END;
		PARAMDESCEX* = RECORD [align8]
			cBytes*: INTEGER;
			varDefaultValue*: VARIANTARG;
		END;
		PtrPARAMDESCEX* = POINTER TO PARAMDESCEX;
		PARAMDESC* = RECORD [untagged]
			pparamdescex*: PtrPARAMDESCEX;
			wParamFlags*: SHORTINT;
		END;
		PtrPARAMDESC* = POINTER TO PARAMDESC;
		IDLDESC* = RECORD [untagged]
			dwReserved*: INTEGER;
			wIDLFlags*: SHORTINT;
		END;
		PtrIDLDESC* = POINTER TO IDLDESC;
		ELEMDESC* = RECORD [untagged]
			tdesc*: TYPEDESC;
			u*: RECORD [union]
				idldesc*: IDLDESC;
				paramdesc*: PARAMDESC;
			END;
		END;
		PtrELEMDESC* = POINTER TO ELEMDESC;
		TYPEATTR* = RECORD [untagged]
			guid*: COM.GUID;
			lcid*: WinOle.LCID;
			dwReserved*: INTEGER;
			memidConstructor*: MEMBERID;
			memidDestructor*: MEMBERID;
			lpstrSchema*: WinApi.PtrWSTR;
			cbSizeInstance*: INTEGER;
			typekind*: TYPEKIND;
			cFuncs*: SHORTINT;
			cVars*: SHORTINT;
			cImplTypes*: SHORTINT;
			cbSizeVft*: SHORTINT;
			cbAlignment*: SHORTINT;
			wTypeFlags*: SHORTINT;
			wMajorVerNum*: SHORTINT;
			wMinorVerNum*: SHORTINT;
			tdescAlias*: TYPEDESC;
			idldescType*: IDLDESC;
		END;
		PtrTYPEATTR* = POINTER TO TYPEATTR;
		_wireDISPPARAMS* = RECORD [untagged]
			rgvarg*: POINTER TO (*?*) ARRAY [untagged] OF Ptr_wireVARIANT;
			rgdispidNamedArgs*: POINTER TO (*?*) ARRAY [untagged] OF DISPID;
			cArgs*: INTEGER;
			cNamedArgs*: INTEGER;
		END;
		Ptr_wireDISPPARAMS* = POINTER TO _wireDISPPARAMS;
		DISPPARAMS* = RECORD [untagged]
			rgvarg*: POINTER TO ARRAY [untagged] OF VARIANTARG;
			rgdispidNamedArgs*: POINTER TO ARRAY [untagged] OF DISPID;
			cArgs*: INTEGER;
			cNamedArgs*: INTEGER;
		END;
		PtrDISPPARAMS* = POINTER TO DISPPARAMS;
		_wireEXCEPINFO* = RECORD [untagged]
			wCode*: SHORTINT;
			wReserved*: SHORTINT;
			bstrSource*: WinOle.BSTR;
			bstrDescription*: WinOle.BSTR;
			bstrHelpFile*: WinOle.BSTR;
			dwHelpContext*: INTEGER;
			pvReserved*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
			pfnDeferredFillIn*: POINTER TO (*?*) ARRAY [untagged] OF INTEGER;
			scode*: COM.RESULT;
		END;
		Ptr_wireEXCEPINFO* = POINTER TO _wireEXCEPINFO;
		PtrEXCEPINFO* = POINTER TO EXCEPINFO;
		EXCEPINFO* = RECORD [untagged]
			wCode*: SHORTINT;
			wReserved*: SHORTINT;
			bstrSource*: WinOle.BSTR;
			bstrDescription*: WinOle.BSTR;
			bstrHelpFile*: WinOle.BSTR;
			dwHelpContext*: INTEGER;
			pvReserved*: WinApi.PtrVoid;
			pfnDeferredFillIn*: PROCEDURE (VAR __MIDL_0012: EXCEPINFO): COM.RESULT;
			scode*: COM.RESULT;
		END;
		CALLCONV* = INTEGER;
		FUNCKIND* = INTEGER;
		INVOKEKIND* = INTEGER;
		FUNCDESC* = RECORD [untagged]
			memid*: MEMBERID;
			lprgscode*: POINTER TO (*?*) ARRAY [untagged] OF COM.RESULT;
			lprgelemdescParam*: POINTER TO ARRAY [untagged] OF ELEMDESC;
			funckind*: FUNCKIND;
			invkind*: INVOKEKIND;
			callconv*: CALLCONV;
			cParams*: SHORTINT;
			cParamsOpt*: SHORTINT;
			oVft*: SHORTINT;
			cScodes*: SHORTINT;
			elemdescFunc*: ELEMDESC;
			wFuncFlags*: SHORTINT;
		END;
		PtrFUNCDESC* = POINTER TO FUNCDESC;
		VARKIND* = INTEGER;
		VARDESC* = RECORD [untagged]
			memid*: MEMBERID;
			lpstrSchema*: WinApi.PtrWSTR;
			u*: RECORD [union]
				oInst*: INTEGER;
				lpvarValue*: PtrVARIANT;
			END;
			elemdescVar*: ELEMDESC;
			wVarFlags*: SHORTINT;
			varkind*: VARKIND;
		END;
		PtrVARDESC* = POINTER TO VARDESC;
		TYPEFLAGS* = INTEGER;
		FUNCFLAGS* = INTEGER;
		VARFLAGS* = INTEGER;
		ICreateTypeInfo* = POINTER TO ABSTRACT RECORD ["{00020405-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		ICreateTypeInfo2* = POINTER TO ABSTRACT RECORD ["{0002040E-0000-0000-C000-000000000046}"] (ICreateTypeInfo)
		END;
		ICreateTypeLib* = POINTER TO ABSTRACT RECORD ["{00020406-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		ICreateTypeLib2* = POINTER TO ABSTRACT RECORD ["{0002040F-0000-0000-C000-000000000046}"] (ICreateTypeLib)
		END;
		IDispatch* = POINTER TO ABSTRACT RECORD ["{00020400-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IEnumVARIANT* = POINTER TO ABSTRACT RECORD ["{00020404-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		DESCKIND* = INTEGER;
		ITypeComp* = POINTER TO ABSTRACT RECORD ["{00020403-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		tagBINDPTR* = RECORD [union]
			lpfuncdesc*: PtrFUNCDESC;
			lpvardesc*: PtrVARDESC;
			lptcomp*: ITypeComp;
		END;
		PtrtagBINDPTR* = POINTER TO tagBINDPTR;
		BINDPTR* = tagBINDPTR;
		PtrBINDPTR* = PtrtagBINDPTR;
		ITypeInfo* = POINTER TO ABSTRACT RECORD ["{00020401-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		ITypeInfo2* = POINTER TO ABSTRACT RECORD ["{00020412-0000-0000-C000-000000000046}"] (ITypeInfo)
		END;
		SYSKIND* = INTEGER;
		LIBFLAGS* = INTEGER;
		TLIBATTR* = RECORD [untagged]
			guid*: COM.GUID;
			lcid*: WinOle.LCID;
			syskind*: SYSKIND;
			wMajorVerNum*: SHORTINT;
			wMinorVerNum*: SHORTINT;
			wLibFlags*: SHORTINT;
		END;
		PtrTLIBATTR* = POINTER TO TLIBATTR;
		ITypeLib* = POINTER TO ABSTRACT RECORD ["{00020402-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		ITypeLib2* = POINTER TO ABSTRACT RECORD ["{00020411-0000-0000-C000-000000000046}"] (ITypeLib)
		END;
		CHANGEKIND* = INTEGER;
		ITypeChangeEvents* = POINTER TO ABSTRACT RECORD ["{00020410-0000-0000-C000-000000000046}"] (COM.IUnknown)
		END;
		IErrorInfo* = POINTER TO ABSTRACT RECORD ["{1CF2B120-547D-101B-8E65-08002B2BD119}"] (COM.IUnknown)
		END;
		ICreateErrorInfo* = POINTER TO ABSTRACT RECORD ["{22F03340-547D-101B-8E65-08002B2BD119}"] (COM.IUnknown)
		END;
		ISupportErrorInfo* = POINTER TO ABSTRACT RECORD ["{DF0B3D60-548F-101B-8E65-08002B2BD119}"] (COM.IUnknown)
		END;
		NUMPARSE* = RECORD [untagged]
			cDig*: INTEGER;
			dwInFlags*: SET;
			dwOutFlags*: SET;
			cchUsed*: INTEGER;
			nBaseShift*: INTEGER;
			nPwr10*: INTEGER;
		END;
		PtrNUMPARSE* = POINTER TO NUMPARSE;
		UDATE* = RECORD [untagged]
			st*: WinApi.SYSTEMTIME;
			wDayOfYear*: SHORTINT;
		END;
		PtrUDATE* = POINTER TO UDATE;
		REGKIND* = INTEGER;
		PARAMDATA* = RECORD [untagged]
			szName*: WinApi.PtrWSTR;
			vt*: WinOle.VARTYPE;
		END;
		PtrPARAMDATA* = POINTER TO PARAMDATA;
		METHODDATA* = RECORD [untagged]
			szName*: WinApi.PtrWSTR;
			ppdata*: PtrPARAMDATA;
			dispid*: DISPID;
			iMeth*: INTEGER;
			cc*: CALLCONV;
			cArgs*: INTEGER;
			wFlags*: SHORTINT;
			vtReturn*: WinOle.VARTYPE;
		END;
		PtrMETHODDATA* = POINTER TO METHODDATA;
		INTERFACEDATA* = RECORD [untagged]
			pmethdata*: PtrMETHODDATA;
			cMembers*: INTEGER;
		END;
		PtrINTERFACEDATA* = POINTER TO INTERFACEDATA;

	PROCEDURE (this: ICreateTypeInfo) SetGuid* (IN [nil] guid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetTypeFlags* (uTypeFlags: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetDocString* (pStrDoc: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetHelpContext* (dwHelpContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetVersion* (wMajorVerNum: SHORTINT; wMinorVerNum: SHORTINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) AddRefTypeInfo* (pTInfo: ITypeInfo; VAR [nil] phRefType: HREFTYPE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) AddFuncDesc* (index: INTEGER; IN [nil] pFuncDesc: FUNCDESC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) AddImplType* (index: INTEGER; hRefType: HREFTYPE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetImplTypeFlags* (index: INTEGER; implTypeFlags: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetAlignment* (cbAlignment: SHORTINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetSchema* (pStrSchema: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) AddVarDesc* (index: INTEGER; IN [nil] pVarDesc: VARDESC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetFuncAndParamNames* (index: INTEGER; IN [nil] rgszNames: WinApi.PtrWSTR; cNames: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetVarName* (index: INTEGER; szName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetTypeDescAlias* (IN [nil] pTDescAlias: TYPEDESC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) DefineFuncAsDllEntry* (index: INTEGER; szDllName: WinApi.PtrWSTR; szProcName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetFuncDocString* (index: INTEGER; szDocString: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetVarDocString* (index: INTEGER; szDocString: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetFuncHelpContext* (index: INTEGER; dwHelpContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetVarHelpContext* (index: INTEGER; dwHelpContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetMops* (index: INTEGER; bstrMops: WinOle.BSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) SetTypeIdldesc* (IN [nil] pIdlDesc: IDLDESC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo) LayOut* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) DeleteFuncDesc* (index: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) DeleteFuncDescByMemId* (memid: MEMBERID; invKind: INVOKEKIND): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) DeleteVarDesc* (index: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) DeleteVarDescByMemId* (memid: MEMBERID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) DeleteImplType* (index: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetCustData* (IN [nil] guid: COM.GUID; IN [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetFuncCustData* (index: INTEGER; IN [nil] guid: COM.GUID; IN [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetParamCustData* (indexFunc: INTEGER; indexParam: INTEGER; IN [nil] guid: COM.GUID; IN [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetVarCustData* (index: INTEGER; IN [nil] guid: COM.GUID; IN [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetImplTypeCustData* (index: INTEGER; IN [nil] guid: COM.GUID; IN [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetHelpStringContext* (dwHelpStringContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetFuncHelpStringContext* (index: INTEGER; dwHelpStringContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeInfo2) SetVarHelpStringContext* (index: INTEGER; dwHelpStringContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) CreateTypeInfo* (szName: WinApi.PtrWSTR; tkind: TYPEKIND; OUT [nil] ppCTInfo: ICreateTypeInfo): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetName* (szName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetVersion* (wMajorVerNum: SHORTINT; wMinorVerNum: SHORTINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetGuid* (IN [nil] guid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetDocString* (szDoc: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetHelpFileName* (szHelpFileName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetHelpContext* (dwHelpContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetLcid* (lcid: WinOle.LCID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SetLibFlags* (uLibFlags: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib) SaveAllChanges* (): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib2) DeleteTypeInfo* (szName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib2) SetCustData* (IN [nil] guid: COM.GUID; IN [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateTypeLib2) SetHelpStringContext* (dwHelpStringContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDispatch) GetTypeInfoCount* (OUT [nil] pctinfo: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDispatch) GetTypeInfo* (iTInfo: INTEGER; lcid: WinOle.LCID; OUT [nil] ppTInfo: ITypeInfo): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDispatch) GetIDsOfNames* (IN [nil] riid: COM.GUID; IN [nil] rgszNames: WinApi.PtrWSTR; cNames: INTEGER; lcid: WinOle.LCID; OUT [nil] rgDispId: DISPID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IDispatch) Invoke* (dispIdMember: DISPID; IN riid: COM.GUID; lcid: WinOle.LCID; wFlags: SHORTINT; VAR [nil] pDispParams: DISPPARAMS; OUT [nil] pVarResult: VARIANT; OUT [nil] pExcepInfo: EXCEPINFO; OUT [nil] puArgErr: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IEnumVARIANT) Next* (celt: INTEGER; OUT rgVar: ARRAY [untagged]  OF VARIANT; OUT [nil] pCeltFetched: INTEGER): COM.RESULT, NEW, ABSTRACT;

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

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

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

	PROCEDURE (this: ITypeComp) Bind* (szName: WinApi.PtrWSTR; lHashVal: INTEGER; fFlags: SHORTINT; OUT [nil] ppTInfo: ITypeInfo; OUT [nil] pDescKind: DESCKIND; OUT [nil] pBindPtr: BINDPTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeComp) BindType* (szName: WinApi.PtrWSTR; lHashVal: INTEGER; OUT [nil] ppTInfo: ITypeInfo; OUT [nil] ppTComp: ITypeComp): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetTypeAttr* (OUT [nil] ppTypeAttr: PtrTYPEATTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetTypeComp* (OUT [nil] ppTComp: ITypeComp): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetFuncDesc* (index: INTEGER; OUT [nil] ppFuncDesc: PtrFUNCDESC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetVarDesc* (index: INTEGER; OUT [nil] ppVarDesc: PtrVARDESC): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetNames* (memid: MEMBERID; OUT [nil] rgBstrNames: WinOle.BSTR; cMaxNames: INTEGER; OUT [nil] pcNames: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetRefTypeOfImplType* (index: INTEGER; OUT [nil] pRefType: HREFTYPE): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetImplTypeFlags* (index: INTEGER; OUT [nil] pImplTypeFlags: SET): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetIDsOfNames* (IN [nil] ppNames: WinApi.PtrWSTR; cNames: INTEGER; OUT [nil] pMemId: MEMBERID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) Invoke* (pvInstance: WinApi.PtrVoid; memid: MEMBERID; wFlags: SHORTINT; IN [nil] pDispParams: DISPPARAMS; OUT [nil] pVarResult: VARIANT; OUT [nil] pExcepInfo: EXCEPINFO; OUT [nil] puArgErr: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetDocumentation* (memid: MEMBERID; OUT [nil] pBstrName: WinOle.BSTR; OUT [nil] pBstrDocString: WinOle.BSTR; OUT [nil] pdwHelpContext: INTEGER; OUT [nil] pBstrHelpFile: WinOle.BSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetDllEntry* (memid: MEMBERID; invKind: INVOKEKIND; OUT [nil] pBstrDllName: WinOle.BSTR; OUT [nil] pBstrName: WinOle.BSTR; OUT [nil] pwOrdinal: SHORTINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetRefTypeInfo* (hRefType: HREFTYPE; OUT [nil] ppTInfo: ITypeInfo): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) AddressOfMember* (memid: MEMBERID; invKind: INVOKEKIND; OUT [nil] ppv: WinApi.PtrVoid): COM.RESULT, NEW, ABSTRACT;

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

	PROCEDURE (this: ITypeInfo) GetMops* (memid: MEMBERID; OUT [nil] pBstrMops: WinOle.BSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) GetContainingTypeLib* (OUT [nil] ppTLib: ITypeLib; OUT [nil] pIndex: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) ReleaseTypeAttr* (pTypeAttr: PtrTYPEATTR), NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) ReleaseFuncDesc* (pFuncDesc: PtrFUNCDESC), NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo) ReleaseVarDesc* (pVarDesc: PtrVARDESC), NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetTypeKind* (OUT [nil] pTypeKind: TYPEKIND): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetTypeFlags* (OUT [nil] pTypeFlags: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetFuncIndexOfMemId* (memid: MEMBERID; invKind: INVOKEKIND; OUT [nil] pFuncIndex: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetVarIndexOfMemId* (memid: MEMBERID; OUT [nil] pVarIndex: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetCustData* (IN [nil] guid: COM.GUID; OUT [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetFuncCustData* (index: INTEGER; IN [nil] guid: COM.GUID; OUT [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetParamCustData* (indexFunc: INTEGER; indexParam: INTEGER; IN [nil] guid: COM.GUID; OUT [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetVarCustData* (index: INTEGER; IN [nil] guid: COM.GUID; OUT [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetImplTypeCustData* (index: INTEGER; IN [nil] guid: COM.GUID; OUT [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeInfo2) GetHelpStringContext* (memid: MEMBERID; OUT [nil] pHelpStringContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) GetTypeInfoCount* (): INTEGER, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) GetTypeInfo* (index: INTEGER; OUT [nil] ppTInfo: ITypeInfo): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) GetTypeInfoType* (index: INTEGER; OUT [nil] pTKind: TYPEKIND): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) GetTypeInfoOfGuid* (IN [nil] guid: COM.GUID; OUT [nil] ppTinfo: ITypeInfo): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) GetLibAttr* (OUT [nil] ppTLibAttr: PtrTLIBATTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) GetTypeComp* (OUT [nil] ppTComp: ITypeComp): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) GetDocumentation* (index: INTEGER; OUT [nil] pBstrName: WinOle.BSTR; OUT [nil] pBstrDocString: WinOle.BSTR; OUT [nil] pdwHelpContext: INTEGER; OUT [nil] pBstrHelpFile: WinOle.BSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) IsName* (szNameBuf: WinApi.PtrWSTR; lHashVal: INTEGER; OUT [nil] pfName: WinApi.BOOL): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) FindName* (szNameBuf: WinApi.PtrWSTR; lHashVal: INTEGER; OUT [nil] ppTInfo: ITypeInfo; OUT [nil] rgMemId: MEMBERID; VAR [nil] pcFound: SHORTINT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib) ReleaseTLibAttr* (pTLibAttr: PtrTLIBATTR), NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib2) GetCustData* (IN [nil] guid: COM.GUID; OUT [nil] pVarVal: VARIANT): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib2) GetLibStatistics* (OUT [nil] pcUniqueNames: INTEGER; OUT [nil] pcchUniqueNames: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeLib2) GetHelpStringContext* (index: INTEGER; OUT [nil] pHelpStringContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeChangeEvents) RequestTypeChange* (changeKind: CHANGEKIND; pTInfoBefore: ITypeInfo; pStrName: WinApi.PtrWSTR; OUT [nil] pfCancel: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ITypeChangeEvents) AfterTypeChange* (changeKind: CHANGEKIND; pTInfoAfter: ITypeInfo; pStrName: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IErrorInfo) GetGUID* (OUT [nil] pGUID: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IErrorInfo) GetSource* (OUT [nil] pBstrSource: WinOle.BSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IErrorInfo) GetDescription* (OUT [nil] pBstrDescription: WinOle.BSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IErrorInfo) GetHelpFile* (OUT [nil] pBstrHelpFile: WinOle.BSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: IErrorInfo) GetHelpContext* (OUT [nil] pdwHelpContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateErrorInfo) SetGUID* (IN [nil] rguid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateErrorInfo) SetSource* (szSource: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateErrorInfo) SetDescription* (szDescription: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateErrorInfo) SetHelpFile* (szHelpFile: WinApi.PtrWSTR): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ICreateErrorInfo) SetHelpContext* (dwHelpContext: INTEGER): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE (this: ISupportErrorInfo) InterfaceSupportsErrorInfo* (IN [nil] riid: COM.GUID): COM.RESULT, NEW, ABSTRACT;

	PROCEDURE SysAllocString* (p0: WinApi.PtrWSTR): WinOle.BSTR;

	PROCEDURE SysReAllocString* (VAR [nil] p0: WinOle.BSTR; p1: WinApi.PtrWSTR): INTEGER;

	PROCEDURE SysAllocStringLen* (p0: WinApi.PtrWSTR; p1: INTEGER): WinOle.BSTR;

	PROCEDURE SysReAllocStringLen* (VAR [nil] p0: WinOle.BSTR; p1: WinApi.PtrWSTR; p2: INTEGER): INTEGER;

	PROCEDURE SysFreeString* (p0: WinOle.BSTR);

	PROCEDURE SysStringLen* (p0: WinOle.BSTR): INTEGER;

	PROCEDURE SysStringByteLen* (bstr: WinOle.BSTR): INTEGER;

	PROCEDURE SysAllocStringByteLen* (psz: WinApi.PtrSTR; len: INTEGER): WinOle.BSTR;

	PROCEDURE DosDateTimeToVariantTime* (wDosDate: SHORTINT; wDosTime: SHORTINT; VAR [nil] pvtime: REAL): INTEGER;

	PROCEDURE VariantTimeToDosDateTime* (vtime: REAL; VAR [nil] pwDosDate: SHORTINT; VAR [nil] pwDosTime: SHORTINT): INTEGER;

	PROCEDURE SafeArrayAllocDescriptor* (cDims: INTEGER; VAR [nil] ppsaOut: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayAllocData* (psa: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayCreate* (vt: WinOle.VARTYPE; cDims: INTEGER; VAR [nil] rgsabound: SAFEARRAYBOUND): PtrSAFEARRAY;

	PROCEDURE SafeArrayDestroyDescriptor* (psa: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayDestroyData* (psa: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayDestroy* (psa: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayRedim* (psa: PtrSAFEARRAY; VAR [nil] psaboundNew: SAFEARRAYBOUND): COM.RESULT;

	PROCEDURE SafeArrayGetDim* (psa: PtrSAFEARRAY): INTEGER;

	PROCEDURE SafeArrayGetElemsize* (psa: PtrSAFEARRAY): INTEGER;

	PROCEDURE SafeArrayGetUBound* (psa: PtrSAFEARRAY; nDim: INTEGER; VAR [nil] plUbound: INTEGER): COM.RESULT;

	PROCEDURE SafeArrayGetLBound* (psa: PtrSAFEARRAY; nDim: INTEGER; VAR [nil] plLbound: INTEGER): COM.RESULT;

	PROCEDURE SafeArrayLock* (psa: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayUnlock* (psa: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayAccessData* (psa: PtrSAFEARRAY; VAR [nil] ppvData: WinApi.PtrVoid): COM.RESULT;

	PROCEDURE SafeArrayUnaccessData* (psa: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayGetElement* (psa: PtrSAFEARRAY; VAR [nil] rgIndices: INTEGER; pv: WinApi.PtrVoid): COM.RESULT;

	PROCEDURE SafeArrayPutElement* (psa: PtrSAFEARRAY; VAR [nil] rgIndices: INTEGER; pv: WinApi.PtrVoid): COM.RESULT;

	PROCEDURE SafeArrayCopy* (psa: PtrSAFEARRAY; VAR [nil] ppsaOut: PtrSAFEARRAY): COM.RESULT;

	PROCEDURE SafeArrayPtrOfIndex* (psa: PtrSAFEARRAY; VAR [nil] rgIndices: INTEGER; VAR [nil] ppvData: WinApi.PtrVoid): COM.RESULT;

	PROCEDURE VariantInit* (VAR [nil] pvarg: VARIANTARG);

	PROCEDURE VariantClear* (VAR [nil] pvarg: VARIANTARG): COM.RESULT;

	PROCEDURE VariantCopy* (VAR [nil] pvargDest: VARIANTARG; VAR [nil] pvargSrc: VARIANTARG): COM.RESULT;

	PROCEDURE VariantCopyInd* (VAR [nil] pvarDest: VARIANT; VAR [nil] pvargSrc: VARIANTARG): COM.RESULT;

	PROCEDURE VariantChangeType* (VAR [nil] pvargDest: VARIANTARG; VAR [nil] pvarSrc: VARIANTARG; wFlags: SHORTINT; vt: WinOle.VARTYPE): COM.RESULT;

	PROCEDURE VariantChangeTypeEx* (VAR [nil] pvargDest: VARIANTARG; VAR [nil] pvarSrc: VARIANTARG; lcid: WinOle.LCID; wFlags: SHORTINT; vt: WinOle.VARTYPE): COM.RESULT;

	PROCEDURE VarUI1FromI2* (sIn: SHORTINT; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromI4* (lIn: INTEGER; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromR4* (fltIn: SHORTREAL; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromR8* (dblIn: REAL; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromCy* (cyIn: WinApi.CY; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromDate* (dateIn: WinApi.DATE; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarUI1FromBool* (boolIn: WinOle.VARIANT_BOOL; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarI2FromUI1* (bIn: SHORTCHAR; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromI4* (lIn: INTEGER; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromR4* (fltIn: SHORTREAL; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromR8* (dblIn: REAL; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromCy* (cyIn: WinApi.CY; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromDate* (dateIn: WinApi.DATE; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI2FromBool* (boolIn: WinOle.VARIANT_BOOL; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarI4FromUI1* (bIn: SHORTCHAR; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromI2* (sIn: SHORTINT; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromR4* (fltIn: SHORTREAL; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromR8* (dblIn: REAL; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromCy* (cyIn: WinApi.CY; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromDate* (dateIn: WinApi.DATE; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarI4FromBool* (boolIn: WinOle.VARIANT_BOOL; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarR4FromUI1* (bIn: SHORTCHAR; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromI2* (sIn: SHORTINT; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromI4* (lIn: INTEGER; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromR8* (dblIn: REAL; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromCy* (cyIn: WinApi.CY; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromDate* (dateIn: WinApi.DATE; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR4FromBool* (boolIn: WinOle.VARIANT_BOOL; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR8FromUI1* (bIn: SHORTCHAR; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromI2* (sIn: SHORTINT; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromI4* (lIn: INTEGER; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromR4* (fltIn: SHORTREAL; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromCy* (cyIn: WinApi.CY; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromDate* (dateIn: WinApi.DATE; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarR8FromBool* (boolIn: WinOle.VARIANT_BOOL; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarDateFromUI1* (bIn: SHORTCHAR; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromI2* (sIn: SHORTINT; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromI4* (lIn: INTEGER; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromR4* (fltIn: SHORTREAL; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromR8* (dblIn: REAL; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromCy* (cyIn: WinApi.CY; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarDateFromBool* (boolIn: WinOle.VARIANT_BOOL; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarCyFromUI1* (bIn: SHORTCHAR; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromI2* (sIn: SHORTINT; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromI4* (lIn: INTEGER; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromR4* (fltIn: SHORTREAL; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromR8* (dblIn: REAL; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromDate* (dateIn: WinApi.DATE; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarCyFromBool* (boolIn: WinOle.VARIANT_BOOL; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarBstrFromUI1* (bVal: SHORTCHAR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromI2* (iVal: SHORTINT; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromI4* (lIn: INTEGER; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromR4* (fltIn: SHORTREAL; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromR8* (dblIn: REAL; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromCy* (cyIn: WinApi.CY; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromDate* (dateIn: WinApi.DATE; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBstrFromBool* (boolIn: WinOle.VARIANT_BOOL; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBoolFromUI1* (bIn: SHORTCHAR; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromI2* (sIn: SHORTINT; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromI4* (lIn: INTEGER; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromR4* (fltIn: SHORTREAL; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromR8* (dblIn: REAL; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromDate* (dateIn: WinApi.DATE; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromCy* (cyIn: WinApi.CY; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromStr* (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarBoolFromDisp* (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarUI1FromInt* ["VarUI1FromI4"] (lIn: INTEGER; VAR [nil] pbOut: SHORTCHAR): COM.RESULT;

	PROCEDURE VarI2FromInt* ["VarI2FromI4"] (lIn: INTEGER; VAR [nil] psOut: SHORTINT): COM.RESULT;

	PROCEDURE VarR4FromInt* ["VarR4FromI4"] (lIn: INTEGER; VAR [nil] pfltOut: SHORTREAL): COM.RESULT;

	PROCEDURE VarR8FromInt* ["VarR8FromI4"] (lIn: INTEGER; VAR [nil] pdblOut: REAL): COM.RESULT;

	PROCEDURE VarDateFromInt* ["VarDateFromI4"] (lIn: INTEGER; VAR [nil] pdateOut: WinApi.DATE): COM.RESULT;

	PROCEDURE VarCyFromInt* ["VarCyFromI4"] (lIn: INTEGER; VAR [nil] pcyOut: WinApi.CY): COM.RESULT;

	PROCEDURE VarBstrFromInt* ["VarBstrFromI4"] (lIn: INTEGER; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] pbstrOut: WinOle.BSTR): COM.RESULT;

	PROCEDURE VarBoolFromInt* ["VarBoolFromI4"] (lIn: INTEGER; VAR [nil] pboolOut: WinOle.VARIANT_BOOL): COM.RESULT;

	PROCEDURE VarIntFromUI1* ["VarI4FromUI1"] (bIn: SHORTCHAR; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromI2* ["VarI4FromI2"] (sIn: SHORTINT; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromR4* ["VarI4FromR4"] (fltIn: SHORTREAL; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromR8* ["VarI4FromR8"] (dblIn: REAL; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromDate* ["VarI4FromDate"] (dateIn: WinApi.DATE; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromCy* ["VarI4FromCy"] (cyIn: WinApi.CY; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromStr* ["VarI4FromStr"] (strIn: WinApi.PtrWSTR; lcid: WinOle.LCID; dwFlags: SET; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromDisp* ["VarI4FromDisp"] (pdispIn: IDispatch; lcid: WinOle.LCID; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE VarIntFromBool* ["VarI4FromBool"] (boolIn: WinOle.VARIANT_BOOL; VAR [nil] plOut: INTEGER): COM.RESULT;

	PROCEDURE LHashValOfNameSysA* (syskind: SYSKIND; lcid: WinOle.LCID; szName: WinApi.PtrSTR): INTEGER;

	PROCEDURE LHashValOfNameSys* (syskind: SYSKIND; lcid: WinOle.LCID; szName: WinApi.PtrWSTR): INTEGER;

	PROCEDURE LoadTypeLib* (szFile: WinApi.PtrWSTR; VAR [nil] pptlib: ITypeLib): COM.RESULT;

	PROCEDURE LoadRegTypeLib* (IN [nil] rguid: COM.GUID; wVerMajor: SHORTINT; wVerMinor: SHORTINT; lcid: WinOle.LCID; VAR [nil] pptlib: ITypeLib): COM.RESULT;

	PROCEDURE QueryPathOfRegTypeLib* (IN [nil] guid: COM.GUID; wMaj: SHORTINT; wMin: SHORTINT; lcid: WinOle.LCID; VAR [nil] lpbstrPathName: WinOle.BSTR): COM.RESULT;

	PROCEDURE RegisterTypeLib* (ptlib: ITypeLib; szFullPath: WinApi.PtrWSTR; szHelpDir: WinApi.PtrWSTR): COM.RESULT;

	PROCEDURE CreateTypeLib* (syskind: SYSKIND; szFile: WinApi.PtrWSTR; VAR [nil] ppctlib: ICreateTypeLib): COM.RESULT;

	PROCEDURE DispGetParam* (VAR [nil] pdispparams: DISPPARAMS; position: INTEGER; vtTarg: WinOle.VARTYPE; VAR [nil] pvarResult: VARIANT; VAR [nil] puArgErr: INTEGER): COM.RESULT;

	PROCEDURE DispGetIDsOfNames* (ptinfo: ITypeInfo; VAR [nil] rgszNames: WinApi.PtrWSTR; cNames: INTEGER; VAR [nil] rgdispid: DISPID): COM.RESULT;

	PROCEDURE DispInvoke* (_this: WinApi.PtrVoid; ptinfo: ITypeInfo; dispidMember: DISPID; wFlags: SHORTINT; VAR [nil] pparams: DISPPARAMS; VAR [nil] pvarResult: VARIANT; VAR [nil] pexcepinfo: EXCEPINFO; VAR [nil] puArgErr: INTEGER): COM.RESULT;

	PROCEDURE CreateDispTypeInfo* (VAR [nil] pidata: INTERFACEDATA; lcid: WinOle.LCID; VAR [nil] pptinfo: ITypeInfo): COM.RESULT;

	PROCEDURE CreateStdDispatch* (punkOuter: COM.IUnknown; pvThis: WinApi.PtrVoid; ptinfo: ITypeInfo; VAR [nil] ppunkStdDisp: COM.IUnknown): COM.RESULT;

	PROCEDURE RegisterActiveObject* (punk: COM.IUnknown; IN [nil] rclsid: COM.GUID; dwFlags: SET; VAR [nil] pdwRegister: INTEGER): COM.RESULT;

	PROCEDURE RevokeActiveObject* (dwRegister: INTEGER; pvReserved: WinApi.PtrVoid): COM.RESULT;

	PROCEDURE GetActiveObject* (IN [nil] rclsid: COM.GUID; pvReserved: WinApi.PtrVoid; VAR [nil] ppunk: COM.IUnknown): COM.RESULT;

	PROCEDURE SetErrorInfo* (dwReserved: INTEGER; perrinfo: IErrorInfo): COM.RESULT;

	PROCEDURE GetErrorInfo* (dwReserved: INTEGER; VAR [nil] pperrinfo: IErrorInfo): COM.RESULT;

	PROCEDURE CreateErrorInfo* (VAR [nil] pperrinfo: ICreateErrorInfo): COM.RESULT;

	PROCEDURE OaBuildVersion* (): INTEGER;


	(* manually added procedures *)
	
	PROCEDURE VariantTimeToSystemTime* (variantTime: REAL; VAR [nil] systemTime: WinApi.SYSTEMTIME): INTEGER;

	PROCEDURE SystemTimeToVariantTime* (VAR [nil] systemTime: WinApi.SYSTEMTIME; VAR [nil] variantTime: REAL): INTEGER;
	
END WinOleAut.
