Здравствуйте Баранюк Тарас Николаевич, Вы писали:
БТН>Здравствуйте Lexey, Вы писали:
L>>Здравствуйте Баранюк Тарас Николаевич, Вы писали:
БТН>>>Hi!
БТН>>>Ситуация в следующем: Переписываю msgina.dll, все прекрасно работает кроме одной маленькой вещи — при попытке сделать Log off система слегка задумывается, а затем выдает сообщение а-ля "теперь питание вашего компьютера можно выключить" в NT4 и w2k, а в XP просто тихо подвисает в непонятном состоянии с темным экраном... Если понатыкивать MessageBox-ов при вызове Wlx-функций, чтобы дать системе подумать пока я их закрываю =) , то WlxloggedOutSAS проходит, но не проходит авторизация, т.е. пассворд и логин не принимаются...PLZ Help, я просто уже не знаю в каком направлении рыть.
L>>Код в студию! БТН>А что именно?
То, что не работает.
БТН>Ну для примера вот:
У.... как все запущено. Неужели вам реально нужно переписывать ВСЮ функциональность msgina?
БТН>HINSTANCE hDllInstance; // My instance, for resource loading БТН>HANDLE hGlobalWlx; // Handle to tell winlogon who's calling БТН>PWLX_DISPATCH_VERSION_1_1 pWlxFuncs; БТН>#define WINLOGON_APP TEXT("Winlogon") БТН>#define USERINIT TEXT("Userinit") БТН>#define USERINIT_DEFAULT TEXT("Userinit.exe")
БТН>SYSTEMTIME stLocalLogonTime; // logon time БТН>PWSTR szLocalUserName; БТН>PWSTR szLocalDomainName; БТН>PGlobals pGlobals; БТН>PRegData regData; БТН>//////////////////////////////////////////////////////
БТН>BOOL WINAPI DllMain( БТН> HINSTANCE hInstance, БТН> DWORD dwReason, БТН> LPVOID lpReserved) БТН>{ БТН> switch (dwReason) БТН> { БТН> case DLL_PROCESS_ATTACH: БТН> DisableThreadLibraryCalls ( hInstance ); БТН> hDllInstance = hInstance; БТН> case DLL_PROCESS_DETACH: БТН> default: БТН> return(TRUE); БТН> } БТН>}
В Gina нельзя использовать стандартные виндовые контролы. У Winlogon'а есть свои специальные варианты диалоговых функций.
Skip...
В общем, тут черт ногу сломит. Интересен именно участок, который не работает. Но все равно, я бы для начала хорошо подумал, а стоит ли так извращаться?