Huw Davies : oleaut32: Implement proxy / stub for ITypeLib_GetDocumentation .
Alexandre Julliard
julliard at winehq.org
Fri Feb 11 11:16:35 CST 2011
Module: wine
Branch: master
Commit: afeaaf3787647a416a9412d230bab5467e6616b8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=afeaaf3787647a416a9412d230bab5467e6616b8
Author: Huw Davies <huw at codeweavers.com>
Date: Fri Feb 11 10:24:51 2011 +0000
oleaut32: Implement proxy / stub for ITypeLib_GetDocumentation.
---
dlls/oleaut32/usrmarshal.c | 58 +++++++++++++++++++++++++++++--------------
1 files changed, 39 insertions(+), 19 deletions(-)
diff --git a/dlls/oleaut32/usrmarshal.c b/dlls/oleaut32/usrmarshal.c
index 2e64395..8f9e00c 100644
--- a/dlls/oleaut32/usrmarshal.c
+++ b/dlls/oleaut32/usrmarshal.c
@@ -1974,29 +1974,49 @@ HRESULT __RPC_STUB ITypeLib_GetLibAttr_Stub(
return hr;
}
-HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(
- ITypeLib* This,
- INT index,
- BSTR* pBstrName,
- BSTR* pBstrDocString,
- DWORD* pdwHelpContext,
- BSTR* pBstrHelpFile)
+HRESULT CALLBACK ITypeLib_GetDocumentation_Proxy(ITypeLib *This, INT index, BSTR *name,
+ BSTR *doc_string, DWORD *help_context,
+ BSTR *help_file)
{
- FIXME("not implemented\n");
- return E_FAIL;
+ DWORD dummy_help_context, flags = 0;
+ BSTR dummy_name, dummy_doc_string, dummy_help_file;
+ HRESULT hr;
+ TRACE("(%p, %d, %p, %p, %p, %p)\n", This, index, name, doc_string, help_context, help_file);
+
+ if(!name) name = &dummy_name;
+ else flags = 1;
+
+ if(!doc_string) doc_string = &dummy_doc_string;
+ else flags |= 2;
+
+ if(!help_context) help_context = &dummy_help_context;
+ else flags |= 4;
+
+ if(!help_file) help_file = &dummy_help_file;
+ else flags |= 8;
+
+ hr = ITypeLib_RemoteGetDocumentation_Proxy(This, index, flags, name, doc_string, help_context, help_file);
+
+ /* We don't need to free the dummy BSTRs since the stub ensures that these will be NULLs. */
+
+ return hr;
}
-HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(
- ITypeLib* This,
- INT index,
- DWORD refPtrFlags,
- BSTR* pBstrName,
- BSTR* pBstrDocString,
- DWORD* pdwHelpContext,
- BSTR* pBstrHelpFile)
+HRESULT __RPC_STUB ITypeLib_GetDocumentation_Stub(ITypeLib *This, INT index, DWORD flags,
+ BSTR *name, BSTR *doc_string,
+ DWORD *help_context, BSTR *help_file)
{
- FIXME("not implemented\n");
- return E_FAIL;
+ TRACE("(%p, %d, %08x, %p, %p, %p, %p)\n", This, index, flags, name, doc_string, help_context, help_file);
+
+ *name = *doc_string = *help_file = NULL;
+ *help_context = 0;
+
+ if(!(flags & 1)) name = NULL;
+ if(!(flags & 2)) doc_string = NULL;
+ if(!(flags & 4)) help_context = NULL;
+ if(!(flags & 8)) help_file = NULL;
+
+ return ITypeLib_GetDocumentation(This, index, name, doc_string, help_context, help_file);
}
HRESULT CALLBACK ITypeLib_IsName_Proxy(
More information about the wine-cvs
mailing list