ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ndr_misc.h
Go to the documentation of this file.
00001 /*
00002  * NDR definitions
00003  *
00004  * Copyright 2001 Ove Kåven, TransGaming Technologies
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  */
00020 
00021 #ifndef __WINE_NDR_MISC_H
00022 #define __WINE_NDR_MISC_H
00023 
00024 #include <stdarg.h>
00025 
00026 #include "windef.h"
00027 #include "winbase.h"
00028 #include "rpc.h"
00029 #include "rpcndr.h"
00030 
00031 struct IPSFactoryBuffer;
00032 
00033 PFORMAT_STRING ComputeConformanceOrVariance(
00034     MIDL_STUB_MESSAGE *pStubMsg, unsigned char *pMemory,
00035     PFORMAT_STRING pFormat, ULONG_PTR def, ULONG_PTR *pCount) DECLSPEC_HIDDEN;
00036 
00037 static inline PFORMAT_STRING ComputeConformance(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat, ULONG def)
00038 {
00039     return ComputeConformanceOrVariance(pStubMsg, pMemory, pFormat, def, &pStubMsg->MaxCount);
00040 }
00041 
00042 static inline PFORMAT_STRING ComputeVariance(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat, ULONG def)
00043 {
00044     PFORMAT_STRING ret;
00045     ULONG_PTR ActualCount = pStubMsg->ActualCount;
00046 
00047     pStubMsg->Offset = 0;
00048     ret = ComputeConformanceOrVariance(pStubMsg, pMemory, pFormat, def, &ActualCount);
00049     pStubMsg->ActualCount = (ULONG)ActualCount;
00050     return ret;
00051 }
00052 
00053 typedef unsigned char* (WINAPI *NDR_MARSHALL)  (PMIDL_STUB_MESSAGE, unsigned char*, PFORMAT_STRING);
00054 typedef unsigned char* (WINAPI *NDR_UNMARSHALL)(PMIDL_STUB_MESSAGE, unsigned char**,PFORMAT_STRING, unsigned char);
00055 typedef void           (WINAPI *NDR_BUFFERSIZE)(PMIDL_STUB_MESSAGE, unsigned char*, PFORMAT_STRING);
00056 typedef ULONG          (WINAPI *NDR_MEMORYSIZE)(PMIDL_STUB_MESSAGE,                 PFORMAT_STRING);
00057 typedef void           (WINAPI *NDR_FREE)      (PMIDL_STUB_MESSAGE, unsigned char*, PFORMAT_STRING);
00058 
00059 extern const NDR_MARSHALL   NdrMarshaller[] DECLSPEC_HIDDEN;
00060 extern const NDR_UNMARSHALL NdrUnmarshaller[] DECLSPEC_HIDDEN;
00061 extern const NDR_BUFFERSIZE NdrBufferSizer[] DECLSPEC_HIDDEN;
00062 extern const NDR_MEMORYSIZE NdrMemorySizer[] DECLSPEC_HIDDEN;
00063 extern const NDR_FREE       NdrFreer[] DECLSPEC_HIDDEN;
00064 
00065 ULONG ComplexStructSize(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat) DECLSPEC_HIDDEN;
00066 
00067 #endif  /* __WINE_NDR_MISC_H */

Generated on Sun May 27 2012 04:26:03 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.