Index: Include/objidl.sbp
===================================================================
--- Include/objidl.sbp	(revision 1)
+++ Include/objidl.sbp	(revision 160)
@@ -4,86 +4,459 @@
 TypeDef SNB = **OLECHAR
 
-Class ISequentialStream
-	Inherits IUnknown
-Public
-	Abstract Function Read(pv As VoidPtr, cb As DWord, pcbRead As *DWord) As HRESULT
-	Abstract Function Write(pv As VoidPtr, cb As DWord, pcbWritten As *DWord) As HRESULT
-End Class
-
-Class IStream
-	Inherits ISequentialStream
-Public
-	Abstract Function Seek(dlibMove_LowPart As DWord, dlibMove_HighPart As Long, dwOrigin As DWord, plibNewPosition As *ULARGE_INTEGER) As HRESULT
-	Abstract Function SetSize(libNewSize_LowPart As DWord, libNewSize_HighPart As DWord) As HRESULT
-	Abstract Function CopyTo(pstm As *IStream, cb_LowPart As DWord, cb_HighPart As DWord, pcbRead As *ULARGE_INTEGER, pcbWritten As *ULARGE_INTEGER) As HRESULT
-	Abstract Function Commit(grfCommitFlags As DWord) As HRESULT
-	Abstract Function Revert() As HRESULT
-	Abstract Function LockRegion(libOffset_LowPart As DWord, libOffset_HighPart As DWord, cb_LowPart As DWord, cb_HighPart As DWord, dwLockType As DWord) As HRESULT
-	Abstract Function UnlockRegion(libOffset_LowPart As DWord, libOffset_HighPart As DWord, cb_LowPart As DWord, cb_HighPart As DWord, dwLockType As DWord) As HRESULT
-	Abstract Function Stat(pstatstg As *STATSTG, grfStatFlag As DWord) As HRESULT
-	Abstract Function Clone(ByRef ppstm As *IStream) As HRESULT
-End Class
-TypeDef LPSTREAM = *IStream
-
-Interface IMessageFilter
-	Inherits IUnknown
-End Interface
-
-Interface IStorage
-	Inherits IUnknown
-End Interface
-
-Interface ILockBytes
-	Inherits IUnknown
-End Interface
-
-Interface IFillLockBytes
-	Inherits IUnknown
-End Interface
-
-Interface IMoniker
-	Inherits IUnknown
-End Interface
-
-Interface IBindCtx
-	Inherits IUnknown
-End Interface
-
-Interface IRunningObjectTable
-	Inherits IUnknown
-End Interface
-
-Interface IDataAdviseHolder
-	Inherits IUnknown
-End Interface
-
-Class IMalloc
-	Inherits IUnknown
-Public
-	Abstract Function Alloc(cb As SIZE_T) As VoidPtr
-	Abstract Function Realloc(pv As VoidPtr, cb As SIZE_T) As VoidPtr
-	Abstract Sub Free(pv As VoidPtr)
-	Abstract Function GetSize(pv As VoidPtr) As SIZE_T
-	Abstract Function DidAlloc(pv As VoidPtr) As Long
-	Abstract Sub HeapMinimize()
-End Class
-
-Class BIND_OPTS
-Public
+' IMarshal
+
+' IMarshal2
+
+Interface IMalloc
+	Inherits IUnknown
+
+	Function Alloc(cb As SIZE_T) As VoidPtr
+	Function Realloc(pv As VoidPtr, cb As SIZE_T) As VoidPtr
+	Sub Free(pv As VoidPtr)
+	Function GetSize(pv As VoidPtr) As SIZE_T
+	Function DidAlloc(pv As VoidPtr) As Long
+	Sub HeapMinimize()
+End Interface
+
+' IMallocSpy
+
+' IStdMarshalInfo
+
+' IExternalCennection
+
+' IMultiQI
+
+' AsyncIMultiQI
+
+' IInternalUnknown
+
+' IEnumUnknown
+
+Type BIND_OPTS
 	cbStruct As DWord
 	grfFlags As DWord
 	grfMode As DWord
 	dwTickCountDeadline As DWord
-End Class
-
-Class BIND_OPTS2
-	Inherits BIND_OPTS
-Public
+End Type
+
+Type BIND_OPTS2
+'	Inherits BIND_OPTS
+	cbStruct As DWord
+	grfFlags As DWord
+	grfMode As DWord
+	dwTickCountDeadline As DWord
+
 	dwTrackFlags As DWord
 	dwClassContext As DWord
 	locale As LCID
 	pServerInfo As *COSERVERINFO
-End Class
-
+End Type
+
+Interface IBindCtx
+	Inherits IUnknown
+End Interface
+
+' IEnumMoniker
+
+Interface IRunningObjectTable
+	Inherits IUnknown
+End Interface
+
+Dim IID_IPersist = [&h0000010c, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+Interface IPersist
+	Inherits IUnknown
+
+	Function GetClassID(
+		/* [out] */ ByRef ClassID As CLSID) As HRESULT
+End Interface
+
+Dim IID_IPersistStream = [&h00000109, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+Interface IPersistStream
+	Inherits IPersist
+
+	Function IsDirty() As HRESULT
+
+	Function Load(
+		/* [unique][in] */ pStm As *IStream) As HRESULT
+
+	Function Save(
+		/* [unique][in] */ pStm As *IStream,
+		/* [in] */ fClearDirty As BOOL) As HRESULT
+
+	Function GetSizeMax(
+		/* [out] */ ByRef cbSize As ULARGE_INTEGER) As HRESULT
+End Interface
+
+Interface IMoniker
+	Inherits IPersistStream
+End Interface
+
+' IEnumString
+
+Dim IID_ISequentialStream = [&h0c733a30, &h2a1c, &h11ce, [&had, &he5, &h00, &haa, &h00, &h44, &h77, &h3d]] As IID
+Interface ISequentialStream
+	Inherits IUnknown
+
+	Function Read(pv As VoidPtr, cb As DWord, pcbRead As *DWord) As HRESULT
+	Function Write(pv As VoidPtr, cb As DWord, pcbWritten As *DWord) As HRESULT
+End Interface
+
+Type STATSTG
+	pwcsName As LPOLESTR
+	type_ As DWord
+	cbSize As ULARGE_INTEGER
+	mtime As FILETIME
+	ctime As FILETIME
+	atime As FILETIME
+	grfMode As DWord
+	grfLocksSupported As DWord
+	clsid As CLSID
+	grfStateBits As DWord
+	reserved As DWord
+End Type
+
+Enum STGTY
+	STGTY_STORAGE = 1
+	STGTY_STREAM = 2
+	STGTY_LOCKBYTES = 3
+	STGTY_PROPERTY = 4
+End Enum
+
+Enum STREAM_SEEK
+	STREAM_SEEK_SET = 0
+	STREAM_SEEK_CUR = 1
+	STREAM_SEEK_END = 2
+End Enum
+
+Enum LOCKTYPE
+	LOCK_WRITE = 1
+	LOCK_EXCLUSIVE = 2
+	LOCK_ONLYONCE = 4
+End Enum
+
+Dim IID_IStream = [&h0000000c, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+Interface IStream
+	Inherits ISequentialStream
+
+	Function Seek(dlibMove As LARGE_INTEGER, dwOrigin As DWord, plibNewPosition As *ULARGE_INTEGER) As HRESULT
+	Function SetSize(libNewSize As ULARGE_INTEGER) As HRESULT
+	Function CopyTo(pstm As *IStream, cb As ULARGE_INTEGER, pcbRead As *ULARGE_INTEGER, pcbWritten As *ULARGE_INTEGER) As HRESULT
+	Function Commit(grfCommitFlags As DWord) As HRESULT
+	Function Revert() As HRESULT
+	Function LockRegion(libOffset As ULARGE_INTEGER, cb As ULARGE_INTEGER, dwLockType As DWord) As HRESULT
+	Function UnlockRegion(libOffset As ULARGE_INTEGER, cb As ULARGE_INTEGER, dwLockType As DWord) As HRESULT
+	Function Stat(pstatstg As *STATSTG, grfStatFlag As DWord) As HRESULT
+	Function Clone(ByRef ppstm As *IStream) As HRESULT
+End Interface
+TypeDef LPSTREAM = *IStream
+
+' IEnumSTATSTG
+
+Interface IStorage
+	Inherits IUnknown
+End Interface
+
+Interface IPersistFile
+	Inherits IPersist
+
+	Function IsDirty() As HRESULT
+
+	Function Load(
+		/* [in] */ pszFileName As LPCOLESTR,
+		/* [in] */ dwMode As DWord) As HRESULT
+
+	Function Save(
+		/* [unique][in] */ pszFileName As LPCOLESTR,
+		/* [in] */ fRemember As BOOL) As HRESULT
+
+	Function SaveCompleted(
+		/* [unique][in] */ pszFileName As LPCOLESTR) As HRESULT
+
+	Function GetCurFile(
+		/* [out] */ ByRef pszFileName As LPOLESTR) As HRESULT
+End Interface
+
+
+' IPersistStrage
+
+Interface ILockBytes
+	Inherits IUnknown
+End Interface
+
+Type DVTARGETDEVICE
+	tdSize As DWord
+	tdDriverNameOffset As Word
+	tdDeviceNameOffset As Word
+	tdPortNameOffset As Word
+	tdExtDevmodeOffset As Word
+	tdData[ELM(1)] As Byte
+End Type
+
+TypeDef CLIPFORMAT = Word
+TypeDef LPCLIPFORMAT = *CLIPFORMAT
+
+Type FORMATETC
+	cfFormat As CLIPFORMAT
+	ptd As *DVTARGETDEVICE
+	dwAspect As DWord
+	lindex As Long
+	tymed As DWord
+End Type
+
+TypeDef LPFORMATETC = *FORMATETC
+
+Interface IEnumFORMATETC
+	Inherits IUnknown
+End Interface
+
+Interface IEnumSTATDATA
+	Inherits IUnknown
+End Interface
+
+' IRootStorage
+
+Enum /*[transmit_as(long)]*/ TYMED
+	TYMED_HGLOBAL = 1
+	TYMED_FILE = 2
+	TYMED_ISTREAM = 4
+	TYMED_ISTORAGE = 8
+	TYMED_GDI = 16
+	TYMED_MFPICT = 32
+	TYMED_ENHMF = 64
+	TYMED_NULL = 0
+End Enum
+
+Type STGMEDIUM
+	tymed As DWord
+	data As VoidPtr
+'	/* [switch_type(DWORD), switch_is((DWORD) tymed)] */
+'	Union
+'		/*[case(TYMED_GDI)]*/      hBitmap As HBITMAP
+'		/*[case(TYMED_MFPICT)]*/   hMetaFilePict As HMETAFILEPICT
+'		/*[case(TYMED_ENHMF)]*/    hEnhMetaFile As HENHMETAFILE
+'		/*[case(TYMED_HGLOBAL)]*/  hGlobal As HGLOBAL
+'		/*[case(TYMED_FILE)]*/     lpszFileName As LPWSTR
+'		/*[case(TYMED_ISTREAM)]*/  pstm As *IStream
+'		/*[case(TYMED_ISTORAGE)]*/ pstg As *IStorage
+'		/*[default]*/
+'	End Union
+	/*[unique]*/ pUnkForRelease As *IUnknown
+End Type
+
+Interface IAdviseSink
+	Inherits IUnknown
+End Interface
+
+' AsyncIAdviseSink
+
+' IAdviseSink2
+
+' AsyncIAdviseSink2
+
+Interface IDataObject
+	Inherits IUnknown
+
+	Function /* [local] */ GetData(
+		/* [unique][in] */ ByRef rformatetcIn As FORMATETC,
+		/* [out] */ ByRef rmedium As STGMEDIUM) As HRESULT
+
+	Function /* [local] */ GetDataHere(
+		/* [unique][in] */ ByRef rformatetcIn As FORMATETC,
+		/* [out] */ ByRef pmedium As STGMEDIUM) As HRESULT
+
+	Function QueryGetData(
+		/* [unique][in] */ ByRef pformatetc As FORMATETC) As HRESULT
+
+	Function GetCanonicalFormatEtc(
+		/* [unique][in] */ ByRef pformatetcIn As FORMATETC,
+		/* [out] */ ByRef pmedium As STGMEDIUM) As HRESULT
+
+	Function /* [local] */ SetData(
+		/* [unique][in] */ pformatetcIn As *FORMATETC,
+		/* [out] */ pmedium As *STGMEDIUM,
+		/* [in] */ fRelease As BOOL) As HRESULT
+
+	Function EnumFormatEtc(
+		/* [in] */ ByVal dwDirection As DWord,
+		/* [out] */ ByRef rpenumFormatEtc As *IEnumFORMATETC) As HRESULT
+
+	Function DAdvise(
+		/* [in] */ ByRef pformatetc As FORMATETC,
+		/* [in] */ ByVal advf As DWORD,
+		/* [unique][in] */ ByVal pAdvSink As *IAdviseSink,
+		/* [out] */ ByVal pdwConnection As *DWord) As HRESULT
+
+	Function DUnadvise(
+		/* [in] */ ByVal dwConnection As DWord) As HRESULT
+
+	Function EnumDAdvise(
+		/* [out] */ ByRef rpenumAdvise As *IEnumSTATDATA) As HRESULT
+End Interface
+
+Interface IDataAdviseHolder
+	Inherits IUnknown
+End Interface
+
+Enum CALLTYPE
+	CALLTYPE_TOPLEVEL = 1
+	CALLTYPE_NESTED = 2
+	CALLTYPE_ASYNC = 3
+	CALLTYPE_TOPLEVEL_CALLPENDING = 4
+	CALLTYPE_ASYNC_CALLPENDING = 5
+End Enum
+
+Enum ERVERCALL
+	SERVERCALL_ISHANDLED = 0
+	SERVERCALL_REJECTED = 1
+	SERVERCALL_RETRYLATER = 2
+End Enum
+
+Enum PENDINGTYPE
+	PENDINGTYPE_TOPLEVEL = 1
+	PENDINGTYPE_NESTED = 2
+End Enum
+
+Enum PENDINGMSG
+	PENDINGMSG_CANCELCALL = 0
+	PENDINGMSG_WAITNOPROCESS = 1
+	PENDINGMSG_WAITDEFPROCESS = 2
+End Enum
+
+Type INTERFACEINFO
+	pUnk As *IUnknown
+	iid As IID
+	wMethod As Word
+End Type
+TypeDef LPINTERFACEINFO = *INTERFACEINFO
+
+Dim IID_IMessageFilter = [&h00000016, &h0000, &h0000, [&hC0, &h00, &h00, &h00, &h00, &h00, &h00, &h46]] As IID
+
+Interface IMessageFilter
+	Inherits IUnknown
+
+	Function HandleInComingCall(
+		/* [in] */ dwCallType As DWord,
+		/* [in] */ htaskCaller As HTASK,
+		/* [in] */ dwTickCount As DWord,
+		/* [in] */ lpInterfaceInfo As LPINTERFACEINFO) As DWord
+
+	Function RetryRejectedCall(
+		/* [in] */ htaskCallee As HTASK,
+		/* [in] */ dwTickCount As DWord,
+		/* [in] */ dwRejectType As DWord) As DWord
+
+	Function MessagePending(
+		/* [in] */ htaskCallee As HTASK,
+		/* [in] */ dwTickCount As DWord,
+		/* [in] */ dwPendingType As DWord) As DWord
+End Interface
+
+' IRpcChannelBuffer
+
+' IRpcChannelBuffer2
+
+' IAsyncRpcChannelBuffer
+
+' IRpcChannelBuffer3
+
+' IRpcSyntaxNegotiate
+
+' IRpcProxyBuffer
+
+' IRpcStubBuffer
+
+' IPSFactoryBuffer
+
+' IChannelHook
+
+' IClientSecurity
+
+' IServerSecurity
+
+' IClassActivator
+
+' IRpcOptions
+
+Interface IFillLockBytes
+	Inherits IUnknown
+End Interface
+
+' IProgressNotify
+
+' ILayoutStorage
+
+' IBlockingLock
+
+' ITimeAndNoticeControl
+
+' IOplockStorage
+
+' ISurrogate
+
+' IGlobalInterfaceTable
+
+' IDirectWriterLock
+
+' ISynchronize
+
+' ISynchronizeHandle
+
+' ISynchronizeEvent
+
+' ISynchronizeContainer
+
+' ISynchronizeMutex
+
+' ICancelMethodCalls
+
+' IAsyncManager
+
+' ICallFactory
+
+' IRpcHelper
+
+' IReleaseMarshalBuffers
+
+' IWaitMultiple
+
+' IUrlMon
+
+' IForegroundTransfer
+
+' IAddrTrackingControl
+
+' IAddrExclusionControl
+
+' IPipeByte
+
+' AsyncIPipeByte
+
+' IPipeLong
+
+' AsyncIPipeLong
+
+' IPipeDouble
+
+' AsyncIPipeDouble
+
+' IThumbnailExtractor
+
+' IDummyHICONIncluder
+
+' IEnumContextProps
+
+' IContext
+
+' IObjContext
+
+' IProcessLock
+
+' ISurrogateService
+
+' IComThreadingInfo
+
+' IProcessInitControl
+
+' IInitializeSpy
 
 #endif'_INC_OBJIDL
