掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VARIANT配列のデータを解凍するには? (ID:63764)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません。 自分でもまだよくわかっていませんので。。。 サンプルコードがあったのですが理解できないです。 // Data (応答データを取得) long nBufferLen = 0; PBYTE pBUffer = NULL; if (m_EditData.GetBufferData(pbyData, &nOffset, &nBufferLen, &pBUffer) == false) { ::GlobalUnlock(hGlobal); ::GlobalFree(hGlobal); return MAKELRESULT(0, 0); } // バイト配列を作成 CComVariant vaData; SAFEARRAY *psaData = NULL; SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0; rgsabound[0].cElements = nBufferLen; psaData = ::SafeArrayCreate(VT_UI1, 1, rgsabound); // データをコピーする PVOID pTargetData = NULL; HRESULT hr = ::SafeArrayAccessData(psaData, (void HUGEP**)&pTargetData); if (FAILED(hr)) { ::SafeArrayDestroy(psaData); delete pBUffer; // バッファ開放 ::GlobalUnlock(hGlobal); ::GlobalFree(hGlobal); return MAKELRESULT(0, 0); } memcpy(pTargetData, pBUffer, nBufferLen); ::SafeArrayUnaccessData(psaData); // そのデータをm_vaDataの中に格納する vaData.vt = VT_ARRAY | VT_UI1; vaData.parray = psaData; delete pBUffer; // バッファ開放
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.