reactos作業系統實現 156

2021-05-12 18:38:17 字數 1380 閱讀 5039

在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...