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.
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 bszStr2
are 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
);
}