rpcrt4 stubs

Peter Hunnisett hunnise at yahoo.com
Tue Jul 10 20:42:26 CDT 2001


Hi,
  this adds a bunch of stubby stuff for rpcrt4. Diffs are against the
last release, but I don't think there should be a problem. If there is,
let me know and I'll resubmit later.

Ciao,
Peter

hunnise at yahoo.com
-------------- next part --------------
--- ChangeLog	2001/07/10 15:09:14	1.2
+++ ChangeLog	2001/07/10 23:49:19
@@ -1,3 +1,8 @@
+	* dlls/rpcrt4/rpcrt4.spec, dlls/rpcrt4/rpcrt4_main.c, include/rpcdce.h, include/rpc.h, [new]include/rpcnterror.h
+	Peter Hunnisett <hunnise at yahoo.com>
+	Added a bunch of entry points
+	Added some stubs and header information
+	Fixed some return codes
+
 	* dlls/user/user32.spec, dlls/shlwapi/shlwapi.spec, include/shlwapi.h, dlls/user/wsprintf.c
 	Peter Hunnisett <hunnise at yahoo.com>
 	Add shlwapi.wvnsprintf[AW], header info and comments.
--- include/rpcdce.h	2001/07/10 16:37:02	1.1
+++ include/rpcdce.h	2001/07/10 23:37:35
@@ -3,6 +3,10 @@
 
 #include "windef.h"
 
+#ifndef GUID_DEFINED
+#include <guiddef.h>
+#endif
+
 typedef void* RPC_AUTH_IDENTITY_HANDLE;
 typedef void* RPC_AUTHZ_HANDLE;
 typedef void* RPC_IF_HANDLE;
@@ -10,6 +14,98 @@
 typedef RPC_BINDING_HANDLE handle_t;
 #define rpc_binding_handle_t RPC_BINDING_HANDLE
 #define RPC_MGR_EPV void
+
+#define RPC_C_BINDING_INFINITE_TIMEOUT 10
+#define RPC_C_BINDING_MIN_TIMEOUT 0
+#define RPC_C_BINDING_DEFAULT_TIMEOUT 5
+#define RPC_C_BINDING_MAX_TIMEOUT 9
+
+#define RPC_C_CANCEL_INFINITE_TIMEOUT -1
+
+#define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
+#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
+
+/* RPC_POLICY EndpointFlags */
+#define RPC_C_BIND_TO_ALL_NICS          0x1
+#define RPC_C_USE_INTERNET_PORT         0x1
+#define RPC_C_USE_INTRANET_PORT         0x2
+#define RPC_C_DONT_FAIL                 0x4
+
+/* RPC_POLICY EndpointFlags specific to the Falcon/RPC transport */
+#define RPC_C_MQ_TEMPORARY                  0x0000
+#define RPC_C_MQ_PERMANENT                  0x0001
+#define RPC_C_MQ_CLEAR_ON_OPEN              0x0002
+#define RPC_C_MQ_USE_EXISTING_SECURITY      0x0004
+#define RPC_C_MQ_AUTHN_LEVEL_NONE           0x0000
+#define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY  0x0008
+#define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY    0x0010
+
+
+typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN( RPC_IF_HANDLE InterfaceUuid, LPVOID Context );
+typedef void (__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN)( LPVOID Arg, LPWSTR ServerPrincName,
+                                                       ULONG KeyVer, LPVOID* Key, RPC_STATUS* status );
+
+typedef struct _RPC_POLICY 
+{
+  UINT  Length;
+  ULONG EndpointFlags;
+  ULONG NICFlags;
+} RPC_POLICY,  *PRPC_POLICY;
+
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
+  
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerRegisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
+                         UINT Flags, UINT MaxCalls, RPC_IF_CALLBACK_FN* IfCallbackFn );
+			 
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerRegisterIf2( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
+                        UINT Flags, UINT MaxCalls, UINT MaxRpcSize, RPC_IF_CALLBACK_FN* IfCallbackFn );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerUseProtseqEpA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor );
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerUseProtseqEpW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerUseProtseqEpExA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor,
+                            PRPC_POLICY Policy );
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerUseProtseqEpExW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor,
+                            PRPC_POLICY Policy );
+
+#define RpcServerUseProtseqEp WINELIB_NAME_AW(RpcServerUseProtseqEp)
+#define RpcServerUseProtseqEpEx WINELIB_NAME_AW(RpcServerUseProtseqEpEx)
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerRegisterAuthInfoA( LPSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
+                              LPVOID Arg );
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerRegisterAuthInfoW( LPWSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
+                              LPVOID Arg );
+			    
+#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcStringBindingComposeA( LPSTR ObjUuid, LPSTR Protseq, LPSTR NetworkAddr, LPSTR Endpoint,
+                            LPSTR Options, LPSTR* StringBinding );
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcStringBindingComposeW( LPWSTR ObjUuid, LPWSTR Protseq, LPWSTR NetworkAddr, LPWSTR Endpoint,
+                            LPWSTR Options, LPWSTR* StringBinding );
+			    
+#define RpcStringBindingCompose WINELIB_NAME_AW(RpcStringBindingCompose)
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingFromStringBindingA( LPSTR StringBinding, RPC_BINDING_HANDLE* Binding );
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingFromStringBindingW( LPWSTR StringBinding, RPC_BINDING_HANDLE* Binding );
+
+#define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
 
 #include "rpcdcep.h"
 
--- include/rpc.h	2001/07/10 16:37:16	1.1
+++ include/rpc.h	2001/07/10 17:47:07
@@ -14,6 +14,7 @@
 #define __RPC_USER WINAPI
 #define __RPC_STUB WINAPI
 #define RPC_ENTRY  WINAPI
+#define RPCRTAPI
 typedef long RPC_STATUS;
 
 typedef void* I_RPC_HANDLE;
@@ -38,7 +39,7 @@
 
 #include "rpcdce.h"
 /* #include "rpcnsi.h" */
-/* #include "rpcnterr.h" */
+#include "rpcnterr.h"
 /* #include "excpt.h" */
 #include "winerror.h"
 
--- /dev/null	Fri Mar 23 23:37:44 2001
+++ include/rpcnterr.h	Tue Jul 10 13:44:38 2001
@@ -0,0 +1,26 @@
+#ifndef __RPCNTERR_H__
+#define __RPCNTERR_H__
+
+#define RPC_S_OK                          ERROR_SUCCESS
+#define RPC_S_INVALID_ARG                 ERROR_INVALID_PARAMETER
+#define RPC_S_OUT_OF_MEMORY               ERROR_OUTOFMEMORY
+#define RPC_S_OUT_OF_THREADS              ERROR_MAX_THRDS_REACHED
+#define RPC_S_INVALID_LEVEL               ERROR_INVALID_PARAMETER
+#define RPC_S_BUFFER_TOO_SMALL            ERROR_INSUFFICIENT_BUFFER
+#define RPC_S_INVALID_SECURITY_DESC       ERROR_INVALID_SECURITY_DESCR
+#define RPC_S_ACCESS_DENIED               ERROR_ACCESS_DENIED
+#define RPC_S_SERVER_OUT_OF_MEMORY        ERROR_NOT_ENOUGH_SERVER_MEMORY
+#define RPC_S_ASYNC_CALL_PENDING          ERROR_IO_PENDING
+#define RPC_S_UNKNOWN_PRINCIPAL           ERROR_NONE_MAPPED
+#define RPC_S_TIMEOUT                     ERROR_TIMEOUT
+
+#define RPC_X_NO_MEMORY                   RPC_S_OUT_OF_MEMORY
+#define RPC_X_INVALID_BOUND               RPC_S_INVALID_BOUND
+#define RPC_X_INVALID_TAG                 RPC_S_INVALID_TAG
+#define RPC_X_ENUM_VALUE_TOO_LARGE        RPC_X_ENUM_VALUE_OUT_OF_RANGE
+#define RPC_X_SS_CONTEXT_MISMATCH         ERROR_INVALID_HANDLE
+#define RPC_X_INVALID_BUFFER              ERROR_INVALID_USER_BUFFER
+#define RPC_X_PIPE_APP_MEMORY             ERROR_OUTOFMEMORY
+#define RPC_X_INVALID_PIPE_OPERATION      RPC_X_WRONG_PIPE_ORDER
+
+#endif
--- dlls/rpcrt4/rpcrt4.spec	2001/07/11 01:20:34	1.1
+++ dlls/rpcrt4/rpcrt4.spec	2001/07/11 01:20:49
@@ -7,18 +7,25 @@
 
 debug_channels (ole)
 
-@ stdcall UuidCreate(ptr) UuidCreate
+@ stdcall NdrDllRegisterProxy(long ptr ptr) NdrDllRegisterProxy
+@ stdcall RpcBindingFromStringBindingA(str  ptr) RpcBindingFromStringBindingA
+@ stdcall RpcBindingFromStringBindingW(wstr ptr) RpcBindingFromStringBindingW
+@ stdcall RpcServerListen(long long long) RpcServerListen
+@ stdcall RpcServerUseProtseqEpA(str  long str  ptr) RpcServerUseProtseqEpA
+@ stdcall RpcServerUseProtseqEpW(wstr long wstr ptr) RpcServerUseProtseqEpW
+@ stdcall RpcServerUseProtseqEpExA(str  long str  ptr ptr) RpcServerUseProtseqEpExA
+@ stdcall RpcServerUseProtseqEpExW(wstr long wstr ptr ptr) RpcServerUseProtseqEpExW
+@ stdcall RpcServerRegisterIf(ptr ptr ptr)                     RpcServerRegisterIf
+@ stdcall RpcServerRegisterIfEx(ptr ptr ptr long long ptr)     RpcServerRegisterIfEx
+@ stdcall RpcServerRegisterIf2(ptr ptr ptr long long long ptr) RpcServerRegisterIf2
+@ stdcall RpcServerRegisterAuthInfoA(str  long ptr ptr) RpcServerRegisterAuthInfoA
+@ stdcall RpcServerRegisterAuthInfoW(wstr long ptr ptr) RpcServerRegisterAuthInfoW
+@ stdcall RpcStringBindingComposeA(str  str  str  str  str  ptr) RpcStringBindingComposeA
+@ stdcall RpcStringBindingComposeW(wstr wstr wstr wstr wstr ptr) RpcStringBindingComposeW
 @ stdcall RpcStringFreeA(ptr) RpcStringFreeA
+@ stdcall UuidCreate(ptr) UuidCreate
 @ stdcall UuidToStringA(ptr ptr) UuidToStringA
-@ stub NdrCStdStubBuffer_Release
-@ stub NdrDllGetClassObject
-@ stub RpcRaiseException
-@ stub NdrClientCall
-@ stub NdrOleAllocate
-@ stub NdrOleFree
-@ stub IUnknown_QueryInterface_Proxy
-@ stub IUnknown_AddRef_Proxy
-@ stub IUnknown_Release_Proxy
+
 @ stub CStdStubBuffer_QueryInterface
 @ stub CStdStubBuffer_AddRef
 @ stub CStdStubBuffer_Connect
@@ -28,4 +35,38 @@
 @ stub CStdStubBuffer_CountRefs
 @ stub CStdStubBuffer_DebugServerQueryInterface
 @ stub CStdStubBuffer_DebugServerRelease
-@ stdcall NdrDllRegisterProxy(long ptr ptr) NdrDllRegisterProxy
+
+@ stub IUnknown_QueryInterface_Proxy
+@ stub IUnknown_AddRef_Proxy
+@ stub IUnknown_Release_Proxy
+
+@ stub I_RpcGetBuffer
+
+@ stub NdrClientCall
+@ stub NdrClientCall2
+@ stub NdrConformantVaryingArrayBufferSize
+@ stub NdrConformantVaryingArrayMarshall
+@ stub NdrConformantVaryingArrayUnmarshall
+@ stub NdrConformantStringUnmarshall
+@ stub NDRSContextUnmarshall
+@ stub NdrConvert
+@ stub NdrCStdStubBuffer_Release
+@ stub NdrDllGetClassObject
+@ stub NdrOleAllocate
+@ stub NdrOleFree
+@ stub NdrServerContextUnmarshall
+@ stub NdrServerInitializeNew
+@ stub NdrServerContextMarshall
+
+@ stub RpcBindingFree
+@ stub RpcImpersonateClient
+@ stub RpcMgmtSetCancelTimeout
+@ stub RpcMgmtStopServerListening
+@ stub RpcRaiseException
+@ stub RpcRevertToSelf
+@ stub RpcServerUnregisterIf
+@ stub RpcStringFreeW
+
+
+@ stub UuidIsNil
+
--- dlls/rpcrt4/rpcrt4_main.c	2001/07/10 17:34:03	1.1
+++ dlls/rpcrt4/rpcrt4_main.c	2001/07/10 23:44:18
@@ -261,7 +261,7 @@
    
    TRACE("%s\n", debugstr_guid(Uuid));
    
-   return S_OK;
+   return RPC_S_OK;
 }
 
 /*************************************************************************
@@ -277,7 +277,7 @@
 {
   HeapFree( GetProcessHeap(), 0, *String);
 
-  return S_OK;
+  return RPC_S_OK;
 }
 
 /*************************************************************************
@@ -297,18 +297,16 @@
 {
   *StringUuid = HeapAlloc( GetProcessHeap(), 0, sizeof(char) * 37);
 
-
-  /* FIXME: this should be RPC_S_OUT_OF_MEMORY */
   if(!(*StringUuid))
-    return ERROR_OUTOFMEMORY;
+    return RPC_S_OUT_OF_MEMORY;
 
-       sprintf(*StringUuid, "{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+  sprintf(*StringUuid, "{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
                  Uuid->Data1, Uuid->Data2, Uuid->Data3,
                  Uuid->Data4[0], Uuid->Data4[1], Uuid->Data4[2],
                  Uuid->Data4[3], Uuid->Data4[4], Uuid->Data4[5],
                  Uuid->Data4[6], Uuid->Data4[7] );
 
-  return S_OK; /*FIXME: this should be RPC_S_OK */
+  return RPC_S_OK;
 }
 
 /***********************************************************************
@@ -318,7 +316,194 @@
   HMODULE hDll,          /* [in] */
   void **pProxyFileList, /* [???] FIXME: const ProxyFileInfo ** */
   const CLSID *pclsid    /* [in] */
-) {
+) 
+{
   FIXME("(%x,%p,%s), stub!\n",hDll,pProxyFileList,debugstr_guid(pclsid));
   return S_OK;
+}
+
+/***********************************************************************
+ *		RpcServerUseProtseqEpA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerUseProtseqEpA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor )
+{
+  RPC_POLICY policy;
+  
+  TRACE( "(%s,%u,%s,%p)\n", Protseq, MaxCalls, Endpoint, SecurityDescriptor );
+  
+  /* This should provide the default behaviour */
+  policy.Length        = sizeof( policy );
+  policy.EndpointFlags = 0;
+  policy.NICFlags      = 0;
+  
+  return RpcServerUseProtseqEpExA( Protseq, MaxCalls, Endpoint, SecurityDescriptor, &policy );
+}
+
+/***********************************************************************
+ *		RpcServerUseProtseqEpW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerUseProtseqEpW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor )
+{
+  RPC_POLICY policy;
+  
+  TRACE( "(%s,%u,%s,%p)\n", debugstr_w( Protseq ), MaxCalls, debugstr_w( Endpoint ), SecurityDescriptor );
+  
+  /* This should provide the default behaviour */
+  policy.Length        = sizeof( policy );
+  policy.EndpointFlags = 0;
+  policy.NICFlags      = 0;
+  
+  return RpcServerUseProtseqEpExW( Protseq, MaxCalls, Endpoint, SecurityDescriptor, &policy );
+}
+
+/***********************************************************************
+ *		RpcServerUseProtseqEpExA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerUseProtseqEpExA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor,
+                          PRPC_POLICY lpPolicy )
+{
+  FIXME( "(%s,%u,%s,%p,{%u,%lu,%lu}): stub\n", Protseq, MaxCalls, Endpoint, SecurityDescriptor,
+                                               lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
+  
+  return RPC_S_PROTSEQ_NOT_SUPPORTED; /* We don't support anything at this point */			  
+}
+
+/***********************************************************************
+ *		RpcServerUseProtseqEpExW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerUseProtseqEpExW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor,
+                          PRPC_POLICY lpPolicy )
+{
+  FIXME( "(%s,%u,%s,%p,{%u,%lu,%lu}): stub\n", debugstr_w( Protseq ), MaxCalls, debugstr_w( Endpoint ),
+                                               SecurityDescriptor,
+                                               lpPolicy->Length, lpPolicy->EndpointFlags, lpPolicy->NICFlags );
+  
+  return RPC_S_PROTSEQ_NOT_SUPPORTED; /* We don't support anything at this point */			  
+}
+
+/***********************************************************************
+ *		RpcServerRegisterIf (RPCRT4.@)
+ */
+RPC_STATUS RPC_ENTRY
+RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv )
+{
+  /* FIXME: Dump UUID using UuidToStringA */
+  TRACE( "(%p,%p,%p)\n", IfSpec, MgrTypeUuid, MgrEpv );
+  
+  return RpcServerRegisterIf2( IfSpec, MgrTypeUuid, MgrEpv, 0, RPC_C_LISTEN_MAX_CALLS_DEFAULT, (UINT)-1, NULL );
+}
+
+/***********************************************************************
+ *		RpcServerRegisterIfEx (RPCRT4.@)
+ */
+RPC_STATUS RPC_ENTRY
+RpcServerRegisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
+                       UINT Flags, UINT MaxCalls, RPC_IF_CALLBACK_FN* IfCallbackFn )
+{
+  /* FIXME: Dump UUID using UuidToStringA */
+  TRACE( "(%p,%p,%p,%u,%u,%p)\n", IfSpec, MgrTypeUuid, MgrEpv, Flags, MaxCalls, IfCallbackFn );
+  
+  return RpcServerRegisterIf2( IfSpec, MgrTypeUuid, MgrEpv, Flags, MaxCalls, (UINT)-1, IfCallbackFn );
+}
+
+/***********************************************************************
+ *		RpcServerRegisterIf2 (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerRegisterIf2( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
+                      UINT Flags, UINT MaxCalls, UINT MaxRpcSize, RPC_IF_CALLBACK_FN* IfCallbackFn )
+{
+  /* FIXME: Dump UUID using UuidToStringA */
+  FIXME( "(%p,%p,%p,%u,%u,%u,%p): stub\n", IfSpec, MgrTypeUuid, MgrEpv, Flags, MaxCalls, MaxRpcSize, IfCallbackFn );
+  
+  return RPC_S_UNKNOWN_IF; /* I guess this return code is as good as any failure */
+}
+
+
+/***********************************************************************
+ *		RpcServerRegisterAuthInfoA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerRegisterAuthInfoA( LPSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
+                            LPVOID Arg )
+{
+  FIXME( "(%s,%lu,%p,%p): stub\n", ServerPrincName, AuthnSvc, GetKeyFn, Arg );
+  
+  return RPC_S_UNKNOWN_AUTHN_SERVICE; /* We don't know any authentication services */
+}
+
+/***********************************************************************
+ *		RpcServerRegisterAuthInfoW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerRegisterAuthInfoW( LPWSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
+                            LPVOID Arg )
+{
+  FIXME( "(%s,%lu,%p,%p): stub\n", debugstr_w( ServerPrincName ), AuthnSvc, GetKeyFn, Arg );
+  
+  return RPC_S_UNKNOWN_AUTHN_SERVICE; /* We don't know any authentication services */
+}
+
+/***********************************************************************
+ *		RpcServerListen (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait )
+{
+  FIXME( "(%u,%u,%u): stub\n", MinimumCallThreads, MaxCalls, DontWait );
+  
+  return RPC_S_NO_PROTSEQS_REGISTERED; /* Since we don't allow registration this seems reasonable */
+}
+
+/***********************************************************************
+ *		RpcStringBindingComposeA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcStringBindingComposeA( LPSTR ObjUuid, LPSTR Protseq, LPSTR NetworkAddr, LPSTR Endpoint,
+                          LPSTR Options, LPSTR* StringBinding )
+{
+  FIXME( "(%s,%s,%s,%s,%s,%p): stub\n", ObjUuid, Protseq, NetworkAddr, Endpoint, Options, StringBinding );
+  *StringBinding = NULL;
+  
+  return RPC_S_INVALID_STRING_UUID; /* Failure */
+}
+
+/***********************************************************************
+ *		RpcStringBindingComposeW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcStringBindingComposeW( LPWSTR ObjUuid, LPWSTR Protseq, LPWSTR NetworkAddr, LPWSTR Endpoint,
+                          LPWSTR Options, LPWSTR* StringBinding )
+{
+  FIXME( "(%s,%s,%s,%s,%s,%p): stub\n", debugstr_w( ObjUuid ), debugstr_w( Protseq ), debugstr_w( NetworkAddr ),
+                                        debugstr_w( Endpoint ), debugstr_w( Options ), StringBinding );
+  *StringBinding = NULL;
+  
+  return RPC_S_INVALID_STRING_UUID; /* Failure */
+}
+
+/***********************************************************************
+ *		RpcBindingFromStringBindingA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingFromStringBindingA( LPSTR StringBinding, RPC_BINDING_HANDLE* Binding )
+{
+  FIXME( "(%s,%p): stub\n", StringBinding, Binding );
+  
+  return RPC_S_INVALID_STRING_BINDING; /* As good as any failure code */
+}
+  
+/***********************************************************************
+ *		RpcBindingFromStringBindingW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingFromStringBindingW( LPWSTR StringBinding, RPC_BINDING_HANDLE* Binding )
+{
+  FIXME( "(%s,%p): stub\n", debugstr_w( StringBinding ), Binding );
+
+  return RPC_S_INVALID_STRING_BINDING; /* As good as any failure code */
 }


More information about the wine-patches mailing list