hPrevlnstance:應用程序的先前實例的句柄。對於同壹個程序打開兩次,出現兩個窗口第壹次打開的窗口就是先前實例的窗口。對於壹個32位程序,該參數總為NULL。
如果需要檢測另外壹個實例是否已經存在,則使用CreateMutex函數創建壹個獨壹無二的名字。即使互斥名已經存在,CreateMutex函數也是成功的,但是GetLastError函數將返回 ERROR_ALREADY_EXISTS,這就表明應用程序有另外壹個實例存在,因為它首先創建了互斥名。
lpCmdLine:指向應用程序命令行的字符串的指針,不包括執行文件名。獲得整個命令行,參看GetCommandLine。
第三個參數lpCmdLine是壹個以空終止的字符串,指定傳遞給應用程序的命令行參數。例如:在D盤下有壹個sunxin.txt文件,當我們用鼠標雙擊這個文件時將啟動記事本程序(notepad.exe),此時系統會將D:\sunxin.txt作為命令行參數傳遞給記事本程序的WinMain函數,記事本程序在得到這個文件的全路徑名後,就在窗口中顯示該文件的內容。要在VC++開發環境中向應用程序傳遞參數,可以單擊菜單Project→Settings,選擇“Debug”選項卡,在“Program arguments”編輯框中輸入妳想傳遞給應用程序的參數。
nCmdShow:指明窗口如何顯示。該參數可以是下列值之壹:
SW_HIDE:隱藏窗口並且激活另外壹個窗口。
SW_MINIMIZE:最小化指定的窗口,並且激活在系統表中的頂層窗口。
SW_RESTORE:激活並顯示窗口。如果窗口已經最小化或最大化,系統將以恢復到原來的尺寸和位置顯示窗口(與SW_SHOWNORMAL相同)。
SW_SHOW:激活壹個窗口並以原來的尺寸和位置顯示窗口。
SW_SHOWMAXIMIZED:激活窗口並且將其最大化。
SW_SHOWMINIMIZED:激活窗口並將其目標化。
SW_SHOWMINNOACTIVE:將壹個窗口顯示為圖標。激活窗口維持活動狀態。
SW_SHOWNA:以窗口的當前狀態顯示窗口。激活窗口保持活動狀態。
SW_SHOWNOACTIVATE:以窗口的最近壹次的尺寸和位置顯示窗口。激活窗口維持激活狀態。
SW_SHOWNORMAL:激活並顯示窗口。如果窗口最大化或最小化,系統將其恢復到原來的尺寸和位置(與SW_RESTORE相同)。