Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
You can create outbound routing rules using C++ programs.
The following C++ code example creates an outbound routing rule. This code will not run on Windows XP Home Edition or Windows XP Professional.
// This sample demonstrates how to create an outbound routing rule.
// It creates a rule so that whenever a fax is sent to country/region code 972,
// area code 4, it is always sent using the first fax device.
// NOTICE: this code will fail if it runs on Windows XP Home Edition or
// Windows XP Professional. The Fax Outbound Routing Rules exist only
// in server editions and beyond.
#include <conio.h>
#include <iostream>
//
// Add a rule for country/region code 972 and area code 4.
//
#define COUNTRY_CODE long(972)
#define AREA_CODE long(4)
// Import the fax service Fxscomex.dll file so that fax service COM objects
// can be used.
//
// The typical path to Fxscomex.dll is shown.
//
// If this path is not correct, search for Fxscomex.dll and replace with
// the right path.
#import "c:\windows\system32\fxscomex.dll" rename ("GetJob","GetFaxJob") rename ("GetMessage","GetFaxMessage")
using namespace std;
int main ()
{
try
{
HRESULT hr;
//
// Define variables.
//
FAXCOMEXLib::IFaxServerPtr sipFaxServer;
FAXCOMEXLib::IFaxDevicePtr sipFaxDevice;
FAXCOMEXLib::IFaxDevicesPtr sipFaxDevices;
FAXCOMEXLib::IFaxOutboundRoutingRulePtr sipFaxOutboundRoutingRule;
long lID;
//
// Initialize the COM library on the current thread.
//
hr = CoInitialize(NULL);
if (FAILED(hr))
{
_com_issue_error(hr);
}
//
// Create the root object.
//
hr = sipFaxServer.CreateInstance("FaxComEx.FaxServer");
if (FAILED(hr))
{
_com_issue_error(hr);
}
//
// Connect to the fax server.
// "" defaults to the machine on which the program is running.
//
sipFaxServer->Connect("");
//
// Initialize the collection of devices.
//
sipFaxDevices = sipFaxServer->GetDevices();
//
// Get the first device.
//
sipFaxDevice = sipFaxDevices->GetItem(_variant_t(long(1)));
//
// Get the device ID.
//
lID = sipFaxDevice -> Id;
//
// Add a rule.
//
sipFaxOutboundRoutingRule =
sipFaxServer->OutboundRouting->GetRules()->Add(COUNTRY_CODE,
AREA_CODE,
VARIANT_TRUE, // Use device
"", // Do not care about group name
lID); // Device ID
//
// Now we can use the newly created rule
// through the returned sipFaxOutboundRoutingRule pointer.
//
}
catch (_com_error& e)
{
cout <<
"Error. HRESULT message is: \"" <<
e.ErrorMessage() <<
"\" (" <<
e.Error() <<
")" <<
endl;
if (e.ErrorInfo())
{
cout << (char *)e.Description() << endl;
}
}
CoUninitialize();
return 0;
}