#include <comdef.h>
#include <wbemcli.h>
#pragma comment(lib, "wbemuuid.lib")
#include <comutil.h> // _bstr_t
#pragma comment(lib, "comsuppw.lib")// or comsuppwd.lib
CoInitializeEx(0, COINIT_MULTITHREADED);
CoInitializeSecurity(NULL,-1,NULL,NULL,RPC_C_AUTHN_LEVEL_CONNECT,RPC_C_IMP_LEVEL_IDENTIFY,NULL,EOAC_NONE,0);
IWbemLocator *pLoc = 0;
CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc);
IWbemServices *pServices = NULL;
pLoc->ConnectServer(_bstr_t(L"ROOT\\CIMV2"),NULL,NULL,0,NULL,0,0,&pServices);
CoSetProxyBlanket(pServices,RPC_C_AUTHN_WINNT,RPC_C_AUTHZ_NONE,NULL,RPC_C_AUTHN_LEVEL_CALL,RPC_C_IMP_LEVEL_IMPERSONATE,NULL,EOAC_NONE);
IEnumWbemClassObject *pEnumWbemClsObj;
BSTR bstrClsName = SysAllocString (L"Win32_NamedJobObject");;
pServices->CreateInstanceEnum (bstrClsName, WBEM_FLAG_RETURN_IMMEDIATELY | WBEM_FLAG_FORWARD_ONLY, NULL, &pEnumWbemClsObj);
SysFreeString (bstrClsName);
: