ダイアログ初期表示 – プログラミング – Home

通知
すべてクリア

[解決済] ダイアログ初期表示


serio
 serio
(@serio)
ゲスト
結合: 24年前
投稿: 2
Topic starter  

初めまして。
serioと申します。

WinNT、VC++6.0、SP5で開発しております。

私は今ダイアログの初期表示で、ネットワークコンピュータのコンピュータまでは取得出来てい
ます。しかし、そのコンピュータを指定して表示する事が出来ません。
四日間くらい悩んでいます。

下にソースを載せますので、回答をお願いします。

調べた範囲では

iLength = ::WideCharToMultiByte(CP_OEMCP, WC_DEFAULTCHAR,
p_pStrret->pOleStr, -1, NULL, 0, NULL, NULL);
の辺りが怪しいのでは?と思っています。
何卒お願いします。

LPITEMIDLIST CFile2Dlg::GetItemIDList( CString p_cFileStr )
{
if( p_cFileStr.IsEmpty() )
return NULL;

LPITEMIDLIST pIDL;
LPSHELLFOLDER pDesktopFolder;

if( ::SHGetDesktopFolder( &pDesktopFolder ) != NOERROR )
return NULL;

OLECHAR ochPath[MAX_PATH];
ULONG chEaten; //文字列のサイズを受け取ります。
ULONG dwAttributes; //属性を受け取ります。
HRESULT hRes;

// これをしないとインターフェイスはダメなのです。
::MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, p_cFileStr, -1,
ochPath, MAX_PATH );

// 実際にITEMIDLISTを取得します。
hRes = pDesktopFolder->ParseDisplayName( NULL, NULL, ochPath,
&chEaten, &pIDL, &dwAttributes);

if( hRes != NOERROR )
pIDL = NULL;

pDesktopFolder->Release();

return pIDL;
}


引用未解決
トピックタグ
とおりすがり
 とおりすがり
(@とおりすがり)
ゲスト
結合: 24年前
投稿: 180
 

>iLength = ::WideCharToMultiByte(CP_OEMCP, WC_DEFAULTCHAR,
> p_pStrret->pOleStr, -1, NULL, 0, NULL, NULL);
>の辺りが怪しいのでは?と思っています。

その辺りを載せましょう。
なんのことか分かりません。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 24年前
投稿: 895
 

ダイアログ初期表示とどこが関係あるのですか
>私は今ダイアログの初期表示で、ネットワークコンピュータのコンピュータまでは取得出来て

>ます。しかし、そのコンピュータを指定して表示する事が出来ません。

何を表示できないの?
何かを取得できないの間違いではないですか?
(フォルダ リストとか)

相手が共有化されていないとか、ログイン可能になっていないとか
この辺は、大丈夫なのですか

とおりすがり さんがご指摘のとおり
>LPITEMIDLIST CFile2Dlg::GetItemIDList( CString p_cFileStr )
の中にはそれらしいコーディングありませんけど、どこのことが怪しいんでしょうか?


返信引用
serio
 serio
(@serio)
ゲスト
結合: 24年前
投稿: 2
Topic starter  

説明不足、説明下手で申し訳ありませんでした。

iLength = ::WideCharToMultiByte(CP_OEMCP, WC_DEFAULTCHAR,
p_pStrret->pOleStr, -1, NULL, 0, NULL, NULL);

で、iLength = 0 の値が返って来ていたので、おかしいのでは?と思った次第です。

二番目の引数を“WC_COMPOSITECHECK”に変えたら上手く行きました。

WC_DEFAULTCHAR 変換時、例外を既定の文字に置き換えます。
WC_COMPOSITECHECK 合成文字を構成済み文字に変換します。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました