- Use Ove-style macros for NdrConformantStringMarshall definition.
- Move NdrConformantStringMarshall to new ndr_marshall.c.
- Stubs for NdrConformantStringBufferSize,
  NdrConformantStringMemorySize, and NdrConformantStringUnmarshall.

diff --git a/include/rpcndr.h b/include/rpcndr.h
index 9e1f9dc..d7d4dc8 100644
--- a/include/rpcndr.h
+++ b/include/rpcndr.h
@@ -240,7 +240,7 @@
   NdrSimpleTypeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned char FormatChar );
 
 /* while MS declares each prototype separately, I prefer to use macros for this kind of thing instead */
-#define TYPE_MARSHAL(type) \
+#define SIMPLE_TYPE_MARSHAL(type) \
 RPCRTAPI unsigned char* RPC_ENTRY \
   Ndr##type##Marshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); \
 RPCRTAPI unsigned char* RPC_ENTRY \
@@ -248,7 +248,10 @@
 RPCRTAPI void RPC_ENTRY \
   Ndr##type##BufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); \
 RPCRTAPI unsigned long RPC_ENTRY \
-  Ndr##type##MemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); \
+  Ndr##type##MemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat );
+
+#define TYPE_MARSHAL(type) \
+  SIMPLE_TYPE_MARSHAL(type) \
 RPCRTAPI void RPC_ENTRY \
   Ndr##type##Free( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat );
 
@@ -269,7 +272,11 @@
 TYPE_MARSHAL(UserMarshal)
 TYPE_MARSHAL(InterfacePointer)
 
+SIMPLE_TYPE_MARSHAL(ConformantString)
+SIMPLE_TYPE_MARSHAL(NonConformantString)
+
 #undef TYPE_MARSHAL
+#undef SIMPLE_TYPE_MARSHAL
 
 RPCRTAPI void RPC_ENTRY
   NdrConvert2( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, long NumberParams );
@@ -300,9 +307,6 @@
   NdrClientInitializeNew( PRPC_MESSAGE pRpcMessage, PMIDL_STUB_MESSAGE pStubMsg, 
                           PMIDL_STUB_DESC pStubDesc, int unknown );
 RPCRTAPI unsigned char* RPC_ENTRY
-  NdrConformantStringMarshall( MIDL_STUB_MESSAGE *pStubMsg, unsigned char *pszMessage,
-                               PFORMAT_STRING pFormat);
-RPCRTAPI unsigned char* RPC_ENTRY
   NdrGetBuffer( MIDL_STUB_MESSAGE *stubmsg, unsigned long buflen, RPC_BINDING_HANDLE handle );
 RPCRTAPI void RPC_ENTRY
   NdrFreeBuffer( MIDL_STUB_MESSAGE *pStubMsg );