1 //---------------------------------------------------------------------------
6 #include "MODINotifyDlg.h"
8 //---------------------------------------------------------------------------
9 #pragma package(smart_init)
10 #pragma resource "*.dfm"
12 //
\8eQ
\8dl
\81Fhttps://msdn.microsoft.com/ja-jp/library/5a4x27ek(v=vs.110).aspx
13 #define URL_DNF_INSTALL "https://www.microsoft.com/ja-JP/download/details.aspx?id=40773"
14 #define URL_MODI_INSTALL "http://support.microsoft.com/kb/982760"
16 TMODINotifyDialog *MODINotifyDialog;
17 //---------------------------------------------------------------------------
18 __fastcall TMODINotifyDialog::TMODINotifyDialog(TComponent* Owner)
22 modiInstalled = false;
25 //---------------------------------------------------------------------------
26 void __fastcall TMODINotifyDialog::FormCreate(TObject *Sender)
28 MoveCenter(Handle, NULL);
29 reMsgId = GetDlgCtrlID(reMsg->Handle);
30 //SetWindowLong(Handle, GWL_USERDATA, (LONG)reMsg->Handle);
31 SendMessage(reMsg->Handle, EM_AUTOURLDETECT, (WPARAM)TRUE, 0 ); // RichEdit 2.0 only
32 DWORD emask = SendMessage(reMsg->Handle, EM_GETEVENTMASK, 0, 0);
33 SendMessage(reMsg->Handle, EM_SETEVENTMASK, 0, emask | ENM_LINK);
35 modiInstalled = MODIInstalled();
36 amodiRunable = AMODIRunable();
40 //---------------------------------------------------------------------------
41 void TMODINotifyDialog::SetMessage()
43 if (modiInstalled && !amodiRunable){
45 "
\81y
\8fd
\97v
\81z
\95¶
\8e\9a\94F
\8e¯
\82ð
\8eg
\97p
\82·
\82é
\82É
\82Í .NET Framework 4.5.1
\88È
\8fã
\82ª
\95K
\97v
\82Å
\82·\n"
49 "
\83\8a\83\93\83N
\90æ
\82©
\82ç
\83C
\83\93\83X
\83g
\81[
\83\8b\82ð
\8ds
\82Á
\82Ä
\82
\82¾
\82³
\82¢\n"
51 "
\81¦
\83\8a\83\93\83N
\90æ
\82ª
\8c©
\82Â
\82©
\82ç
\82È
\82¢
\8fê
\8d\87\82Í\".NET Framework
\83C
\83\93\83X
\83g
\81[
\83\8b\"
\82Å
\8c\9f\8dõ
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B\n"
52 "
\81¦
\95¶
\8e\9a\94F
\8e¯
\82ð
\8eg
\97p
\82·
\82é
\82Æ
\83|
\83b
\83v
\83A
\83b
\83v
\8c\9f\8dõ
\82ª
\82Å
\82«
\82é
\83A
\83v
\83\8a\82ª
\91\9d\82¦
\82Ü
\82·
\81B\n"
56 "
\81y
\8fd
\97v
\81z MODI
\82ª
\83C
\83\93\83X
\83g
\81[
\83\8b\82³
\82ê
\82Ä
\82¢
\82Ü
\82¹
\82ñ
\81I
\81I\n"
58 "MODI
\82ª
\83C
\83\93\83X
\83g
\81[
\83\8b\82³
\82ê
\82Ä
\82¢
\82é
\82Æ
\81A
\83|
\83b
\83v
\83A
\83b
\83v
\8c\9f\8dõ
\82ª
\82Å
\82«
\82é
\83A
\83v
\83\8a\82ª
\91\9d\82¦
\82Ü
\82·
\81B\n"
62 "
\83\8a\83\93\83N
\90æ
\82É
\82 \82é
\82¢
\82¸
\82ê
\82©
\82Ì
\95û
\96@
\82Å
\83C
\83\93\83X
\83g
\81[
\83\8b\82ð
\8ds
\82Á
\82Ä
\82
\82¾
\82³
\82¢
\81B\n"
63 "
\81¦
\92Ê
\8fí
\82Í
\81u
\95û
\96@
\82Q
\81v\n"
64 "
\81¦MODI
\82Í\"Microsoft Office Document Imaging\"
\82Ì
\97ª
\82Å
\82·\n"
65 "
\81¦
\8fã
\8bL
\83\8a\83\93\83N
\82ª
\8aJ
\82¯
\82È
\82¢
\8fê
\8d\87\82Í \"MODI\" \"
\83C
\83\93\83X
\83g
\81[
\83\8b\"
\82È
\82Ç
\82Å
\8c\9f\8dõ
\82µ
\82Ä
\82Ý
\82Ä
\82
\82¾
\82³
\82¢\n"
69 void __fastcall TMODINotifyDialog::tmInstallCheckTimer(TObject *Sender)
71 bool _modiInstalled = MODIInstalled();
72 bool _amodiRunable = AMODIRunable();
73 if (_modiInstalled && _amodiRunable){
77 if (modiInstalled!=_modiInstalled || amodiRunable!=_amodiRunable){
78 modiInstalled = _modiInstalled;
79 amodiRunable = _amodiRunable;
84 //---------------------------------------------------------------------------
85 void TMODINotifyDialog::EvNotify( TMessage &msg )
87 if (msg.WParam==reMsgId){
88 NMHDR *nmhdr = (NMHDR*)msg.LParam;
89 if (nmhdr->code==EN_LINK){
90 ENLINK *enlink = (ENLINK*)nmhdr;
91 if (enlink->msg == WM_LBUTTONDOWN){
92 bool dnf = modiInstalled && !amodiRunable;
93 HINSTANCE hInst = ShellExecute(Handle, NULL, dnf ? URL_DNF_INSTALL : URL_MODI_INSTALL, NULL, NULL, SW_SHOWNORMAL);