?? myaddport.h
字號:
/* * * myaddport.h * Copyright (C) 2006 Michael H. Overlin This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact at poster_printer@yahoo.com * */#ifndef MYADDPORT_H#define MYADDPORT_H#include <windows.h>// RETURN FALSE TO ABORTtypedef BOOL (*WaitProc)(void);// CALLER SHOULD MAKE CERTAIN THAT THE PORT DOES NOT ALREADY EXIST.// ANY DIALOGS THE OS MIGHT BRING UP TO ALERT THE USER TO A PROBLEM CAN ONLY BE TAKEN DOWN// IF THE USER CLICKS ON THEM OR THE dwMaxWaitMS CONDITION EXPIRES.// AFTER THE PORT NAME IS AUTO-ENTERED, THE WaitProc IF SPECIFIED IS NOT CALLED, SO ONLY THE// EXPIRATION OF dwMaxWaitMS CAN AUTO-TERMINATE THE DIALOG// A NEW THREAD IS CREATED TO EXECUTE AddPort AND THE PORT NAME IS AUTO-ENTERED AND "OK" AUTO-CLICKED// IF lptstrMonitorName ISN'T SPECIFIED, "Local Port" IS USED IN THE CALL TO AddPort// pfn IF SPECIFIED IS EXECUTED IN THE LOOP IN WHICH TIME SLICES OF dwNewThreadSliceMS MILLISECONDS ARE// GIVEN TO THE NEW THREAD. IF IT RETURNS FALSE THE NEW THREAD IS KILLED AND THE OPERATION ABORTED// dwMaxWaitMS SPECIFIES THE MAXIMUM AMOUNT OF TIME ALLOWED FOR THE ROUTINE TO EXECUTE// IF VALUE "INFINITE" IS GIVEN, THERE IS NO LIMIT// IF THIS LIMIT IS EXCEEDED, THE THREAD IS TERMINATED AND THE ROUTINE RETURNS FALSE// NOTE: IF INFINITE IS USED, IF THERE IS AN ERROR THEN EXPECTED RESULT IS THAT USER WILL HAVE// TO DISMISS A SPOOLER ERROR DIALOG BEFORE THE FUNCTION RETURNS// dwNewThreadSliceMS GIVES THE "TIME SLICE" TO GIVE THE NEW THREAD WITH THE ADDPORT DIALOG// BETWEEN ATTEMPTS TO FIND ITS WINDOWS AND CALLS TO THE pfn WAITPROC// A RETURN VALUE OF TRUE MEANS THAT A CALL TO "AddPort" COMPLETED NORMALLY, IRREGARDLESS OF// THE VALUE RETURNED BY THAT CALL (I.E. THE NEW THREAD DIDN'T HAVE TO BE TERMINATED)// CALLER MUST USE EnumPorts TO SEE IF PORT WAS REALLY ADDED// (I WAS SEEING AN INVALID PARAMETER ERROR EVEN WHEN PORT WAS ADDED, SO GAVE UP// TRYING TO HAVE RETURN VALUE REFLECT WHETHER PORT WAS ACTUALLY ADDED)// A RETRUN VALUE OF FALSE MEANS THAT EITHER "AddPort" UNDER ABOVE CONDITIONS RETURNED FALSE, // OR THAT THE ADD PORT DIALOG THREAD WAS TERMINATED BECAUSE THE dwMaxWaitMS LIMIT WAS VIOLATED// OR BECAUSE pfn RETURNED FALSE, OR THAT THE THREAD CREATION FAILED// NOTE:// IT IS CONCEIVABLE THAT THE PORT COULD BE CREATED AND YET THE ROUTINE RETURN FALSE IF// dwMaxWaitMS EXPIRES AFTER THE PORT HAS BEEN CREATED BUT BEFORE THE NEW THREAD SELF-TERMINATESBOOL MyAddPort(LPCTSTR lptstrPortName, DWORD dwMaxWaitMS = INFINITE, DWORD dwNewThreadSliceMS = 5, WaitProc pfn = NULL, LPCTSTR lptstrMonitorName = NULL) ;#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -