|
// *********************************************************
// ディスク資源接続済み一覧
// 戻り値 : true 成功, false 失敗
// *********************************************************
BOOL LboxWNet::EnumConnected( LboxListview *Lview )
{
if ( !(LboxWNetLoadEnumProc( this->lib )) ) {
return false;
}
DWORD dwRet;
NETRESOURCE nr;
HANDLE hHandle;
ZeroMemory( &nr, sizeof(NETRESOURCE) );
nr.dwUsage = RESOURCEUSAGE_CONTAINER;
dwRet = DllWNetOpenEnum(
RESOURCE_CONNECTED,
RESOURCETYPE_DISK,
0,
&nr,
&hHandle
);
if ( dwRet != NO_ERROR ) {
return false;
}
DWORD dwCount;
DWORD dwSize;
int nCnt;
char *Buff;
Buff = new char[1000];
dwCount = 1;
dwSize = 1000;
dwRet = DllWNetEnumResource(
hHandle,
&dwCount,
Buff,
&dwSize
);
if ( dwRet != NO_ERROR ) {
if ( dwRet != ERROR_MORE_DATA ) {
DllWNetCloseEnum( hHandle );
delete [] Buff;
return false;
}
}
Lview->Initialize();
Lview->AddColumn( LVCFMT_LEFT, 100, "" );
Lview->AddColumn( LVCFMT_LEFT, 100, "ローカル" );
Lview->AddColumn( LVCFMT_LEFT, 100, "リモート" );
Lview->AddColumn( LVCFMT_LEFT, 100, "プロバイダ" );
Lview->AddColumn( LVCFMT_LEFT, 100, "コメント" );
NETRESOURCE *pnr;
nCnt = 1;
while( 1 ) {
Lview->AddRow();
Lview->SetColumnPrintf( 0, "%d", nCnt );
nCnt++;
pnr = (NETRESOURCE *)(Buff);
Lview->SetColumnText( 1, pnr->lpLocalName );
Lview->SetColumnText( 2, pnr->lpRemoteName );
Lview->SetColumnText( 3, pnr->lpProvider );
Lview->SetColumnText( 4, pnr->lpComment );
dwCount = 1;
dwSize = 1000;
dwRet = DllWNetEnumResource(
hHandle,
&dwCount,
Buff,
&dwSize
);
if ( dwRet != NO_ERROR ) {
if ( dwRet != ERROR_MORE_DATA ) {
break;
}
}
}
Lview->Fit();
DllWNetCloseEnum( hHandle );
delete [] Buff;
return true;
}
| |