コード: 全て選択
Type VARIANT
vt As VARTYPE
wReserved1 As Word
wReserved2 As Word
wReserved3 As Word
Val[ELM(8)] As Byte
End Type
ExDisp.hには
コード: 全て選択
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item(
/* [optional][in] */ VARIANT index,
/* [retval][out] */ IDispatch **Folder) = 0;
ActiveBasic4では構造体はポインタ参照でないとダメなようです。
なので、
ByRef index As VARIANT
としてデバッグしましたが、例外処理のダイアログが出てしまいます。
そこで、構造体のメンバを順々に引数として渡していけば、値渡しで構造体を実質渡したことになるのかも、と考え
ByRef index As VARIANTの部分を
コード: 全て選択
ByVal index_vt As Word,
ByVal index_wReserved1 As Word,
ByVal index_wReserved2 As Word,
ByVal index_wReserved3 As Word,
ByVal index_ValLong As Long,
ByVal index_Padding As Long
ちなみに、index_vt =VT_I4、index_Padding =0として、他は全て0を代入しています。
これは、構造体の渡し方がおかしいのでしょうか?
それとも、VARIANT構造体に値(Long型)を代入するやり方が間違っているのでしょうか?