15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Подключение сетевого диска в Windows NT/2000/XP

Чтобы подключить сетевой ресурс, описанный в структуре NETRESOURCE , приложение должно вызвать функцию WNetAddConnection2, WNetAddConnection3, или WNetUseConnection. Следующий пример демонстрирует использование функции WNetAddConnection2.

Пример, вызывающий функцию WNetAddConnection2, заставляет систему обновить информацию в профайле пользователя, при этом подключая сетевой ресурс. Так же пример содержит обработчик ошибок, и использует функцию TextOut для печати результатов.

DWORD dwResult; 
NETRESOURCE nr; 
//
// Вызов функции WNetAddConnection2 для подключения сетевого ресурса,
//   тип подключения разовый.
//
dwResult = WNetAddConnection2(&nr, // NETRESOURCE из перечисления
    (LPSTR) NULL,                  // без пароля
    (LPSTR) NULL,                  // имя пользователя
    CONNECT_UPDATE_PROFILE);       // обновить информацию в профиле
 
// Обработка ошибок.
//  Локальное устройство уже подключено к сетевому ресурсу.
//
if (dwResult == ERROR_ALREADY_ASSIGNED) 
{ 
    TextOut(hdc, 10, 10, "Already connected to specified resource.", 40); 
    return FALSE; 
} 
 
//  Локальное устройство уже присутствует в профиле пользователя.
//
else if (dwResult == ERROR_DEVICE_ALREADY_REMEMBERED) 
{ 
    TextOut(hdc, 10, 10, 
        "Attempted reassignment of remembered device.", 44); 
    return FALSE; 
} 
else if(dwResult != NO_ERROR) 
{ 
    //
    // Вызываем обработчик ошибок.
    //
    NetErrorHandler(hwnd, dwResult, (LPSTR)"WNetAddConnection2"); 
    return FALSE; 
} 
 
//
// Иначе отчёт об успешном подключении.
//
TextOut(hdc, 10, 10, "Connected to specified resource.", 32); 

Функция WNetAddConnection существует для поддержки ранних версий Windows for Workgroups. Современные приложения должны использовать функции WNetAddConnection2 или WNetAddConnection3.

Более подробную информацию об обработчике ошибок смотрите в Retrieving Network Errors.