IActiveScriptStringCompare::StrComp

Defines the string comparison method for the scripting engine.

Syntax

HRESULT StrComp(  
// The first string:  
    [in] BSTR bszStr1,    
// The second string:   
    [in] BSTR bszStr2,    
// The result of the comparison:  
    [out, retval] LONG* iRet   
);  

Parameters

bszStr1
The first string.

bszStr2
The second string.

iRet
The result of the comparison. 0 if bszStr1 and bszStr2are identical; -1 if bszStr1 < bszStr2; 1 if bszStr1 > bszStr2.

Return Value

Returns one of the following values:

Return Value Meaning
S_OK Success.
E_INVALIDARG An argument is not valid.
E_UNEXPECTED The call was not expected (for example, the scripting engine has not yet been loaded or initialized).

Remarks

This method is called every time that a string comparison is executed.

Example

The following example shows how to overload the string comparison function. Overloading is allowed when you use IActiveScriptProperty::SetProperty to set SCRIPTPROP_STRINGCOMPAREINSTANCE.

cpp_quote("// {58562769-ED52-42f7-8403-4963514E1F11}")  
cpp_quote("DEFINE_GUID(IID_IActiveScriptStringCompare, 0x58562769,   
    0xED52, 0x42f7, 0x84, 0x03, 0x49, 0x63, 0x51, 0x4E, 0x1F, 0x11);")  
cpp_quote("")  
  
cpp_quote("#define SCRIPTPROP_INTEGERMODE              0x00003000")  
cpp_quote("#define SCRIPTPROP_STRINGCOMPAREINSTANCE    0x00003001")  
cpp_quote("")  
interface IActiveScriptStringCompare;  
[  
         object,  
         uuid(58562769-ED52-42f7-8403-4963514E1F11),  
         pointer_default(unique)  
]  
interface IActiveScriptStringCompare : IUnknown  
{  
        // StrComp  
        //     bszStr1: first string  
        //     bszStr2: second string  
        //     iRet: 0 if identical, -1 if bszStr1 < bszStr2, 1 if   
        //         bszStr1 > bszStr2  
        //            
        //     Return values:  
        //         S_OK: Success  
        //         E_NOTIMPL: Not implemented  
        //  
        HRESULT StrComp(  
                [in] BSTR bszStr1,  
                [in] BSTR bszStr2,  
                [out, retval] LONG* iRet  
        );  
}  

See also

IActiveScriptStringCompare Interface