L’usage des BSTR dans les ActiveX n’est pas forcement
facile. C’est pourquoi il peut être utile d’avoir recourt à la méthode suivante.
IDL ...
[id(1)] HRESULT MaFunction([in] BSTR bstrParam);
|
Code source ...
STDMETHODIMP CMaClass::MaFunction(BSTR bstrParam)
{
USES_CONVERSION;
char tmp[256];
if (bstrParam == NULL)
return E_POINTER;
sprintf (tmp, ">> %d" , SysStringLen (bstrParam));
::MessageBox (NULL, (const char *)tmp, "strlen(bstrParam)", MB_OK);
char *pTT = W2A(bstrParam);
::MessageBox (NULL, (const char *)pTT, "W2A(bstrParam)", MB_OK);
::SysFreeString(bstrParam);
return S_OK;
}
|
|