80 lines
2.1 KiB
C++
80 lines
2.1 KiB
C++
//+-------------------------------------------------------------------------
|
||
//
|
||
// Microsoft Windows
|
||
//
|
||
// Copyright (C) Microsoft Corporation, 1997 - 1999
|
||
//
|
||
// File: drtcom.cxx
|
||
//
|
||
//--------------------------------------------------------------------------
|
||
|
||
// the common functions req'd by more than 1 exe in this drts
|
||
|
||
#include "rpc.h"
|
||
#include "rpcnsi.h"
|
||
#include "stdio.h"
|
||
#include "stdlib.h"
|
||
|
||
WCHAR *ep[] = { L"1025",
|
||
L"1026"
|
||
};
|
||
|
||
void FormIfHandle(GUID ifid, RPC_IF_HANDLE *IfSpec)
|
||
{
|
||
RPC_SERVER_INTERFACE *intf = new RPC_SERVER_INTERFACE;
|
||
RPC_DISPATCH_TABLE *pdispatch = new RPC_DISPATCH_TABLE;
|
||
RPC_DISPATCH_FUNCTION *pfn = new RPC_DISPATCH_FUNCTION;
|
||
|
||
intf->Length = sizeof(RPC_SERVER_INTERFACE);
|
||
|
||
(intf->InterfaceId).SyntaxGUID = ifid;
|
||
(intf->InterfaceId).SyntaxVersion.MajorVersion = 1;
|
||
(intf->InterfaceId).SyntaxVersion.MinorVersion = 0;
|
||
|
||
(intf->TransferSyntax).SyntaxGUID = ifid;
|
||
(intf->TransferSyntax).SyntaxVersion.MajorVersion = 1;
|
||
(intf->TransferSyntax).SyntaxVersion.MinorVersion = 0;
|
||
|
||
intf->RpcProtseqEndpointCount = 0;
|
||
intf->RpcProtseqEndpoint = NULL;
|
||
intf->InterpreterInfo = NULL;
|
||
intf->Flags = 0;
|
||
|
||
pfn[0] = NULL;
|
||
|
||
pdispatch->DispatchTableCount = 1;
|
||
pdispatch->DispatchTable = pfn;
|
||
pdispatch->Reserved = 0;
|
||
|
||
intf->DispatchTable = pdispatch; // &m_DispatchTable;
|
||
|
||
*IfSpec = (RPC_IF_HANDLE)intf;
|
||
}
|
||
|
||
void FormBindingVector(WCHAR **Binding, ULONG num, RPC_BINDING_VECTOR **BindVec)
|
||
{
|
||
ULONG i;
|
||
RPC_BINDING_HANDLE *pBindHandle;
|
||
RPC_STATUS status = 0;
|
||
|
||
// RpcStringBindingCompose(NULL, L"", L"0.0.0.0",
|
||
for (i = 0; i < num; i++) {
|
||
status = RpcServerUseProtseqEp(Binding[i], 20, ep[i], NULL);
|
||
}
|
||
|
||
status = RpcServerInqBindings(BindVec);
|
||
}
|
||
|
||
void FormObjUuid(GUID *pguid, ULONG num, UUID_VECTOR **objuuid)
|
||
{
|
||
ULONG i;
|
||
*objuuid = (UUID_VECTOR *)malloc(sizeof(ULONG)+sizeof(UUID *)*num);
|
||
(*objuuid)->Count = num;
|
||
|
||
for (i = 0; i < num; i++) {
|
||
(*objuuid)->Uuid[i] = pguid+i;
|
||
}
|
||
}
|
||
|
||
|
||
|