PHP的COM对象方法

I am in process of developing the COM object that will encrypt the passed string. It is to be called from PHP. I am not getting how can i return the value from COM to PHP. I tried following code perhaps it is not working.

 STDMETHODIMP CATLObject::EncryptURL(VARIANT* sURLString, VARIANT* sEncryptedValue)
{
    URLEncryption oURLEncryption;
    char sRequestString[MAX_NAME] = "abcbbefekjdss dsf dsk fkjds fk sd";
    char sEncrytedRequestStrin

g[MAX_NAME] = "";
    char sDecrytedRequestString[MAX_NAME] = "";

    oURLEncryption.EncryptQuery(sRequestString, sEncrytedRequestString);

    KeyValue oKeyValue1;
    KeyValue oParameterKeyValue;

    oKeyValue1.ParseKeyValueString(sEncrytedRequestString, '&', true);
    string sParameter = oKeyValue1.GetValue("sp");
    string sCheckSum = oKeyValue1.GetValue("chk");

    oURLEncryption.DecryptQuery(sParameter, sCheckSum, (void *)&oParameterKeyValue);

    string sCidAudio = oParameterKeyValue.GetValue("cid_audio");
    string sEUid = oParameterKeyValue.GetValue("euid");

    printf("sCidAudio = %s
", sCidAudio.c_str());
    printf("sEUid = %s

", sEUid.c_str());

    // Create an instance of the MEMORYSTATUSEX structure
    MEMORYSTATUSEX memstatex;

    // Specify the length of the structure
    memstatex.dwLength = sizeof(memstatex);

    // Call the GlobalMemoryStatusEx function and pass to it
    //  a reference to our MEMORYSTATUSEX instance
    ::GlobalMemoryStatusEx(&memstatex);

    // Set the ulVal (unsigned long value) of the VARIANT parameter
    //  passed by reference to the function with the dwMemoryLoad
    //   value of the MEMORYSTATUEX instance which specifies the
    //    approximate percentage of the physical memory currently
    //     in use.

    sURLString->ulVal = memstatex.dwMemoryLoad;

    sEncryptedValue->bstrVal = L"Output from DLL!!!";

    return S_OK;
}

From PHP I am trying following way to get return value

$testConnection = new COM("URLEncryption.ATLObject");

    $sURLString = new VARIANT(0, VT_UI4);
    $sEncryptedValue = new VARIANT(0, VT_UI4);

    $testConnection->EncryptURL($sURLString,$sEncryptedValue);

Looks to me to be a silly typo:

new COM("URLEncryption.ATLObject")

compared to

STDMETHODIMP CATLObject::EncryptURL
            ^^^

I'd say new COM should be changed to:

$testConnection = new COM("URLEncryption.CATLObject");