Получение значений из SAFEARRAY of BSTR от COM-obj
Код:
Type t =
Type.GetTypeFromProgID("DEGetBlockFmtNamesParam.DEGetBlockFmtNamesParam.1");
Object foo = Activator.CreateInstance(t);
HtmlEdit.ExecCommand(DHTMLEDLib.DHTMLEDITCMDID.DECMD_GETBLOCKFMTNAMES,
DHTMLEDLib.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref foo);
Type.GetTypeFromProgID("DEGetBlockFmtNamesParam.DEGetBlockFmtNamesParam.1");
Object foo = Activator.CreateInstance(t);
HtmlEdit.ExecCommand(DHTMLEDLib.DHTMLEDITCMDID.DECMD_GETBLOCKFMTNAMES,
DHTMLEDLib.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT, ref foo);
Проблема с параметром foo. В MSDN про него сказано:
Цитата:
VARIANT of type VT_ARRAY that receives the available block format tags. Upon successful return, pvaOut points to a SAFEARRAY of BSTR objects. The caller is responsible for releasing the contents of the SAFEARRAY using the SafeArrayDestroyData and SafeArrayDestroy APIs methods.
Как мне достать в прогу значения из этого массива??? Облазил все, несколько часов что то пытался намутить - результат 0. Очень буду благодарен за помощь.
P.S. Кстати, в отладчике значение foo показано как {System.__ComObject}
object[] s = (object[])((DHTMLEDLib.DEGetBlockFmtNamesParam)foo).get_Names();
спасибо г-ну sax_ol с неэтого форума