To make a synchronous call to a Microsoft System Center Configuration Manager 2007 endpoint, you use the ISmsMessaging::Invoke Method method. This method takes an XML defined message, and returns, synchronously, an XML blob from a management point endpoint.
The following C++ example shows how to request policy assignments from a management point on the local computer. The example demonstrates how to do the following:
- Create the message.
- Set the message body for a policy assignment request. You will
need to implement the method
CreatePolicyAssignmentsRequestMessage to create the XML that
is used by ISmsMessage::SetBodyFromString
Method. The memory for the XML must be allocated by using
CoTaskMemAlloc. For information about the XML you need to
create, see the Configuration Manager
Policy Assignment Message XML.
- Set the target endpoint to the policy manager.
- Set the management point computer. In this case, null is
passed to signify the local computer.
- Make the synchronous call.
- Retrieve the returned XML.
- Clean up after the call. In particular, CoTaskMemFree
must be called to free the memory that is used by the input message
body XML and the returned XML.
Example
![]() |
|
---|---|
HRESULT RequestPolicyAssignments() { ISmsMessaging *pMessaging = NULL; ISmsMessage *pRequest = NULL; ISmsMessage *pReply = NULL; WCHAR *pszRequestMessage = NULL; WCHAR *pszReplyMessage = NULL; _BEGIN // Create root messaging object. _CHECKHR( ::CoCreateInstance( CLSID_SmsMessaging, NULL, CLSCTX_INPROC, IID_ISmsMessaging, (LPVOID*)&pMessaging) ); // Create message object for the request. _CHECKHR( pMessaging->CreateMessage(&pRequest) ); // Set the target of the message to be the Policy Manager endpoint. _CHECKHR( pRequest->SetTargetEndpoint(L"MP_PolicyManager") ); // Construct a policy assignments request message. _CHECKHR( CreatePolicyAssignmentsRequestMessage(&pszRequestMessage) ); // Set the message body with the request. _CHECKHR( pRequest->SetBodyFromString(pszRequestMessage) ); // Invoke the targeted endpoint on the local computer with the request, // and retrieve the reply. _CHECKHR( pMessaging->Invoke(NULL, pRequest, &pReply) ); // Extract body from reply message. _CHECKHR( pReply->GetBodyToString(&pszReplyMessage) ); // Add code to use the reply message. _END // All cleanup must go after _END block to ensure it gets invoked. if(pszReplyMessage) { ::CoTaskMemFree(pszReplyMessage); } if(pReply) { pReply->Release(); } if(pszRequestMessage) { ::CoTaskMemFree(pszRequestMessage); } if(pRequest) { pRequest->Release(); } if(pMessaging) { pMessaging->Release(); } return _RETVAL; } |
Compiling the Code
Configuration Manager 2007 management point interface DLL.
Security
You can set security options for a message by using ISmsMessage4 Interface. For more information, see Configuration Manager Management Point Interface Security.
See Also
Send comments about this topic to Microsoft.