Ув. очень нужна ваша помощь в поиске человеческого описания window.external
Ни где не могу найти толкового опиания того, какие объекты и как можно получать через window.external
В особенности естьли возможность передавать Array, List и им подобные generic-коллекции/non-generic
Здравствуйте, Norex, Вы писали:
N>Ув. очень нужна ваша помощь в поиске человеческого описания window.external
Человеческое — см. описание IDispatch
N>Ни где не могу найти толкового опиания того, какие объекты и как можно получать через window.external N>В особенности естьли возможность передавать Array, List и им подобные generic-коллекции/non-generic
Любые, совместимые с Variant. Array превратиться в SAFEARRAY и т.п.
Здравствуйте, al, Вы писали: al>Человеческое — см. описание IDispatch
А линком, кроме MSDN'a на описание использования IDispatch'a?
(в C++ использовал, а вот в C# хотелось бы почитать — подозрения были, что нужно его реализовывать.
вот только пока не понятно как.)
al>Любые, совместимые с Variant. Array превратиться в SAFEARRAY и т.п.
По каким признакам можно понять, что они совместимы с variant?
Или есть ли список?
Здравствуйте, Norex, Вы писали:
N>Здравствуйте, al, Вы писали: al>>Человеческое — см. описание IDispatch
N>А линком, кроме MSDN'a на описание использования IDispatch'a? N>(в C++ использовал, а вот в C# хотелось бы почитать — подозрения были, что нужно его реализовывать. N> вот только пока не понятно как.)
Нет, не нужно. Уже все реализовано. Нужно только задать атрибут ComVisible(true) для класса и обязательно
объявить его (class) public:
[ComVisible(true)] public class MyExternal
{ public int Test()
{
// ...
}
}
если класс сделать не Public, а скажем — internal, то COM не сможет вызывать его методы.
N>По каким признакам можно понять, что они совместимы с variant? N>Или есть ли список?