xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/HelpUtils.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // HelpUtils.cpp
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h"
4*f6dc9357SAndroid Build Coastguard Worker 
5*f6dc9357SAndroid Build Coastguard Worker #include "HelpUtils.h"
6*f6dc9357SAndroid Build Coastguard Worker 
7*f6dc9357SAndroid Build Coastguard Worker #if defined(UNDER_CE) || defined(__MINGW32_VERSION)
8*f6dc9357SAndroid Build Coastguard Worker 
ShowHelpWindow(LPCSTR)9*f6dc9357SAndroid Build Coastguard Worker void ShowHelpWindow(LPCSTR)
10*f6dc9357SAndroid Build Coastguard Worker {
11*f6dc9357SAndroid Build Coastguard Worker }
12*f6dc9357SAndroid Build Coastguard Worker 
13*f6dc9357SAndroid Build Coastguard Worker #else
14*f6dc9357SAndroid Build Coastguard Worker 
15*f6dc9357SAndroid Build Coastguard Worker /* USE_EXTERNAL_HELP creates new help process window for each HtmlHelp() call.
16*f6dc9357SAndroid Build Coastguard Worker    HtmlHelp() call uses one window. */
17*f6dc9357SAndroid Build Coastguard Worker 
18*f6dc9357SAndroid Build Coastguard Worker #if defined(__MINGW32_VERSION) /* || defined(Z7_OLD_WIN_SDK) */
19*f6dc9357SAndroid Build Coastguard Worker #define USE_EXTERNAL_HELP
20*f6dc9357SAndroid Build Coastguard Worker #endif
21*f6dc9357SAndroid Build Coastguard Worker 
22*f6dc9357SAndroid Build Coastguard Worker // #define USE_EXTERNAL_HELP
23*f6dc9357SAndroid Build Coastguard Worker 
24*f6dc9357SAndroid Build Coastguard Worker #ifdef USE_EXTERNAL_HELP
25*f6dc9357SAndroid Build Coastguard Worker 
26*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/ProcessUtils.h"
27*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/FileDir.h"
28*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/FileName.h"
29*f6dc9357SAndroid Build Coastguard Worker 
30*f6dc9357SAndroid Build Coastguard Worker #else
31*f6dc9357SAndroid Build Coastguard Worker #include <HtmlHelp.h>
32*f6dc9357SAndroid Build Coastguard Worker #endif
33*f6dc9357SAndroid Build Coastguard Worker 
34*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/StringConvert.h"
35*f6dc9357SAndroid Build Coastguard Worker 
36*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/DLL.h"
37*f6dc9357SAndroid Build Coastguard Worker 
38*f6dc9357SAndroid Build Coastguard Worker #define kHelpFileName "7-zip.chm::/"
39*f6dc9357SAndroid Build Coastguard Worker 
ShowHelpWindow(LPCSTR topicFile)40*f6dc9357SAndroid Build Coastguard Worker void ShowHelpWindow(LPCSTR topicFile)
41*f6dc9357SAndroid Build Coastguard Worker {
42*f6dc9357SAndroid Build Coastguard Worker   FString path = NWindows::NDLL::GetModuleDirPrefix();
43*f6dc9357SAndroid Build Coastguard Worker   path += kHelpFileName;
44*f6dc9357SAndroid Build Coastguard Worker   path += topicFile;
45*f6dc9357SAndroid Build Coastguard Worker  #ifdef USE_EXTERNAL_HELP
46*f6dc9357SAndroid Build Coastguard Worker   FString prog;
47*f6dc9357SAndroid Build Coastguard Worker 
48*f6dc9357SAndroid Build Coastguard Worker   #ifdef UNDER_CE
49*f6dc9357SAndroid Build Coastguard Worker     prog = "\\Windows\\";
50*f6dc9357SAndroid Build Coastguard Worker   #else
51*f6dc9357SAndroid Build Coastguard Worker     if (!NWindows::NFile::NDir::GetWindowsDir(prog))
52*f6dc9357SAndroid Build Coastguard Worker       return;
53*f6dc9357SAndroid Build Coastguard Worker     NWindows::NFile::NName::NormalizeDirPathPrefix(prog);
54*f6dc9357SAndroid Build Coastguard Worker   #endif
55*f6dc9357SAndroid Build Coastguard Worker   prog += "hh.exe";
56*f6dc9357SAndroid Build Coastguard Worker 
57*f6dc9357SAndroid Build Coastguard Worker   UString params;
58*f6dc9357SAndroid Build Coastguard Worker   params += '"';
59*f6dc9357SAndroid Build Coastguard Worker   params += fs2us(path);
60*f6dc9357SAndroid Build Coastguard Worker   params += '"';
61*f6dc9357SAndroid Build Coastguard Worker 
62*f6dc9357SAndroid Build Coastguard Worker   NWindows::CProcess process;
63*f6dc9357SAndroid Build Coastguard Worker   const WRes wres = process.Create(fs2us(prog), params, NULL); // curDir);
64*f6dc9357SAndroid Build Coastguard Worker   if (wres != 0)
65*f6dc9357SAndroid Build Coastguard Worker   {
66*f6dc9357SAndroid Build Coastguard Worker     /*
67*f6dc9357SAndroid Build Coastguard Worker     HRESULT hres = HRESULT_FROM_WIN32(wres);
68*f6dc9357SAndroid Build Coastguard Worker     ErrorMessageHRESULT(hres, imageName);
69*f6dc9357SAndroid Build Coastguard Worker     return hres;
70*f6dc9357SAndroid Build Coastguard Worker     */
71*f6dc9357SAndroid Build Coastguard Worker   }
72*f6dc9357SAndroid Build Coastguard Worker  #else
73*f6dc9357SAndroid Build Coastguard Worker   // HWND hwnd = NULL;
74*f6dc9357SAndroid Build Coastguard Worker   HtmlHelp(NULL, GetSystemString(fs2us(path)), HH_DISPLAY_TOPIC, 0);
75*f6dc9357SAndroid Build Coastguard Worker  #endif
76*f6dc9357SAndroid Build Coastguard Worker }
77*f6dc9357SAndroid Build Coastguard Worker 
78*f6dc9357SAndroid Build Coastguard Worker #endif
79