Просматривая исходники MFC заметил следующее:
BOOL SetDesignMode(BOOL bMode) const
{
const T* pT = static_cast<const T*>(this);
CComPtr<IHTMLDocument2> spDoc;
pT->GetDHtmlDocument(&spDoc);
if (spDoc)
{
if (bMode)
return S_OK == spDoc->put_designMode(L"On") ? TRUE : FALSE; // вот тут собака порылась
else
return S_OK == spDoc->put_designMode(L"Off") ? TRUE : FALSE; // и вот тут тоже
}
return FALSE;
}
Это определение:
virtual HRESULT STDMETHODCALLTYPE put_designMode (BSTR v) = 0
Разве можно передавать L"text" там где BSTR? Ведь для передачи BSTR в начале стоит счетчик, а в примере передается обычная строка(обячная 2-х байтная конечно) БЕЗ счетчика. Ну не может же тут вызываться что то скрытно, какое нибудь преобразование?