Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

IHMTLDocument2.write   Найти похожие ветки 

 
MetalFan ©   (2006-11-30 11:24) [0]

как этот метод правильно вызывать?
в MSDN есть пример:
IHTMLDocument2 *document; // Declared earlier in the code
HRESULT hresult = S_OK;
VARIANT *param;
SAFEARRAY *sfArray;
BSTR bstr = SysAllocString(OLESTR("Written by IHTMLDocument2::write()."));

// Creates a new one-dimensional array
sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);

if (sfArray == NULL || document == NULL) {
 goto cleanup;
}

hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
param->vt = VT_BSTR;
param->bstrVal = bstr;
hresult = SafeArrayUnaccessData(sfArray);
hresult = document->write(sfArray);

cleanup:
SysFreeString(bstr);
if (sfArray != NULL) {
 SafeArrayDestroy(sfArray);
}

на Delphi делаю так:
function GetHTMLDoc2FromString( const AStr: string ): IHTMLDocument2;
 var
   lSfArr: PSafeArray;
   lVar: PVariant;
   lWS: WideString;
 begin
   Result := CoHTMLDocument.Create as IHTMLDocument2;
   lSfArr := SafeArrayCreateVector(VT_VARIANT, 0, 1);
   if lSfArr <> nil then
   begin
     SafeArrayAccessData( lSfArr, Pointer(lVar) );
     lWS := AStr;
     TVarData(lVar^).VType := VT_BSTR;
     TVarData(lVar^).VOleStr := @lWS[1];
     SafeArrayUnaccessData( lSfArr );
     Result.write(lSfArr);
     //SafeArrayDestroy(lSfArr);  <<- на этой строчке иногда вываливает AV, без нее все ок.но как тогда память освобождать?
   end;
 end;

подскажите, где косяк?!


 
mailo   (2006-11-30 16:28) [1]

var v: Variant;
begin
v := VarArrayCreate([0, 1], varVariant);
v[0]:="Written by IHTMLDocument2::write().";
(Webbrowser1.Document as IHTMLDocument2).Write(PSafeArray(TVarData(v).VArray));
      (Webbrowser1.Document as IHTMLDocument2).close;

end;


 
MetalFan ©   (2006-11-30 17:42) [2]

>[1]
я все понимаю, но вопрос в другом вообщето)
мне ваш способ не нравится,
и меня интересует, почему не работает мой код



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
15-1168179208
kaZaNoVa
2007-01-07 17:13
2007.01.28
Ищу реализацию RSA - алгоритма на PHP


2-1168210228
Wind
2007-01-08 01:50
2007.01.28
Обновить занные в записи (SQL)


15-1168033215
Beavercrazy
2007-01-06 00:40
2007.01.28
Обмен информации между подразделениями. Как лучше сделать?


15-1166237552
for
2006-12-16 05:52
2007.01.28
Сишные циклы FOR в Паскаль не переводятся?


11-1145454143
Unknown Mystic
2006-04-19 17:42
2007.01.28
Обновление измененного kol.pas