Module: wine
Branch: master
Commit: 11aef5e0a22ded5ac035b5a66d3be9879259ff8e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=11aef5e0a22ded5ac035b5a66…
Author: Michael Karcher <wine(a)mkarcher.dialup.fu-berlin.de>
Date: Sun Jan 4 00:21:43 2009 +0100
ole32: Add HICON user marshalling stubs.
---
dlls/ole32/ole32.spec | 4 ++
dlls/ole32/usrmarshal.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/dlls/ole32/ole32.spec b/dlls/ole32/ole32.spec
index 79376ac..49ff1d3 100644
--- a/dlls/ole32/ole32.spec
+++ b/dlls/ole32/ole32.spec
@@ -138,6 +138,10 @@
@ stdcall HGLOBAL_UserMarshal(ptr ptr ptr)
@ stdcall HGLOBAL_UserSize(ptr long ptr)
@ stdcall HGLOBAL_UserUnmarshal(ptr ptr ptr)
+@ stdcall HICON_UserFree(ptr ptr)
+@ stdcall HICON_UserMarshal(ptr ptr ptr)
+@ stdcall HICON_UserSize(ptr long ptr)
+@ stdcall HICON_UserUnmarshal(ptr ptr ptr)
@ stdcall HMENU_UserFree(ptr ptr)
@ stdcall HMENU_UserMarshal(ptr ptr ptr)
@ stdcall HMENU_UserSize(ptr long ptr)
diff --git a/dlls/ole32/usrmarshal.c b/dlls/ole32/usrmarshal.c
index 8aed5d6..3af71df 100644
--- a/dlls/ole32/usrmarshal.c
+++ b/dlls/ole32/usrmarshal.c
@@ -647,6 +647,105 @@ void __RPC_USER HBITMAP_UserFree(ULONG *pFlags, HBITMAP *phBmp)
}
/******************************************************************************
+ * HICON_UserSize [OLE32.@]
+ *
+ * Calculates the buffer size required to marshal an icon.
+ *
+ * PARAMS
+ * pFlags [I] Flags. See notes.
+ * StartingSize [I] Starting size of the buffer. This value is added on to
+ * the buffer size required for the icon.
+ * phIcon [I] Icon to size.
+ *
+ * RETURNS
+ * The buffer size required to marshal an icon plus the starting size.
+ *
+ * NOTES
+ * Even though the function is documented to take a pointer to a ULONG in
+ * pFlags, it actually takes a pointer to a USER_MARSHAL_CB structure, of which
+ * the first parameter is a ULONG.
+ * This function is only intended to be called by the RPC runtime.
+ */
+ULONG __RPC_USER HICON_UserSize(ULONG *pFlags, ULONG StartingSize, HICON *phIcon)
+{
+ FIXME(":stub\n");
+ return StartingSize;
+}
+
+/******************************************************************************
+* HICON_UserMarshal [OLE32.@]
+*
+* Marshals an icon into a buffer.
+*
+* PARAMS
+* pFlags [I] Flags. See notes.
+* pBuffer [I] Buffer to marshal the icon into.
+* phIcon [I] Icon to marshal.
+*
+* RETURNS
+* The end of the marshaled data in the buffer.
+*
+* NOTES
+* Even though the function is documented to take a pointer to a ULONG in
+* pFlags, it actually takes a pointer to a USER_MARSHAL_CB structure, of which
+* the first parameter is a ULONG.
+* This function is only intended to be called by the RPC runtime.
+*/
+unsigned char * __RPC_USER HICON_UserMarshal(ULONG *pFlags, unsigned char *pBuffer, HICON *phIcon)
+{
+ FIXME(":stub\n");
+ return pBuffer;
+}
+
+/******************************************************************************
+ * HICON_UserUnmarshal [OLE32.@]
+ *
+ * Unmarshals an icon from a buffer.
+ *
+ * PARAMS
+ * pFlags [I] Flags. See notes.
+ * pBuffer [I] Buffer to marshal the icon from.
+ * phIcon [O] Address that receive the unmarshaled icon.
+ *
+ * RETURNS
+ * The end of the marshaled data in the buffer.
+ *
+ * NOTES
+ * Even though the function is documented to take a pointer to an ULONG in
+ * pFlags, it actually takes a pointer to a USER_MARSHAL_CB structure, of which
+ * the first parameter is an ULONG.
+ * This function is only intended to be called by the RPC runtime.
+ */
+unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *pFlags, unsigned char *pBuffer, HICON *phIcon)
+{
+ FIXME(":stub\n");
+ return pBuffer;
+}
+
+/******************************************************************************
+ * HICON_UserFree [OLE32.@]
+ *
+ * Frees an unmarshaled icon.
+ *
+ * PARAMS
+ * pFlags [I] Flags. See notes.
+ * phIcon [I] Icon to free.
+ *
+ * RETURNS
+ * The end of the marshaled data in the buffer.
+ *
+ * NOTES
+ * Even though the function is documented to take a pointer to a ULONG in
+ * pFlags, it actually takes a pointer to a USER_MARSHAL_CB structure, of
+ * which the first parameter is a ULONG.
+ * This function is only intended to be called by the RPC runtime.
+ */
+void __RPC_USER HICON_UserFree(ULONG *pFlags, HICON *phIcon)
+{
+ FIXME(":stub\n");
+}
+
+/******************************************************************************
* HDC_UserSize [OLE32.@]
*
* Calculates the buffer size required to marshal an HDC.