//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1997 - 1999 // // File: main.cxx // //-------------------------------------------------------------------------- // test routine for create/delete #include "rpc.h" #include "rpcndr.h" #include // copied from Catalin's test------------------- RPC_DISPATCH_TABLE nstest01_v1_0_DispatchTable = { 2, nstest01_table }; extern RPC_DISPATCH_TABLE nstest01_v1_0_DispatchTable; static const RPC_SERVER_INTERFACE nstest01___RpcServerInterface = { sizeof(RPC_SERVER_INTERFACE), {{0xdeadbeef,0x6b56,0x11d0,{0xbb,0xd7,0x00,0xc0,0x4f,0xd7,0xcf,0xc9}},{1,0}}, {{0xdeadbeef,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}, &nstest01_v1_0_DispatchTable, 0, 0, 0, 0, 0 }; RPC_IF_HANDLE nstest01_v1_0_s_ifspec = (RPC_IF_HANDLE)& nstest01___RpcServerInterface; //------------------------------------ void __cdecl main(int argc, char *argv[]) { RPC_STATUS status; /* RPC_IF_HANDLE intf; RPC_BINDING_VECTOR bv; UUID_VECTOR ov; hIfSpec = nstest01_v1_0_s_ifspec; status = RpcServerRegisterIf( nstest01_v1_0_s_ifspec, NULL, NULL); printf("RpcServerRegisterIf returned 0x%x\n", status); if (MSG_OK != status){ dwExitCode = (DWORD)status; break; } else fRegistered = 1; } else hIfSpec = NULL; // BindingVec if( TEST_OPT_VALID_BIND == pTestOpt->m_nBindingVec ) { printf("CallingRpcServerUseProtseq...\n"); status = RpcServerUseProtseq( pszProtSeq[pTestOpt->m_nProtSeq], cMaxCalls, // max concurrent calls pszSecurity); // Security descriptor printf("RpcServerUseProtseq returned 0x%x\n", status); if (MSG_OK != status){ dwExitCode = ERROR_MSG_USE_PROTSEQ; break; } status = RpcServerInqBindings(&pBindingVector); printf("RpcServerInqBindings returned 0x%x\n", status); if (MSG_OK != status){ dwExitCode = (DWORD)status; break; } status = RpcServerInqBindings(&pbkBindingVector); printf("RpcServerInqBindings returned 0x%x\n", status); if (MSG_OK != status){ dwExitCode = (DWORD)status; break; } if( hIfSpec ){ status = RpcEpRegister(hIfSpec, pBindingVector, pUuidVect, ""); printf("RpcEpRegister returned 0x%x\n", status); if (MSG_OK != status){ dwExitCode = (DWORD)status; break; } else fEndpoint = 1; } } else pBindingVector = NULL; if( NULL != pBindingVector ){ status = RpcBindingReset( pBindingVector->BindingH[0] ); printf("RpcBindingReset returned 0x%x\n", status); } status = RpcServerRegisterIf(nstest01_v1_0_s_ifspec, NULL, NULL); // too many hoops */ // create an entry status = RpcNsMgmtEntryCreate(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Create returned Status = 0x%x\n", status); // delete an entry status = RpcNsMgmtEntryDelete(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Delete returned Status = 0x%x\n", status); // create an entry status = RpcNsMgmtEntryCreate(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Create returned Status = 0x%x\n", status); // export to it status = RpcNsBindingExport(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08", intf, bv, ov); printf("Export returned Status = 0x%x\n", status); // delete it status = RpcNsMgmtEntryDelete(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Delete returned Status = 0x%x\n", status); // create an entry status = RpcNsMgmtEntryCreate(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Create returned Status = 0x%x\n", status); // export to the group entry // delete the entry status = RpcNsMgmtEntryDelete(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Delete returned Status = 0x%x\n", status); // create an entry status = RpcNsMgmtEntryCreate(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Create returned Status = 0x%x\n", status); // export it as profile entry // delete the entry status = RpcNsMgmtEntryDelete(RPC_C_NS_SYNTAX_DEFAULT, L"/.:/ns_test_08"); printf("Delete returned Status = 0x%x\n", status); }