|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: lkp.cxx
//
//--------------------------------------------------------------------------
// drt that tries to lookup the various things.
#include "drt.hxx"
RPC_STATUS LookupCountAndPrint(RPC_NS_HANDLE NsHandle, int exp) { int i=0; RPC_STATUS status = 0; RPC_BINDING_VECTOR * pBindingVec; WCHAR * szBinding;
for (;!status;) { status = RpcNsBindingLookupNext( NsHandle, &pBindingVec ); printf("RpcNsBindingLookupNext returned 0x%x\n", status);
if (!status) { status = RpcBindingToStringBinding(pBindingVec->BindingH[0], &szBinding); i++; printf("%d. Binding = \"%S\"\n", i, szBinding); } } if (i != exp) return 1; return 0; }
void __cdecl main(int argc, char **argv) { RPC_STATUS status; RPC_NS_HANDLE NsHandle; WCHAR * Annotation, *MemberName; UUID_VECTOR * objuuid = NULL; RPC_IF_HANDLE IfSpec; RPC_IF_ID ifidgot; DWORD Priority; int fFailed = 0; UUID uuidfound;
FormObjUuid(objid, 1, &objuuid);
FormIfHandle(ifid[0], &IfSpec);
status = RpcNsMgmtSetExpAge(1);
printf("RpcNsMgmtSetExpAge returned 0x%x\n", status); if (status) fFailed = 1;
// no interface, no objuuid
printf("**Test: Entry Name, No intf, No objuuid\n"); status = RpcNsBindingLookupBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szSrvEntryName[0], // nsi entry name
NULL, NULL, 1, &NsHandle);
printf("RpcNsBindingLookupBegin returned 0x%x\n", status); if (status) fFailed = 1;
status = LookupCountAndPrint(NsHandle, 2); if (status) fFailed = 1;
status = RpcNsBindingLookupDone( &NsHandle ); printf("RpcNsBindingLookupDone returned 0x%x\n\n", status); if (status) fFailed = 1;
// 1 obj uuid
printf("**Test: Entry Name, No intf, 1 objuuid\n"); status = RpcNsBindingLookupBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szSrvEntryName[0], // nsi entry name
NULL, objid, 1, &NsHandle);
printf("RpcNsBindingLookupBegin returned 0x%x\n", status); if (status) fFailed = 1;
status = LookupCountAndPrint(NsHandle, 1); if (status) fFailed = 1;
status = RpcNsBindingLookupDone( &NsHandle ); printf("RpcNsBindingLookupDone returned 0x%x\n\n", status); if (status) fFailed = 1;
printf("**Test: No Entry Name, 1 intf, No objuuid\n"); // Null entry name, 1 intf, no obj uuid
status = RpcNsBindingLookupBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
NULL, // nsi entry name
IfSpec, NULL, 1, &NsHandle);
printf("RpcNsBindingLookupBegin returned 0x%x\n", status); if (status) fFailed = 1;
status = LookupCountAndPrint(NsHandle, 2); if (status) fFailed = 1;
status = RpcNsBindingLookupDone( &NsHandle ); printf("RpcNsBindingLookupDone returned 0x%x\n\n", status); if (status) fFailed = 1;
printf("**Test: Enumerating Profiles\n"); status = RpcNsProfileEltInqBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szPrfEntryName[0], RPC_C_PROFILE_ALL_ELTS, NULL, RPC_C_VERS_ALL, RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
NULL, &NsHandle); printf("RpcNsProfileEltInqBegin returned 0x%x\n\n", status); if (status) fFailed = 1;
status = RpcNsProfileEltInqNext( NsHandle, &ifidgot, &MemberName, &Priority, &Annotation); printf("RpcNsProfileEltInqNext returned 0x%x\n\n", status); printf("MemberName = \"%S\", Priority = %d, Annotation = \"%S\"\n", MemberName, Priority, Annotation); if (status) fFailed = 1;
status = RpcNsProfileEltInqNext( NsHandle, &ifidgot, &MemberName, &Priority, &Annotation); printf("RpcNsProfileEltInqNext returned 0x%x\n\n", status); printf("MemberName = \"%S\", Priority = %d, Annotation = \"%S\"\n", MemberName, Priority, Annotation); if (status) fFailed = 1;
status = RpcNsProfileEltInqNext( NsHandle, &ifidgot, &MemberName, &Priority, &Annotation); printf("RpcNsProfileEltInqNext returned 0x%x\n", status); if (!status) fFailed = 1;
status = RpcNsProfileEltInqDone(&NsHandle); printf("RpcNsProfileEltInqDone returned 0x%x\n\n", status); if (status) fFailed = 1;
printf("**Test: Enumerating Groups\n");
status = RpcNsGroupMbrInqBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szGrpEntryName[0], RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
&NsHandle); printf("RpcNsProfileEltInqBegin returned 0x%x\n\n", status); if (status) fFailed = 1;
status = RpcNsGroupMbrInqNext( NsHandle, &MemberName ); printf("RpcNsProfileEltInqNext returned 0x%x\n\n", status); printf("MemberName = \"%S\"\n", MemberName); if (status) fFailed = 1;
status = RpcNsGroupMbrInqNext( NsHandle, &MemberName ); printf("RpcNsProfileEltInqNext returned 0x%x\n\n", status); printf("MemberName = \"%S\"\n", MemberName);
if (status) fFailed = 1;
status = RpcNsGroupMbrInqNext( NsHandle, &MemberName ); printf("RpcNsProfileEltInqNext returned 0x%x\n\n", status); if (!status) fFailed = 1;
status = RpcNsGroupMbrInqDone(&NsHandle); printf("RpcNsProfileEltInqDone returned 0x%x\n\n", status); if (status) fFailed = 1;
printf("**Test: Lookup using Groups\n"); printf("**Test: Entry Name, No intf, No objuuid\n");
status = RpcNsBindingLookupBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szGrpEntryName[0], // nsi entry name
NULL, NULL, 1, &NsHandle);
printf("RpcNsBindingLookupBegin returned 0x%x\n", status); if (status) fFailed = 1;
status = LookupCountAndPrint(NsHandle, 2); if (status) fFailed = 1;
status = RpcNsBindingLookupDone( &NsHandle ); printf("RpcNsBindingLookupDone returned 0x%x\n\n", status); if (status) fFailed = 1;
printf("**Test: Lookup using Profiles\n"); printf("**Test: Entry Name, No intf, No objuuid\n"); status = RpcNsBindingLookupBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szPrfEntryName[0], // nsi entry name
NULL, NULL, 1, &NsHandle);
printf("RpcNsBindingLookupBegin returned 0x%x\n", status); if (status) fFailed = 1;
status = LookupCountAndPrint(NsHandle, 2); if (status) fFailed = 1;
status = RpcNsBindingLookupDone( &NsHandle ); printf("RpcNsBindingLookupDone returned 0x%x\n\n", status); if (status) fFailed = 1;
printf("**Test: Object Inquiry\n"); printf("**Test: Entry Name\n"); status = RpcNsEntryObjectInqBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szSrvEntryName[0], // nsi entry name
&NsHandle);
printf("RpcNsEntryObjectInqBegin returned 0x%x\n", status); if (status) fFailed = 1;
status = RpcNsEntryObjectInqNext(NsHandle, &uuidfound); printf("RpcNsEntryObjectInqNext returned 0x%x\n", status); if (status) fFailed = 1;
status = RpcNsEntryObjectInqNext(NsHandle, &uuidfound); printf("RpcNsEntryObjectInqNext returned 0x%x\n", status); if (status) fFailed = 1;
status = RpcNsEntryObjectInqNext(NsHandle, &uuidfound); printf("RpcNsEntryObjectInqNext returned 0x%x\n", status); if (!status) fFailed = 1;
status = RpcNsEntryObjectInqDone(&NsHandle); printf("RpcNsEntryObjectInqDone returned 0x%x\n\n", status); if (status) fFailed = 1;
// getting the dynamic endpoint
printf("**Test: Dyn Entry Name, No intf, No objuuid\n"); status = RpcNsBindingLookupBegin( RPC_C_NS_SYNTAX_DEFAULT, // name syntax type
szDynSrvEntryName, // nsi entry name
NULL, NULL, 1, &NsHandle);
printf("RpcNsBindingLookupBegin returned 0x%x\n", status); if (status) fFailed = 1;
status = LookupCountAndPrint(NsHandle, 1); if (status) fFailed = 1;
status = RpcNsBindingLookupDone( &NsHandle ); printf("RpcNsBindingLookupDone returned 0x%x\n\n", status); if (status) fFailed = 1;
if (fFailed) printf("Lookup tests FAILED!!\n"); else printf("Lookup tests PASSED!!\n"); }
|