// *************************************************************************** // Copyright (C) 1991-2003 SQLDev.Net // // $BeginHeader$ // // @file@: RegisteredServers.cpp // @author@: Gert E.R. Drapers (GertD@SQLDev.Net) // @description@: Example: List all Registered Servers in SQL Enterprise Manager using SQL-DMO // @remarks@: // @created@: 2003-03-03 // @lastsaved@: 2003-03-03 // // update history: // @version@ @initials@ @updatedate@ @release@ @description@ // 00000 GED 2003-03-03 v1.0.0.0 created // // @EndHeader@ // *************************************************************************** #define STRICT // strict type checking #define UNICODE // Unicode #define _UNICODE // Unicode #define WIN32_LEAN_AND_MEAN // do not include the world #define INC_OLE2 // include OLE/COM files #include #include #include #include #import "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll" no_namespace VOID ListServerGroups(ServerGroupsPtr spServerGroups); VOID ListRegisteredServers(_ServerGroupPtr spServerGroup); INT _tmain(INT argc, TCHAR* argv[], TCHAR* envp[]) { HRESULT hr; if SUCCEEDED(hr = CoInitialize(NULL)) { try { _ApplicationPtr spApplication; spApplication.CreateInstance(__uuidof(Application)); ListServerGroups(spApplication->ServerGroups); } catch(_com_error pCE) { _tprintf(_T("\n%s Error: %ld\r\n%s\r\n%s\r\n"), (TCHAR*)pCE.Source(), pCE.Error(), (TCHAR*)pCE.Description(), (TCHAR*)pCE.ErrorMessage()); } CoUninitialize(); } else { _tprintf(_T("Call to CoInitialize failed.\n")); } return(0); } VOID ListServerGroups(ServerGroupsPtr spServerGroups) { for (INT i = 1; i <= spServerGroups->Count; i++) { _ServerGroupPtr spServerGroup = spServerGroups->Item(i); ServerGroupsPtr spInnerServerGroups = spServerGroup->ServerGroups; if (spInnerServerGroups->Count > 0) { ListServerGroups(spInnerServerGroups); } ListRegisteredServers(spServerGroup); } } VOID ListRegisteredServers(_ServerGroupPtr spServerGroup) { RegisteredServersPtr spRegisteredServers = spServerGroup->RegisteredServers; for (INT i = 1; i <= spRegisteredServers->Count; i++) { _RegisteredServerPtr spRegisteredServer = spRegisteredServers->Item(i); _tprintf(_T("%s\t%s\n"), (LPTSTR) spServerGroup->Name, (LPTSTR) spRegisteredServer->Name); } }