有请高手......
S海鸥 2003-08-14 10:32:36 代码理解-------------
if CheckInstance('PURCHASE') then
Begin
…….
End;
-------------------------------------------------------------------------------
function CheckInstance(sApp : string) : boolean;
begin
UniqueAppStr := PChar(sApp);
MessageID := RegisterWindowMessage(UniqueAppStr);
if InitInstance then result := true
else result := false;
end;
-------------------------------------------------------------------------------
function InitInstance: boolean;
begin
MutHandle := OpenMutex(MUTEX_ALL_ACCESS,False,UniqueAppStr);
if MutHandle = 0 then begin
DoFirstInstance;
result := true;
end
else begin
BroadcastFocusMessage;
result := false;
end
end;
-------------------------------------------------------------------------------
procedure DoFirstInstance;
begin
SubClassApplication;
MutHandle := CreateMutex(Nil, False, UniqueAppStr);
if MutHandle = 0 then
MIError := MIError or MI_FAIL_CREATE_MUTEX;
end;
-------------------------------------------------------------------------------
procedure SubClassApplication;
begin
WPRoc := TFNWndProc(SetWindowLong(Application.Handle, GWL_WNDPROC, Longint(@NewWndProc)));
if WProc = Nil then MIError := MIError or MI_FAIL_SUBCLASS;
end;
-------------------------------------------------------------------------------
1.函数 CheckInstance('PURCHASE') 在此处的作用?
2.RegisterWindowMessage(UniqueAppStr); 有没有写到注册表中?
3. TFNWndProc(SetWindowLong(Appli…(@NewWndProc)))
TFNWndProc 是什么?(是不是强制类型转化,如是那是什么类型?)
4.OpenMutex(MUTEX_ALL_ACCESS,False,UniqueAppStr); 和
CreateMutex(Nil, False, UniqueAppStr);中 ,
提到互斥体对象, 怎样理解?