- PR -

ActiveXに2次元の配列を渡したい

1
投稿者投稿内容
コーヒー大好き
会議室デビュー日: 2006/05/11
投稿数: 1
投稿日時: 2006-05-11 18:55
VB6.0で書かれたActiveXを使わなければならなくなりました。

それをVC++.2003にて使用するのですが
VARIANT CreateBmp(LPCTSTR strFile, SAFEARRAY ** bytNewPalette)
というメソッドがありまして、それを利用しようと思っているのですが、SAFEARRAY ** がうまく渡らず、そこからまったく進まなくなりました。
256色のビットマップを指定すると配列(3x256)に256色のパレットが指定されるようなのですが、『種類が一致しません』という内容のダイアログが表示されてしまいます。


SAFEARRAYBOUND saB[2];
saB[0].lLbound =0;
saB[0].cElements =3;
saB[1].lLbound =0;
saB[1].cElements =256;
SAFEARRAY *pPalette =::SafeArrayCreate( VT_UI1,2,saB );

とクリエイトしたSAFEARRAYをメソッドの引数に渡しています。

COleSafeArrayも試したのですが、やはり種類が一致しないようです。
型が一致しないではなく、種類が一致しないという、この場合の種類とは何を表しているのか、
また、これは、どう解決したらいいのか、ご教授ください。
1

スキルアップ/キャリアアップ(JOB@IT)