掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VARIANT配列のデータを解凍するには? (ID:63763)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>VARIANT hoge; >が配列になっている状態です。 もうすでに配列になっているのにSafeArrayCreateは使う必要がないでしょう。 これをどうしたいのでしょうか? 「解凍する」の説明がないのでどうしようもできませんけど。 予想) // BSTR型配列をCStringArrayに変換する CStringArray ary; if ( hoge.vt & ( VT_ARRAY | VT_BSTR | VT_BYREF ) ) // VT_BYREFは微妙 { LONG lb, ub; SAFEARRAY* psa = *( hoge.pparray ); // psa = hoge.parrayかも。VT_BYREFと関連しそう ::SafeArrayGetLBound( psa, 1, &lb ); ::SafeArrayGetUBound( psa, 1, &ub ); ::SafeArrayLock( psa ); for ( long i = lb; i <= ub; i++ ) { BSTR wcs; ::SafeArrayGetElement( psa, &i, ( void* )&wcs ); ary.Add( CString( wcs ) ); } ::SafeArrayUnlock( psa ); }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.