return NULL;
}
+/***********************************************************************
+ * NDRCContextBinding
+ */
RPC_BINDING_HANDLE WINAPI NDRCContextBinding(NDR_CCONTEXT CContext)
{
if(!CContext)
return (RPC_BINDING_HANDLE)((CContextHandle*)CContext)->Binding;
}
+
+/***********************************************************************
+ * RpcSmDestroyClientContext
+ */
+RPC_STATUS WINAPI RpcSmDestroyClientContext(void** ContextHandle)
+{
+ CContextHandle *ctx = (CContextHandle*)ContextHandle;
+
+ if(!ctx)
+ return RPC_X_SS_CONTEXT_MISMATCH;
+
+ RPCRT4_DestroyBinding(ctx->Binding);
+ HeapFree(GetProcessHeap(), 0, ctx);
+ *ContextHandle = NULL;
+
+ return RPC_S_OK;
+}
+
+/***********************************************************************
+ * RpcSsDestroyClientContext
+ */
+void WINAPI RpcSsDestroyClientContext(void** ContextHandle)
+{
+ RPC_STATUS status;
+
+ status = RpcSmDestroyClientContext(ContextHandle);
+
+ if(status != RPC_S_OK)
+ RpcRaiseException(status);
+}
+
+
@ stub RpcServerYield
@ stub RpcSmAllocate
@ stub RpcSmClientFree
-@ stub RpcSmDestroyClientContext
+@ stdcall RpcSmDestroyClientContext (ptr)
@ stub RpcSmDisableAllocate
@ stub RpcSmEnableAllocate
@ stub RpcSmFree
@ stub RpcSsAllocate
@ stub RpcSsContextLockExclusive # wxp
@ stub RpcSsContextLockShared # wxp
-@ stub RpcSsDestroyClientContext
+@ stdcall RpcSsDestroyClientContext (ptr)
@ stub RpcSsDisableAllocate
@ stub RpcSsDontSerializeContext
@ stub RpcSsEnableAllocate