I am trying to create a group policy on my win2k server in C++ using gpedit
via COM. ::CoGetClassObject succeeds but ::CoCreateInstance fails:

::CoInitializeEx(NULL, COINIT_MULTITHREADED);

std::stringstream ss;
ss << "CGPO Instantiation Test Begin..." << std::endl << std::endl;

//////////////////////////// CLSCTX_INPROC_SERVER //////////////////////////
{
CComPtr<IClassFactory> groupPolicyObject;
HRESULT hr = ::CoGetClassObject(CLSID_GroupPolicyObject,

CLSCTX_INPROC_SERVER,

NULL, IID_IClassFactory,

(void**)&(groupPolicyObject.p));
if (SUCCEEDED(hr))
{
ss << "CoGetClassObject CLSCTX_INPROC_SERVER SUCCEEDED: " << hr << std::endl;
}
else
{
ss << "CoGetClassObject CLSCTX_INPROC_SERVER FAILED: " << hr << std::endl;
}
}
{
CComPtr<IGroupPolicyObject> groupPolicyObject;
HRESULT hr = ::CoCreateInstance(CLSID_GroupPolicyObject,
NULL,
CLSCTX_INPROC_SERVER,
IID_IGroupPolicyObject,
(void**)&(groupPolicyObject.p));
if (SUCCEEDED(hr))
{
ss << "CoCreateInstance CLSCTX_INPROC_SERVER SUCCEEDED: " << hr << std::endl;
}
else
{
ss << "CoCreateInstance CLSCTX_INPROC_SERVER FAILED: " << hr << std::endl;
}
}

My server is service pack 4. Anyone got any ideas?