#define DPI_DETECT 0 // DPI Detect in main (monitor\82²\82Æ\82Ì\90Ý\92è\82ª\82Å\82«\82È\82¢\82½\82ßdebug\97p)
-#define DEF_USE64 (false)
+#define DEF_USE64 (fWow64)
/*------------------------------------------*/
/* Definitions */
hDll = NULL;
EnablePopup = true;
+#if 0
WindowsNT = false;
OSVERSIONINFO VersionInfo;
WindowsNT = true;
break;
}
+#endif
CheckWOW64();
BootUp = true;
Capturing = false;
}
// Application->OnIdle = IdleHandler;
-
- if (fWow64)
- tmReInit64->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TDCHookMainForm::FormCloseQuery(TObject *Sender,
Ini->WriteInteger(PFS_CONFIG, PFS_USE64, PopupConfigDlg->cbUse64->Checked);
SaveConfig();
SetupConfig();
+ tmReInit->Enabled = false;
if (!useAMODI && (CaptureMode & CM_IMAGE) && !AMODIAvail){
// AMODI off->ON \82©\82Â AMODI\82ª\82¢\82È\82¢\8fê\8d\87
NotifyAMODI();
}
}
//---------------------------------------------------------------------------
-void __fastcall TDCHookMainForm::tmReInit64Timer(TObject *Sender)
+void __fastcall TDCHookMainForm::tmReInitTimer(TObject *Sender)
{
- tmReInit64->Enabled = false;
- Unhook();
- Hook();
+ // amodi.exe\82Ìlaunch\82É\94ñ\8fí\82É\8e\9e\8aÔ\82ª\82©\82©\82é\8fê\8d\87\82ª\82 \82é
+ // ex.\8cÃ\82¢PC\82Åstartup\82É\93o\98^\82µ\82Ä\82¢\82é\8fê\8d\87
+ // \81¨input idle\82É\82È\82Á\82Ä\82àmain window\82Ì\90¶\90¬\82É\8e\9e\8aÔ\82ª\82©\82©\82Á\82Ä\82¢\82é\82Ì\82©\82à\82µ\82ê\82È\82¢
+ // AMODIAvail\82ªtrue\82É\82È\82é\82Ü\82Å\8f\89\8aú\89»\82ð\91±\82¯\82é
+ tmReInit->Enabled = false;
+ SetupAMODI();
+ if (AMODIAvail){
+ SetupConfig2();
+ }
}
//---------------------------------------------------------------------------
// Mouse Events
return true; // already loaded
}
- bool use64 = Ini->ReadInteger(PFS_CONFIG, PFS_USE64, false);
+ bool use64 = Ini->ReadInteger(PFS_CONFIG, PFS_USE64, DEF_USE64);
hDll = new TDCHookLoader(use64);
if (!hDll->LoadHook(Handle)){
DBW("Load failed");
bool r = false;
if ( hszDat ){
HDDEDATA hdata = DdeClientTransaction( (LPBYTE)hszDat, (DWORD)-1, (HCONV)dde->Conv, hszItem,
- dde->DdeFmt, XTYP_POKE, 10000, NULL);
- r = hdata ? true : false;
+ dde->DdeFmt, XTYP_POKE, 10000, NULL);
+ if (hdata || DdeGetLastError(ddeMgr->DdeInstId) != DMLERR_NO_ERROR){
+ r = true;
+ if (hdata)
+ DdeFreeDataHandle( hdata );
+ }
}
- DdeFreeStringHandle (ddeMgr->DdeInstId, hszItem);
+ DdeFreeStringHandle(ddeMgr->DdeInstId, hszItem);
return r;
#endif
}
bool r = false;
if ( hszDat ){
HDDEDATA hdata = DdeClientTransaction( (LPBYTE)hszDat, (DWORD)-1, (HCONV)dde->Conv, hszItem,
- ddeFmt, XTYP_POKE, 10000, NULL);
- r = hdata ? true : false;
+ ddeFmt, XTYP_POKE, 10000, NULL);
+ if (hdata || DdeGetLastError(ddeMgr->DdeInstId) != DMLERR_NO_ERROR){
+ r = true;
+ if (hdata)
+ DdeFreeDataHandle( hdata );
+ }
+ }
}
- DdeFreeStringHandle (ddeMgr->DdeInstId, hszItem);
+ DdeFreeStringHandle(ddeMgr->DdeInstId, hszItem);
return r;
}
#endif
HWND hwnd = FindAMODI();
if (hwnd)
AMODIAvail = true;
+ else
+ tmReInit->Enabled = true; // retry later
}
}
}