在user32.dll裡也不例外,它的入口函式也是dllmain,當每個應用程式啟動時就會呼叫本函式進行實始化。具體實現**如下:
#001 int winapi
#002 dllmain(
#003 in pvoid hinstancedll,
#004 in ulong dwreason,
#005 in pvoid reserved)
#006
#016
在這裡進行初始化,當然也包括初始化gdi32.dll。
#017 if (!init())
#018 return false;
初始化當前使用者結構儲存到使用者索引的空間裡。
#019 if (!initthread())
#020
#024
初始化訊息檢視。
#025 /* initialize message spying */
#026 if (!spy_init()) return false;
#027
#028 break;
#029
當建立執行緒時呼叫這段**,主要進行執行緒初始化。
#030 case dll_thread_attach:
#031 if (!initthread())
#032 return false;
#033 break;
#034
當刪除執行緒時呼叫這段**,主要清空執行緒占用空間。
#035 case dll_thread_detach:
#036 cleanupthread();
#037 break;
#038
當程序退出時呼叫這裡的**。
#039 case dll_process_detach:
釋放載入的himminstance動態連線庫。
#040 if (himminstance) freelibrary(himminstance);
清空主線程的占用空間。
#041 cleanupthread();
#042 cleanup();
#043 break;
#044 }
#045
#046 return true;
#047 }
reactos作業系統實現 178
sendmessagew函式主要用來向視窗傳送訊息。下面就是它的實現 001 lresult winapi 002 sendmessagew hwnd wnd,003 uint msg,004 wparam wparam,005 lparam lparam 006 028 029 填寫訊息結構。03...
reactos作業系統實現 187
隨著全球化的發展,開發軟體都是面向多語言的環境。目前大多數程式都是採用不同字型來顯示不同語言的辦法,那麼有沒有一種更好的辦法,一種字型就可以解決全球語言的顯示呢?答案肯定的,它就是採用邏輯字型ms shell dlg和ms shell dlg2。比如開發應用程式時,就看到在資源裡可以設定ms she...
reactos作業系統實現 193
selectobject函式是將物件選定到指定的裝置場境中。具體實現 如下 001 hgdiobj 002 winapi 003 selectobject hdc hdc,004 hgdiobj hgdiobj 005 016 獲取選擇dc的物件正確的控制代碼。017 hgdiobj gdifixu...