Microsoft Office Live Communications Server 2005 with SP1
Registering a SIP Application (Unmanaged Code)
The following code sample demonstrates how to register a SIP application from unmanaged COM code.
CComPtr<IWbemServices> spIServices;
// Get the IWbemServices pointer (connect to WMI ...).
// Create a new instance of the MSFT_SIPApplicationSetting class.
CComBSTR sbstrClassName(L"MSFT_SIPApplicationSetting");
CComPtr<IWbemClassObject> spIWbemClassObject;
HRESULT hr = spIServices->GetObject(sbstrClassName,
WBEM_FLAG_RETURN_WBEM_COMPLETE, NULL, &spIWbemClassObject;, NULL);
if (FAILED(hr))
{
return hr;
}
CComPtr<IWbemClassObject> spApplicationSettingObject;
hr = spIWbemClassObject->SpawnInstance(0, &spApplicationSettingObject;);
if (FAILED(hr))
{
return hr;
}
// Set the attributes for the instance that was created.
// Create a unique instance ID.
OLECHAR oleszTemp[39] = {0};
GUID guid;
hr = CoCreateGuid(&guid;);
if (FAILED(hr))
{
return hr;
}
// Set the 'InstanceID' field to the unique GUID value that was created.
StringFromGUID2(guid, oleszTemp, sizeof(oleszTemp) / sizeof(OLECHAR));
CComVariant svarGuid(oleszTemp);
hr = spApplicationSettingObject->Put(L"InstanceID", 0, svarGuid);
if (FAILED(hr))
{
return hr;
}
// Set the 'Name' field.
CComVariant svarName(L"NameValue");
hr = spApplicationSettingObject->Put(L"Name", 0, svarName);
if (FAILED(hr))
{
return hr;
}
// Set the 'URI' field.
CComVariant svarURI(L"URIValue");
hr = spApplicationSettingObject->Put(L"URI", 0, svarURI);
if (FAILED(hr))
{
return hr;
}
// Set the 'Enabled' field.
CComVariant svarEnabled(true);
hr = spApplicationSettingObject->Put(L"Enabled", 0, svarEnabled);
if (FAILED(hr))
{
return hr;
}
// Set the 'Critical' field.
CComVariant svarCritical(false);
hr = spApplicationSettingObject->Put(L"Critical", 0, svarCritical);
if (FAILED(hr))
{
return hr;
}
// Set the 'ScriptPath' field.
// (only needs to be set for scriptis NULL for non-script applications)
CComVariant svarScriptPath(L"ScriptPathValue");
hr = spApplicationSettingObject->Put(L"ScriptPath", 0, svarScriptPath);
if (FAILED(hr))
{
return hr;
}
// Commit the new instance to WMI.
hr = spIServices->PutInstance(spApplicationSettingObject,
WBEM_FLAG_CREATE_OR_UPDATE, NULL, NULL);
if (FAILED(hr))
{
return hr;
}