ole32: Add documentation for the user marshaling functions.

Robert Shearman rob at codeweavers.com
Sun Dec 17 17:45:08 CST 2006


---
  dlls/ole32/usrmarshal.c |  450 
+++++++++++++++++++++++++++++++++++++++++++++++
  1 files changed, 450 insertions(+), 0 deletions(-)
-------------- next part --------------
diff --git a/dlls/ole32/usrmarshal.c b/dlls/ole32/usrmarshal.c
index 2ffc2a1..b9bffd1 100644
--- a/dlls/ole32/usrmarshal.c
+++ b/dlls/ole32/usrmarshal.c
@@ -324,6 +324,23 @@ IMPL_WIREM_HANDLE(HWND)
 
 /******************************************************************************
  *           HGLOBAL_UserSize [OLE32.@]
+ *
+ * Calculates the buffer size required to marshal an HGLOBAL.
+ *
+ * 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 clip format.
+ *  phGlobal     [I] HGLOBAL to size.
+ *
+ * RETURNS
+ *  The buffer size required to marshal an HGLOBAL 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 HGLOBAL_UserSize(ULONG *pFlags, ULONG StartingSize, HGLOBAL *phGlobal)
 {
@@ -352,6 +369,25 @@ ULONG __RPC_USER HGLOBAL_UserSize(ULONG 
     return size;
 }
 
+/******************************************************************************
+ *           HGLOBAL_UserMarshal [OLE32.@]
+ *
+ * Marshals an HGLOBAL into a buffer.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  pBuffer  [I] Buffer to marshal the clip format into.
+ *  phGlobal [I] HGLOBAL 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 HGLOBAL_UserMarshal(ULONG *pFlags, unsigned char *pBuffer, HGLOBAL *phGlobal)
 {
     TRACE("(%s, %p, &%p\n", debugstr_user_flags(pFlags), pBuffer, *phGlobal);
@@ -395,6 +431,25 @@ unsigned char * __RPC_USER HGLOBAL_UserM
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HGLOBAL_UserUnmarshal [OLE32.@]
+ *
+ * Unmarshals an HGLOBAL from a buffer.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  pBuffer  [I] Buffer to marshal the clip format from.
+ *  phGlobal [O] Address that receive the unmarshaled HGLOBAL.
+ *
+ * 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 HGLOBAL_UserUnmarshal(ULONG *pFlags, unsigned char *pBuffer, HGLOBAL *phGlobal)
 {
     ULONG fContext;
@@ -462,6 +517,21 @@ unsigned char * __RPC_USER HGLOBAL_UserU
 
 /******************************************************************************
  *           HGLOBAL_UserFree [OLE32.@]
+ *
+ * Frees an unmarshaled HGLOBAL.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  phGlobal [I] HGLOBAL 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 HGLOBAL_UserFree(ULONG *pFlags, HGLOBAL *phGlobal)
 {
@@ -471,76 +541,324 @@ void __RPC_USER HGLOBAL_UserFree(ULONG *
         GlobalFree(*phGlobal);
 }
 
+/******************************************************************************
+ *           HBITMAP_UserSize [OLE32.@]
+ *
+ * Calculates the buffer size required to marshal a bitmap.
+ *
+ * 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 clip format.
+ *  phBmp        [I] Bitmap to size.
+ *
+ * RETURNS
+ *  The buffer size required to marshal an bitmap 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 HBITMAP_UserSize(ULONG *pFlags, ULONG StartingSize, HBITMAP *phBmp)
 {
     FIXME(":stub\n");
     return StartingSize;
 }
 
+/******************************************************************************
+*           HBITMAP_UserMarshal [OLE32.@]
+*
+* Marshals a bitmap into a buffer.
+*
+* PARAMS
+*  pFlags  [I] Flags. See notes.
+*  pBuffer [I] Buffer to marshal the clip format into.
+*  phBmp   [I] Bitmap 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 HBITMAP_UserMarshal(ULONG *pFlags, unsigned char *pBuffer, HBITMAP *phBmp)
 {
     FIXME(":stub\n");
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HBITMAP_UserUnmarshal [OLE32.@]
+ *
+ * Unmarshals a bitmap from a buffer.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  pBuffer  [I] Buffer to marshal the clip format from.
+ *  phBmp    [O] Address that receive the unmarshaled bitmap.
+ *
+ * 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 HBITMAP_UserUnmarshal(ULONG *pFlags, unsigned char *pBuffer, HBITMAP *phBmp)
 {
     FIXME(":stub\n");
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HBITMAP_UserFree [OLE32.@]
+ *
+ * Frees an unmarshaled bitmap.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  phBmp    [I] Bitmap 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 HBITMAP_UserFree(ULONG *pFlags, HBITMAP *phBmp)
 {
     FIXME(":stub\n");
 }
 
+/******************************************************************************
+ *           HDC_UserSize [OLE32.@]
+ *
+ * Calculates the buffer size required to marshal an HDC.
+ *
+ * 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 clip format.
+ *  phGlobal     [I] HDC to size.
+ *
+ * RETURNS
+ *  The buffer size required to marshal an HDC 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 HDC_UserSize(ULONG *pFlags, ULONG StartingSize, HDC *phdc)
 {
     FIXME(":stub\n");
     return StartingSize;
 }
 
+/******************************************************************************
+ *           HDC_UserMarshal [OLE32.@]
+ *
+ * Marshals an HDC into a buffer.
+ *
+ * PARAMS
+ *  pFlags  [I] Flags. See notes.
+ *  pBuffer [I] Buffer to marshal the clip format into.
+ *  phdc    [I] HDC 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 HDC_UserMarshal(ULONG *pFlags, unsigned char *pBuffer, HDC *phdc)
 {
     FIXME(":stub\n");
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HDC_UserUnmarshal [OLE32.@]
+ *
+ * Unmarshals an HDC from a buffer.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  pBuffer  [I] Buffer to marshal the clip format from.
+ *  phdc     [O] Address that receive the unmarshaled HDC.
+ *
+ * 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 HDC_UserUnmarshal(ULONG *pFlags, unsigned char *pBuffer, HDC *phdc)
 {
     FIXME(":stub\n");
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HDC_UserFree [OLE32.@]
+ *
+ * Frees an unmarshaled HDC.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  phdc     [I] HDC 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 HDC_UserFree(ULONG *pFlags, HDC *phdc)
 {
     FIXME(":stub\n");
 }
 
+/******************************************************************************
+ *           HPALETTE_UserSize [OLE32.@]
+ *
+ * Calculates the buffer size required to marshal a palette.
+ *
+ * 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 clip format.
+ *  phPal        [I] Palette to size.
+ *
+ * RETURNS
+ *  The buffer size required to marshal a palette 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 HPALETTE_UserSize(ULONG *pFlags, ULONG StartingSize, HPALETTE *phPal)
 {
     FIXME(":stub\n");
     return StartingSize;
 }
 
+/******************************************************************************
+ *           HPALETTE_UserMarshal [OLE32.@]
+ *
+ * Marshals a palette into a buffer.
+ *
+ * PARAMS
+ *  pFlags  [I] Flags. See notes.
+ *  pBuffer [I] Buffer to marshal the clip format into.
+ *  phPal   [I] Palette 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 HPALETTE_UserMarshal(ULONG *pFlags, unsigned char *pBuffer, HPALETTE *phPal)
 {
     FIXME(":stub\n");
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HPALETTE_UserUnmarshal [OLE32.@]
+ *
+ * Unmarshals a palette from a buffer.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  pBuffer  [I] Buffer to marshal the clip format from.
+ *  phPal    [O] Address that receive the unmarshaled palette.
+ *
+ * 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 HPALETTE_UserUnmarshal(ULONG *pFlags, unsigned char *pBuffer, HPALETTE *phPal)
 {
     FIXME(":stub\n");
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HPALETTE_UserFree [OLE32.@]
+ *
+ * Frees an unmarshaled palette.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  phPal    [I] Palette 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 HPALETTE_UserFree(ULONG *pFlags, HPALETTE *phPal)
 {
     FIXME(":stub\n");
 }
 
 
+/******************************************************************************
+*           HENHMETAFILE_UserSize [OLE32.@]
+*
+* Calculates the buffer size required to marshal an enhanced metafile.
+*
+* 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 clip format.
+*  phEmf        [I] Enhanced metafile to size.
+*
+* RETURNS
+*  The buffer size required to marshal an enhanced metafile 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 HENHMETAFILE_UserSize(ULONG *pFlags, ULONG StartingSize, HENHMETAFILE *phEmf)
 {
     ULONG size = StartingSize;
@@ -567,6 +885,25 @@ ULONG __RPC_USER HENHMETAFILE_UserSize(U
     return size;
 }
 
+/******************************************************************************
+ *           HENHMETAFILE_UserMarshal [OLE32.@]
+ *
+ * Marshals an enhance metafile into a buffer.
+ *
+ * PARAMS
+ *  pFlags  [I] Flags. See notes.
+ *  pBuffer [I] Buffer to marshal the clip format into.
+ *  phEmf   [I] Enhanced metafile 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 HENHMETAFILE_UserMarshal(ULONG *pFlags, unsigned char *pBuffer, HENHMETAFILE *phEmf)
 {
     TRACE("(%s, %p, &%p\n", debugstr_user_flags(pFlags), pBuffer, *phEmf);
@@ -604,6 +941,25 @@ unsigned char * __RPC_USER HENHMETAFILE_
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HENHMETAFILE_UserUnmarshal [OLE32.@]
+ *
+ * Unmarshals an enhanced metafile from a buffer.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  pBuffer  [I] Buffer to marshal the clip format from.
+ *  phEmf    [O] Address that receive the unmarshaled enhanced metafile.
+ *
+ * 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 HENHMETAFILE_UserUnmarshal(ULONG *pFlags, unsigned char *pBuffer, HENHMETAFILE *phEmf)
 {
     ULONG fContext;
@@ -649,6 +1005,24 @@ unsigned char * __RPC_USER HENHMETAFILE_
     return pBuffer;
 }
 
+/******************************************************************************
+ *           HENHMETAFILE_UserFree [OLE32.@]
+ *
+ * Frees an unmarshaled enhanced metafile.
+ *
+ * PARAMS
+ *  pFlags   [I] Flags. See notes.
+ *  phEmf    [I] Enhanced metafile 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 HENHMETAFILE_UserFree(ULONG *pFlags, HENHMETAFILE *phEmf)
 {
     TRACE("(%s, &%p\n", debugstr_user_flags(pFlags), *phEmf);
@@ -657,6 +1031,26 @@ void __RPC_USER HENHMETAFILE_UserFree(UL
         DeleteEnhMetaFile(*phEmf);
 }
 
+/******************************************************************************
+*           STGMEDIUM_UserSize [OLE32.@]
+*
+* Calculates the buffer size required to marshal an STGMEDIUM.
+*
+* 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 clip format.
+*  pStgMedium   [I] STGMEDIUM to size.
+*
+* RETURNS
+*  The buffer size required to marshal an STGMEDIUM 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 STGMEDIUM_UserSize(ULONG *pFlags, ULONG StartingSize, STGMEDIUM *pStgMedium)
 {
     ULONG size = StartingSize;
@@ -707,6 +1101,25 @@ ULONG __RPC_USER STGMEDIUM_UserSize(ULON
     return size;
 }
 
+/******************************************************************************
+ *           STGMEDIUM_UserMarshal [OLE32.@]
+ *
+ * Marshals a STGMEDIUM into a buffer.
+ *
+ * PARAMS
+ *  pFlags  [I] Flags. See notes.
+ *  pBuffer [I] Buffer to marshal the clip format into.
+ *  pCF     [I] STGMEDIUM 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 STGMEDIUM_UserMarshal(ULONG *pFlags, unsigned char *pBuffer, STGMEDIUM *pStgMedium)
 {
     TRACE("(%s, %p, %p\n", debugstr_user_flags(pFlags), pBuffer, pStgMedium);
@@ -761,6 +1174,25 @@ unsigned char * __RPC_USER STGMEDIUM_Use
     return pBuffer;
 }
 
+/******************************************************************************
+ *           STGMEDIUM_UserUnmarshal [OLE32.@]
+ *
+ * Unmarshals a STGMEDIUM from a buffer.
+ *
+ * PARAMS
+ *  pFlags     [I] Flags. See notes.
+ *  pBuffer    [I] Buffer to marshal the clip format from.
+ *  pStgMedium [O] Address that receive the unmarshaled STGMEDIUM.
+ *
+ * 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 STGMEDIUM_UserUnmarshal(ULONG *pFlags, unsigned char *pBuffer, STGMEDIUM *pStgMedium)
 {
     DWORD content;
@@ -819,6 +1251,24 @@ unsigned char * __RPC_USER STGMEDIUM_Use
     return pBuffer;
 }
 
+/******************************************************************************
+ *           STGMEDIUM_UserFree [OLE32.@]
+ *
+ * Frees an unmarshaled STGMEDIUM.
+ *
+ * PARAMS
+ *  pFlags     [I] Flags. See notes.
+ *  pStgmedium [I] STGMEDIUM 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 STGMEDIUM_UserFree(ULONG *pFlags, STGMEDIUM *pStgMedium)
 {
     TRACE("(%s, %p\n", debugstr_user_flags(pFlags), pStgMedium);


More information about the wine-patches mailing list