/*++ Copyright (c) 2000 Microsoft Corporation Module Name: rpcep.cpp Abstract: dump all registered interfaces on the local RPC endpoint mapper Author: Charlie Wickham (charlwi) 10-Feb-2000 Revision History: --*/ #include #include #include CHAR blanks[] = " "; int __cdecl main( int argc, char *argv[]) { RPC_STATUS status; RPC_EP_INQ_HANDLE inquiryContext; DWORD numBlanks; status = RpcMgmtEpEltInqBegin(NULL, RPC_C_EP_ALL_ELTS, (RPC_IF_ID *)NULL, 0, NULL, &inquiryContext); if (status != RPC_S_OK) { printf( "RpcMgmtEpEltInqBegin() failed with %d\n", status); return status; } do { RPC_IF_ID ifId; RPC_BINDING_HANDLE bindingHandle; unsigned char * annotation; unsigned char * localBinding; status = RpcMgmtEpEltInqNext(inquiryContext, &ifId, &bindingHandle, NULL, &annotation); if ( status == RPC_X_NO_MORE_ENTRIES ) { break; } else if (status != RPC_S_OK) { printf( "RpcMgmtEpEltInqNext() failed with %d\n", status); break; } status = RpcBindingToStringBinding( bindingHandle, &localBinding ); printf("%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X", ifId.Uuid.Data1, ifId.Uuid.Data2, ifId.Uuid.Data3, ifId.Uuid.Data4[0], ifId.Uuid.Data4[1], ifId.Uuid.Data4[2], ifId.Uuid.Data4[3], ifId.Uuid.Data4[4], ifId.Uuid.Data4[5], ifId.Uuid.Data4[6], ifId.Uuid.Data4[7] ); numBlanks = sizeof(blanks) - ( strlen( (const char *)localBinding ) + 2 ); printf(" [%s]%*.s\"%s\"\n", localBinding, numBlanks, blanks, annotation ); RpcBindingFree( &bindingHandle ); RpcStringFree( &localBinding ); } while ( TRUE ); status = RpcMgmtEpEltInqDone( &inquiryContext ); if (status != RPC_S_OK) { printf( "RpcMgmtEpEltInqDone() failed with %d\n", status); } return 0; } /* end rpcep.cpp */