Index: Include/OAIdl.ab
===================================================================
--- Include/OAIdl.ab	(revision 200)
+++ Include/OAIdl.ab	(revision 211)
@@ -86,9 +86,4 @@
 
 TypeDef DATE = Double ' WTypes.ab
-
-Interface IRecordInfo
-	Inherits IUnknown
-End Interface
-
 
 /* interface IOleAutomationTypes */
@@ -1567,6 +1562,4 @@
 
 
-#ifdef __UNDECLARED__
-
 #ifndef __ITypeLib2_INTERFACE_DEFINED__
 #define __ITypeLib2_INTERFACE_DEFINED__
@@ -1575,32 +1568,26 @@
 /* [unique][uuid][object] */
 
-TypeDef /* [unique] */ ITypeLib2 *LPTYPELIB2;
-
-
-EXTERN_C const IID IID_ITypeLib2;
-
-    MIDL_INTERFACE("00020411-0000-0000-C000-000000000046")
-    ITypeLib2 : public ITypeLib
-    {
-    public:
-        Function GetCustData(
-            /* [in] */ REFGUID guid,
-            /* [out] */ VARIANT *pVarVal) As HRESULT
-
-        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetLibStatistics(
-            /* [out] */ ULONG *pcUniqueNames,
-            /* [out] */ ULONG *pcchUniqueNames) As HRESULT
-
-        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDocumentation2(
-            /* [in] */ INT index,
-            /* [in] */ LCID lcid,
-            /* [out] */ BSTR *pbstrHelpString,
-            /* [out] */ DWORD *pdwHelpStringContext,
-            /* [out] */ BSTR *pbstrHelpStringDll) As HRESULT
-
-        Function GetAllCustData(
-            /* [out] */ CUSTDATA *pCustData) As HRESULT
-
-    };
+TypeDef LPTYPELIB2 = /* [unique] */ *ITypeLib2
+
+Dim IID_ITypeLib2 = [&h00020411, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+
+Interface ITypeLib2
+	Inherits ITypeLib
+
+	Function GetCustData(
+		/* [in] */ ByRef guid As GUID,
+		/* [out] */ ByRef VarVal As VARIANT) As HRESULT
+	/* [local] */ Function GetLibStatistics(
+		/* [out] */ ByRef cUniqueNames As DWord,
+		/* [out] */ ByRef chUniqueNames As DWord) As HRESULT
+	/* [local] */ Function GetDocumentation2(
+            /* [in] */ index As Long,
+            /* [in] */ lcid As LCID,
+            /* [out] */ ByRef bstrHelpString As BSTR,
+            /* [out] */ ByRef dwHelpStringContext As DWord,
+            /* [out] */ ByRef bstrHelpStringDll As BSTR) As HRESULT
+	Function GetAllCustData(
+		/* [out] */ ByRef CustData As CUSTDATA) As HRESULT
+End Interface
 
 #endif 	/* __ITypeLib2_INTERFACE_DEFINED__ */
@@ -1613,36 +1600,32 @@
 /* [local][unique][uuid][object] */
 
-TypeDef /* [unique] */ ITypeChangeEvents *LPTYPECHANGEEVENTS;
+TypeDef LPTYPECHANGEEVENTS = /* [unique] */ *ITypeChangeEvents
 
 Enum CHANGEKIND
-	CHANGEKIND_ADDMEMBER = 0,
-	CHANGEKIND_DELETEMEMBER = CHANGEKIND_ADDMEMBER + 1,
-	CHANGEKIND_SETNAMES = CHANGEKIND_DELETEMEMBER + 1,
-	CHANGEKIND_SETDOCUMENTATION = CHANGEKIND_SETNAMES + 1,
-	CHANGEKIND_GENERAL = CHANGEKIND_SETDOCUMENTATION + 1,
-	CHANGEKIND_INVALIDATE = CHANGEKIND_GENERAL + 1,
-	CHANGEKIND_CHANGEFAILED = CHANGEKIND_INVALIDATE + 1,
-	CHANGEKIND_MAX = CHANGEKIND_CHANGEFAILED + 1
+	CHANGEKIND_ADDMEMBER = 0
+	CHANGEKIND_DELETEMEMBER = 1
+	CHANGEKIND_SETNAMES = 2
+	CHANGEKIND_SETDOCUMENTATION = 3
+	CHANGEKIND_GENERAL = 4
+	CHANGEKIND_INVALIDATE = 5
+	CHANGEKIND_CHANGEFAILED = 6
+	CHANGEKIND_MAX = 7
 End Enum
 
-
-EXTERN_C const IID IID_ITypeChangeEvents;
-
-    MIDL_INTERFACE("00020410-0000-0000-C000-000000000046")
-    ITypeChangeEvents : public IUnknown
-    {
-    public:
-        Function RequestTypeChange(
-            /* [in] */ CHANGEKIND changeKind,
-            /* [in] */ ITypeInfo *pTInfoBefore,
-            /* [in] */ LPOLESTR pStrName,
-            /* [out] */ INT *pfCancel) As HRESULT
-
-        Function AfterTypeChange(
-            /* [in] */ CHANGEKIND changeKind,
-            /* [in] */ ITypeInfo *pTInfoAfter,
-            /* [in] */ LPOLESTR pStrName) As HRESULT
-
-    };
+Dim IID_ITypeChangeEvents = [&h00020410, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+
+Interface ITypeChangeEvents
+	Inherits IUnknown
+
+	Function RequestTypeChange(
+		/* [in] */ changeKind As CHANGEKIND,
+		/* [in] */ pTInfoBefore As ITypeInfo,
+		/* [in] */ pStrName As LPOLESTR,
+		/* [out] */ ByRef fCancel As Long) As HRESULT
+	Function AfterTypeChange(
+		/* [in] */ changeKind As CHANGEKIND,
+		/* [in] */ pTInfoAfter As *ITypeInfo,
+		/* [in] */ pStrName As LPOLESTR) As HRESULT
+End Interface
 
 #endif 	/* __ITypeChangeEvents_INTERFACE_DEFINED__ */
@@ -1655,29 +1638,22 @@
 /* [unique][uuid][object] */
 
-TypeDef /* [unique] */ IErrorInfo *LPERRORINFO;
-
-
-EXTERN_C const IID IID_IErrorInfo;
-
-    MIDL_INTERFACE("1CF2B120-547D-101B-8E65-08002B2BD119")
-    IErrorInfo : public IUnknown
-    {
-    public:
-        Function GetGUID(
-            /* [out] */ GUID *pGUID) As HRESULT
-
-        Function GetSource(
-            /* [out] */ BSTR *pBstrSource) As HRESULT
-
-        Function GetDescription(
-            /* [out] */ BSTR *pBstrDescription) As HRESULT
-
-        Function GetHelpFile(
-            /* [out] */ BSTR *pBstrHelpFile) As HRESULT
-
-        Function GetHelpContext(
-            /* [out] */ DWORD *pdwHelpContext) As HRESULT
-
-    };
+TypeDef LPERRORINFO = /* [unique] */ *IErrorInfo
+
+Dim IID_IErrorInfo = [&h1CF2B120, &h547D, &h101B, [&h8E, &h65, &h08, &h00, &h2B, &h2B, &hD1, &h19]] As IID
+
+Interface IErrorInfo
+	Inherits IUnknown
+
+	Function GetGUID(
+		/* [out] */ ByRef guid As GUID) As HRESULT
+	Function GetSource(
+		/* [out] */ ByRef BstrSource As BSTR) As HRESULT
+	Function GetDescription(
+		/* [out] */ ByRef BstrDescription As BSTR) As HRESULT
+	Function GetHelpFile(
+		/* [out] */ ByRef BstrHelpFile As BSTR) As HRESULT
+	Function GetHelpContext(
+		/* [out] */ ByRef dwHelpContext As DWord) As HRESULT
+End Interface
 
 #endif 	/* __IErrorInfo_INTERFACE_DEFINED__ */
@@ -1690,29 +1666,22 @@
 /* [unique][uuid][object] */
 
-TypeDef /* [unique] */ ICreateErrorInfo *LPCREATEERRORINFO;
-
-
-EXTERN_C const IID IID_ICreateErrorInfo;
-
-    MIDL_INTERFACE("22F03340-547D-101B-8E65-08002B2BD119")
-    ICreateErrorInfo : public IUnknown
-    {
-    public:
-        Function SetGUID(
-            /* [in] */ REFGUID rguid) As HRESULT
-
-        Function SetSource(
-            /* [in] */ LPOLESTR szSource) As HRESULT
-
-        Function SetDescription(
-            /* [in] */ LPOLESTR szDescription) As HRESULT
-
-        Function SetHelpFile(
-            /* [in] */ LPOLESTR szHelpFile) As HRESULT
-
-        Function SetHelpContext(
-            /* [in] */ DWORD dwHelpContext) As HRESULT
-
-    };
+TypeDef LPCREATEERRORINFO = /* [unique] */ *ICreateErrorInfo
+
+Dim IID_ICreateErrorInfo = [&h22F03340, &h547D, &h101B, [&h8E, &h65, &h08, &h00, &h2B, &h2B, &hD1, &h19]] As IID
+
+Interface ICreateErrorInfo
+	Inherits IUnknown
+
+	Function SetGUID(
+		/* [in] */ ByRef rguid As GUID) As HRESULT
+	Function SetSource(
+		/* [in] */ szSource As LPOLESTR) As HRESULT
+	Function SetDescription(
+		/* [in] */ szDescription As LPOLESTR) As HRESULT
+	Function SetHelpFile(
+		/* [in] */ szHelpFile As LPOLESTR) As HRESULT
+	Function SetHelpContext(
+		/* [in] */ dwHelpContext As DWord) As HRESULT
+End Interface
 
 #endif 	/* __ICreateErrorInfo_INTERFACE_DEFINED__ */
@@ -1725,17 +1694,14 @@
 /* [unique][uuid][object] */
 
-TypeDef /* [unique] */ ISupportErrorInfo *LPSUPPORTERRORINFO;
-
-
-EXTERN_C const IID IID_ISupportErrorInfo;
-
-    MIDL_INTERFACE("DF0B3D60-548F-101B-8E65-08002B2BD119")
-    ISupportErrorInfo : public IUnknown
-    {
-    public:
-        Function InterfaceSupportsErrorInfo(
-            /* [in] */ REFIID riid) As HRESULT
-
-    };
+TypeDef LPSUPPORTERRORINFO = /* [unique] */ *ISupportErrorInfo
+
+Dim IID_ISupportErrorInfo = [&hDF0B3D60, &h548F, &h101B, [&h8E, &h65, &h08, &h00, &h2B, &h2B, &hD1, &h19]] As IID
+
+Interface ISupportErrorInfo
+	Inherits IUnknown
+
+	Function InterfaceSupportsErrorInfo(
+		/* [in] */ ByRef riid As IID) As HRESULT
+End Interface
 
 #endif 	/* __ISupportErrorInfo_INTERFACE_DEFINED__ */
@@ -1748,17 +1714,14 @@
 /* [uuid][object] */
 
-
-EXTERN_C const IID IID_ITypeFactory;
-
-    MIDL_INTERFACE("0000002E-0000-0000-C000-000000000046")
-    ITypeFactory : public IUnknown
-    {
-    public:
-        Function CreateFromTypeInfo(
-            /* [in] */ ITypeInfo *pTypeInfo,
-            /* [in] */ REFIID riid,
-            /* [iid_is][out] */ IUnknown **ppv) As HRESULT
-
-    };
+Dim IID_ITypeFactory = [&h0000002E, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+
+Interface ITypeFactory
+	Inherits IUnknown
+
+	Function CreateFromTypeInfo(
+		/* [in] */ pTypeInfo As *ITypeInfo,
+		/* [in] */ ByRef riid As IID,
+		/* [iid_is][out] */ ByRef pv As *IUnknown) As HRESULT
+End Interface
 
 #endif 	/* __ITypeFactory_INTERFACE_DEFINED__ */
@@ -1771,36 +1734,30 @@
 /* [uuid][object][local] */
 
-
-EXTERN_C const IID IID_ITypeMarshal;
-
-    MIDL_INTERFACE("0000002D-0000-0000-C000-000000000046")
-    ITypeMarshal : public IUnknown
-    {
-    public:
-        Function Size(
-            /* [in] */ PVOID pvType,
-            /* [in] */ DWORD dwDestContext,
-            /* [in] */ PVOID pvDestContext,
-            /* [out] */ ULONG *pSize) As HRESULT
-
-        Function Marshal(
-            /* [in] */ PVOID pvType,
-            /* [in] */ DWORD dwDestContext,
-            /* [in] */ PVOID pvDestContext,
-            /* [in] */ ULONG cbBufferLength,
-            /* [out] */ BYTE *pBuffer,
-            /* [out] */ ULONG *pcbWritten) As HRESULT
-
-        Function Unmarshal(
-            /* [out] */ PVOID pvType,
-            /* [in] */ DWORD dwFlags,
-            /* [in] */ ULONG cbBufferLength,
-            /* [in] */ BYTE *pBuffer,
-            /* [out] */ ULONG *pcbRead) As HRESULT
-
-        Function Free(
-            /* [in] */ PVOID pvType) As HRESULT
-
-    };
+Dim IID_ITypeMarshal = [&h0000002D, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+
+Interface ITypeMarshal
+	Inherits IUnknown
+
+	Function Size(
+		/* [in] */ pvType As VoidPtr,
+		/* [in] */ dwDestContext As DWord,
+		/* [in] */ pvDestContext As VoidPtr,
+		/* [out] */ ByRef Size As DWord) As HRESULT
+	Function Marshal(
+		/* [in] */ pvType As VoidPtr,
+		/* [in] */ dwDestContext As DWord,
+		/* [in] */ pvDestContext As VoidPtr,
+		/* [in] */ cbBufferLength As DWord,
+		/* [out] */ pBuffer As *Byte,
+		/* [out] */ ByRef cbWritten As DWord) As HRESULT
+	Function Unmarshal(
+		/* [out] */ pvType As VoidPtr,
+		/* [in] */ dwFlags As DWord,
+		/* [in] */ cbBufferLength As DWord,
+		/* [in] */ pBuffer As *Byte,
+		/* [out] */ ByRef cbRead As DWord) As HRESULT
+	Function Free(
+		/* [in] */ pvType As VoidPtr) As HRESULT
+End Interface
 
 #endif 	/* __ITypeMarshal_INTERFACE_DEFINED__ */
@@ -1813,79 +1770,59 @@
 /* [uuid][object][local] */
 
-TypeDef /* [unique] */ IRecordInfo *LPRECORDINFO;
-
-
-EXTERN_C const IID IID_IRecordInfo;
-
-    MIDL_INTERFACE("0000002F-0000-0000-C000-000000000046")
-    IRecordInfo : public IUnknown
-    {
-    public:
-        Function RecordInit(
-            /* [out] */ PVOID pvNew) As HRESULT
-
-        Function RecordClear(
-            /* [in] */ PVOID pvExisting) As HRESULT
-
-        Function RecordCopy(
-            /* [in] */ PVOID pvExisting,
-            /* [out] */ PVOID pvNew) As HRESULT
-
-        Function GetGuid(
-            /* [out] */ GUID *pguid) As HRESULT
-
-        Function GetName(
-            /* [out] */ BSTR *pbstrName) As HRESULT
-
-        Function GetSize(
-            /* [out] */ ULONG *pcbSize) As HRESULT
-
-        Function GetTypeInfo(
-            /* [out] */ ITypeInfo **ppTypeInfo) As HRESULT
-
-        Function GetField(
-            /* [in] */ PVOID pvData,
-            /* [in] */ LPCOLESTR szFieldName,
-            /* [out] */ VARIANT *pvarField) As HRESULT
-
-        Function GetFieldNoCopy(
-            /* [in] */ PVOID pvData,
-            /* [in] */ LPCOLESTR szFieldName,
-            /* [out] */ VARIANT *pvarField,
-            /* [out] */ PVOID *ppvDataCArray) As HRESULT
-
-        Function PutField(
-            /* [in] */ ULONG wFlags,
-            /* [out][in] */ PVOID pvData,
-            /* [in] */ LPCOLESTR szFieldName,
-            /* [in] */ VARIANT *pvarField) As HRESULT
-
-        Function PutFieldNoCopy(
-            /* [in] */ ULONG wFlags,
-            /* [out][in] */ PVOID pvData,
-            /* [in] */ LPCOLESTR szFieldName,
-            /* [in] */ VARIANT *pvarField) As HRESULT
-
-        Function GetFieldNames(
-            /* [out][in] */ ULONG *pcNames,
-            /* [length_is][size_is][out] */ BSTR *rgBstrNames) As HRESULT
-
-        virtual BOOL STDMETHODCALLTYPE IsMatchingType(
-            /* [in] */ IRecordInfo *pRecordInfo) As HRESULT
-
-        virtual PVOID STDMETHODCALLTYPE RecordCreate( void) As HRESULT
-
-        Function RecordCreateCopy(
-            /* [in] */ PVOID pvSource,
-            /* [out] */ PVOID *ppvDest) As HRESULT
-
-        Function RecordDestroy(
-            /* [in] */ PVOID pvRecord) As HRESULT
-
-    };
+TypeDef LPRECORDINFO = /* [unique] */ *IRecordInfo
+
+Dim IID_IRecordInfo = [&h0000002F, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+
+Interface IRecordInfo
+	Inherits IUnknown
+
+	Function RecordInit(
+		/* [out] */ pvNew As VoidPtr) As HRESULT
+	Function RecordClear(
+		/* [in] */ pvExisting As VoidPtr) As HRESULT
+	Function RecordCopy(
+		/* [in] */ pvExisting As VoidPtr,
+		/* [out] */ pvNew As VoidPtr) As HRESULT
+	Function GetGuid(
+		/* [out] */ ByRef guid As GUID) As HRESULT
+	Function GetName(
+		/* [out] */ ByRef bstrName As BSTR) As HRESULT
+	Function GetSize(
+		/* [out] */ ByRef cbSize As DWord) As HRESULT
+	Function GetTypeInfo(
+		/* [out] */ ByRef pTypeInfo As *ITypeInfo) As HRESULT
+	Function GetField(
+		/* [in] */ pvData As VoidPtr,
+		/* [in] */ szFieldName As LPCOLESTR,
+		/* [out] */ ByRef varField As VARIANT) As HRESULT
+	Function GetFieldNoCopy(
+		/* [in] */ pvData As VoidPtr,
+		/* [in] */ szFieldName As LPCOLESTR,
+		/* [out] */ ByRef varField As VARIANT,
+		/* [out] */ ByRef pvDataCArray As VoidPtr) As HRESULT
+	Function PutField(
+  		/* [in] */ wFlags As DWord,
+		/* [out][in] */ pvData As VoidPtr,
+		/* [in] */ szFieldName As LPCOLESTR,
+		/* [in] */ ByRef varField As VARIANT) As HRESULT
+	Function PutFieldNoCopy(
+  		/* [in] */ wFlags As DWord,
+		/* [out][in] */ pvData As VoidPtr,
+		/* [in] */ szFieldName As LPCOLESTR,
+		/* [in] */ ByRef varField As VARIANT) As HRESULT
+	Function GetFieldNames(
+		/* [out][in] */ ByRef cNames As DWord,
+		/* [length_is][size_is][out] */ rgBstrNames As *BSTR) As HRESULT
+	Function IsMatchingType(
+		/* [in] */ pRecordInfo As *IRecordInfo) As BOOL
+	Function RecordCreate() As VoidPtr
+	Function RecordCreateCopy(
+		/* [in] */ pvSource As VoidPtr,
+		/* [out] */ ByRef pvDest As VoidPtr) As HRESULT
+	Function RecordDestroy(
+		/* [in] */ pvRecord As VoidPtr) As HRESULT
+End Interface
 
 #endif 	/* __IRecordInfo_INTERFACE_DEFINED__ */
-
-#endif ' __UNDEFINED__
 
 
