Код (Text): // Initialize COM HRESULT hres = CoInitializeEx(0, COINIT_MULTITHREADED); if (FAILED(hres)) { return 1; // Program has failed. } // Set general COM security levels -------------------------- // Note: If you are using Windows 2000, you need to specify - // the default authentication credentials for a user by using // a SOLE_AUTHENTICATION_LIST structure in the pAuthList ---- // parameter of CoInitializeSecurity ------------------------ hres = CoInitializeSecurity( NULL, -1, // COM authentication NULL, // Authentication services NULL, // Reserved RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation 0, // Authentication info <<<<<<<<<---------------------- EOAC_NONE, // Additional capabilities NULL // Reserved ); if (FAILED(hres)) { CoUninitialize(); return 1; // Program has failed. } На WinXP этот код работает нормально. Если запусить под 2000, то не пашет. когда пытаюсь в xp: Код (Text): // for win 2k: SOLE_AUTHENTICATION_INFO sai; sai.dwAuthnSvc = RPC_C_AUTHN_DEFAULT; sai.dwAuthzSvc = RPC_C_AUTHZ_DEFAULT; sai.pAuthInfo = 0; SOLE_AUTHENTICATION_LIST AuthList; AuthList.aAuthInfo = &sai; AuthList.cAuthInfo = 1; // nxt hres = CoInitializeSecurity( NULL, -1, // COM authentication NULL, // Authentication services NULL, // Reserved RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation &AuthList, // Authentication info <<<<<<<<<---------------------- EOAC_NONE, // Additional capabilities NULL // Reserved ); возвращает E_INVALIDARG Что я сделал не верно? или для разных виндовозов надо по разному?