This commit is contained in:
WindowsNT351 2025-08-20 20:30:09 +08:00
parent 0d833b1313
commit c952d07516
73 changed files with 1904 additions and 1572 deletions

View File

@ -1 +0,0 @@
Build2553 - 5RC2

View File

@ -1,104 +0,0 @@
// DigHelp.cpp: 实现文件
//
#include "pch.h"
#include "menu2.h"
#include "DigHelp.h"
#include "afxdialogex.h"
// DigHelp 对话框
IMPLEMENT_DYNAMIC(DigHelp, CDialogEx)
DigHelp::DigHelp(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_DIALOG1, pParent)
{
}
DigHelp::~DigHelp()
{
}
void DigHelp::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_STATIC1, m_text1);
}
BEGIN_MESSAGE_MAP(DigHelp, CDialogEx)
ON_BN_CLICKED(IDOK, &DigHelp::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &DigHelp::OnBnClickedCancel)
ON_BN_CLICKED(IDC_BUTTON1, &DigHelp::OnBnClickedButton1)
END_MESSAGE_MAP()
// DigHelp 消息处理程序
void DigHelp::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
}
void DigHelp::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnCancel();
}
int beforeNum = 0;
TCHAR lpPath_[255] = { 0 };
void DigHelp::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
int maxInfo = GetPrivateProfileInt(L"sug", L"maxInfo", -1, lpPath_);
TCHAR currentInfo[255] = { 0 };
srand(time(0));
int curNum = 0;
do {
curNum = rand() % maxInfo; // 生成随机数
} while (curNum==beforeNum);
beforeNum = curNum;
TCHAR currentID[255] = { 0 };
wsprintf(currentID, L"%d", curNum);
GetPrivateProfileString(L"sug", currentID, NULL, currentInfo, 255, lpPath_);
m_text1.SetWindowText(currentInfo);
}
BOOL DigHelp::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
ShowWindow(SW_NORMAL);
CRect rtDesk;
CRect rtDlg;
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
GetWindowRect(&rtDlg);
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
GetCurrentDirectory(MAX_PATH, lpPath_);
wsprintf(lpPath_, L"%s\\menu.enus", lpPath_);
int maxInfo = GetPrivateProfileInt(L"sug", L"maxInfo", -1, lpPath_);
TCHAR currentInfo[255] = { 0 };
srand(time(0));
int randomNum = rand()%maxInfo; // 生成随机数
beforeNum = randomNum;
TCHAR currentID[255] = { 0 };
wsprintf(currentID, L"%d", randomNum);
GetPrivateProfileString(L"sug", currentID, NULL, currentInfo, 255, lpPath_);
m_text1.SetWindowText(currentInfo);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

View File

@ -1,29 +0,0 @@
#pragma once
// DigHelp 对话框
class DigHelp : public CDialogEx
{
DECLARE_DYNAMIC(DigHelp)
public:
DigHelp(CWnd* pParent = nullptr); // 标准构造函数
virtual ~DigHelp();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DIALOG1 };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel();
afx_msg void OnBnClickedButton1();
virtual BOOL OnInitDialog();
CStatic m_text1;
};

Binary file not shown.

Binary file not shown.

View File

@ -1,22 +0,0 @@
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.pch
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\vc141.pdb
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\pch.obj
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2dlg.obj
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.obj
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\dighelp.obj
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\about.obj
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.exe
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.pdb
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.ipdb
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.iobj
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.res
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\cl.command.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\cl.read.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\cl.write.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\link.command.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\link.read.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\link.write.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\menu2.write.1u.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\rc.command.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\rc.read.1.tlog
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\rc.write.1.tlog

View File

@ -1,8 +0,0 @@
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets(39,5): warning MSB8051: 面向 Windows XP 的支持已被弃用,将来的 Visual Studio 版本不再提供该支持。请访问 https://go.microsoft.com/fwlink/?linkid=2023588获取详细信息。
menu2Dlg.cpp
正在生成代码
4 of 264 functions ( 1.5%) were compiled, the rest were copied from previous compilation.
0 functions were new in current compilation
1 functions had inline decision re-evaluated but remain unchanged
已完成代码的生成
menu2.vcxproj -> C:\Users\351\Documents\Visual Studio 2017\Projects\cec20\Release\menu2.exe

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,2 +0,0 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141_xp:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=7.0
Release|Win32|C:\Users\351\Documents\Visual Studio 2017\Projects\cec20\|

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,118 +0,0 @@
// about.cpp: 实现文件
//
#include "pch.h"
#include "menu2.h"
#include "about.h"
#include "afxdialogex.h"
// about 对话框
IMPLEMENT_DYNAMIC(about, CDialogEx)
about::about(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_ABOUT_DIALOG, pParent)
{
}
about::~about()
{
}
void about::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_STATICVER, m_textver);
DDX_Control(pDX, IDC_EDIT1, m_edit1);
}
BEGIN_MESSAGE_MAP(about, CDialogEx)
ON_BN_CLICKED(IDOK, &about::OnBnClickedOk)
END_MESSAGE_MAP()
// about 消息处理程序
void about::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnOK();
}
TCHAR* AsciiToUnicode(char *str)
{
DWORD dwNum = 0;
dwNum = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
TCHAR* pwHostName = new TCHAR[dwNum];
MultiByteToWideChar(CP_ACP, 0, str, -1, pwHostName, dwNum);
return pwHostName;
}
TCHAR lpPath__[255] = { 0 };
BOOL about::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
ShowWindow(SW_NORMAL);
CRect rtDesk;
CRect rtDlg;
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
GetWindowRect(&rtDlg);
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
wsprintf(lpPath__, L"..\\CECD0.20");
HANDLE hFile = CreateFile(
lpPath__, // 文件名
GENERIC_READ, // 读权限
0, // 不共享
NULL, // 安全属性
OPEN_EXISTING, // 打开已存在的文件
FILE_ATTRIBUTE_NORMAL, // 文件属性
NULL // 模板文件的句柄
);
if (hFile == INVALID_HANDLE_VALUE) {
MessageBox(L"ERROR");
return 1;
}
// 确定文件大小
DWORD dwFileSize = GetFileSize(hFile, NULL);
// 分配内存读取文件
char buffer[255] = { 0 };
DWORD dwRead = 0;
// 读取文件内容
if (ReadFile(hFile, buffer, dwFileSize, &dwRead, NULL)) {
buffer[dwFileSize] = '\0'; // 添加字符串终止符
}
// 关闭文件句柄
CloseHandle(hFile);
m_textver.SetWindowText(AsciiToUnicode(buffer));
m_edit1.SetWindowText( L"Developer\r\n"
" 351 351Workshop@Bilibili\r\n"
"Sponsor\r\n"
" IBM IBM_Official@Bilibili\r\n"
" Dr.Quest 蓬岸@知乎\r\n"
"Image Providing\r\n"
" Alexis lucss21a@Discord\r\n"
"Artworks\r\n"
" WinPad とある科学の手机副屏@Bilibili\r\n"
"Guidance and Testing\r\n"
" Inter -INTER_INIT-@Bilibili\r\n"
" GoldApple 不务正业的金苹果@Bilibili\r\n"
" Zesa LinuxMEMZ@Bilibili\r\n"
" DZY DZY20070614@Bilibili\r\n");
//HWND hWndEdit1 = m_edit1.GetSafeHwnd();
//::SendMessage(hWndEdit1, EM_LINESCROLL, 0, 3);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

View File

@ -1,29 +0,0 @@
#pragma once
// about 对话框
class about : public CDialogEx
{
DECLARE_DYNAMIC(about)
public:
about(CWnd* pParent = nullptr); // 标准构造函数
virtual ~about();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_ABOUT_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedOk();
virtual BOOL OnInitDialog();
CStatic m_textver;
afx_msg void OnStnClicked65535();
CEdit m_edit1;
};

View File

@ -1,133 +0,0 @@
// Win9x:
//
// The CRT now uses several "W" versions of functions which is more practial to require
// the use of the Microsoft Layer for Unicode (MSLU) for Windows 9x to implement it. The
// unicows.dll (for 9x) should be placed in the program folder with the .exe if using it.
// unicows.dll is only loaded on 9x platforms. The way Win9x works without the MSLU is
// that several "W" version of functions are located in kernel32.dll but they are just a
// stub that returns failure code. To implement the unicode layer (unicows) the unicode.lib
// must be linked prior to the other libs that should then linked in after unicode.lib.
// The libraries are:
//
// kernel32.lib advapi32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib
// version.lib mpr.lib rasapi32.lib winmm.lib winspool.lib vfw32.lib
// secur32.lib oleacc.lib oledlg.lib sensapi.lib
//
#include <windows.h>
// pull items from ntdef.h
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
//
// implementation of replacement function for GetModuleHandleExW
//
extern "C" BOOL WINAPI ImplementGetModuleHandleExW(DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule)
{
// check flag combinations
if (phModule == NULL ||
dwFlags & ~(GET_MODULE_HANDLE_EX_FLAG_PIN | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT | GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) ||
((dwFlags & GET_MODULE_HANDLE_EX_FLAG_PIN) && (dwFlags & GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT)) ||
(lpModuleName == NULL && (dwFlags & GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS))) {
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
// check if to get by address
if (dwFlags & GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) {
*phModule = NULL;
typedef PVOID(NTAPI *LPFN_RtlPcToFileHeader)(PVOID PcValue, PVOID * BaseOfImage);
const HMODULE hmodkernel32 = GetModuleHandleW(L"kernel32");
const LPFN_RtlPcToFileHeader pfnRtlPcToFileHeader = reinterpret_cast<LPFN_RtlPcToFileHeader>(GetProcAddress(hmodkernel32, "RtlPcToFileHeader"));
if (pfnRtlPcToFileHeader) {
// use RTL function (nt4+)
pfnRtlPcToFileHeader((PVOID)lpModuleName, (PVOID*)phModule);
}
else {
// query memory directly (win9x)
MEMORY_BASIC_INFORMATION mbi;
if (VirtualQuery((PVOID)lpModuleName, &mbi, sizeof(mbi)) >= offsetof(MEMORY_BASIC_INFORMATION, AllocationProtect)) {
*phModule = reinterpret_cast<HMODULE>(mbi.AllocationBase);
}
}
}
else {
// standard getmodulehandle - to see if loaded
*phModule = GetModuleHandleW(lpModuleName);
}
// check if module found
if (*phModule == NULL) {
SetLastError(ERROR_DLL_NOT_FOUND);
return FALSE;
}
// check if reference needs updating
if ((dwFlags & GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT) == 0) {
typedef NTSTATUS(NTAPI *LPFN_LdrAddRefDll)(ULONG Flags, PVOID BaseAddress);
#define LDR_ADDREF_DLL_PIN 0x00000001
const HMODULE hmodntdll = GetModuleHandleW(L"ntdll");
const LPFN_LdrAddRefDll pfnLdrAddRefDll = reinterpret_cast<LPFN_LdrAddRefDll>(GetProcAddress(hmodntdll, "LdrAddRefDll"));
if (pfnLdrAddRefDll) {
// update dll reference
if (!NT_SUCCESS(pfnLdrAddRefDll((dwFlags & GET_MODULE_HANDLE_EX_FLAG_PIN) ? LDR_ADDREF_DLL_PIN : 0, *phModule))) {
SetLastError(ERROR_GEN_FAILURE);
return FALSE;
}
}
else if (dwFlags & GET_MODULE_HANDLE_EX_FLAG_PIN) {
SetLastError(ERROR_NOT_SUPPORTED);
return FALSE;
}
else {
WCHAR *filename;
if ((filename = reinterpret_cast<WCHAR*>(VirtualAlloc(NULL, MAX_PATH * sizeof(WCHAR), MEM_COMMIT, PAGE_READWRITE))) != NULL) {
DWORD ret = GetModuleFileNameW(*phModule, filename, MAX_PATH);
if (ret < MAX_PATH) {
*phModule = LoadLibraryW(filename);
}
else *phModule = NULL;
VirtualFree(filename, 0, MEM_RELEASE);
// ensure load library success
if (*phModule == NULL) {
return FALSE;
}
}
else {
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
return FALSE;
}
}
}
return TRUE;
}
//
// implementation of replacement function for SetFilePointerEx
//
extern "C" BOOL WINAPI ImplementSetFilePointerEx(HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod)
{
DWORD ret = SetFilePointer(hFile, liDistanceToMove.LowPart, &liDistanceToMove.HighPart, dwMoveMethod);
if (ret == INVALID_SET_FILE_POINTER) {
if (GetLastError() != NO_ERROR) {
return FALSE;
}
}
// check if provide file location
if (lpNewFilePointer) {
lpNewFilePointer->LowPart = ret;
lpNewFilePointer->HighPart = liDistanceToMove.HighPart;
}
// success
return TRUE;
}

View File

@ -1,49 +0,0 @@
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
#include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 的一些常见且经常可放心忽略的隐藏警告消息
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // MFC 支持功能区和控制条
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

View File

@ -1,250 +0,0 @@
.386
.MODEL flat, stdcall
USE_W_STRINGS EQU 1 ; Flag on which GetModuleHandle version to use
USE_WIN9X EQU 1 ; Flag on if to include Win9x specific requirements
EXTRN STDCALL ImplementGetModuleHandleExW@12 : PROC
EXTRN STDCALL ImplementSetFilePointerEx@20 : PROC
;; Declare functions that we will call statically
IF USE_W_STRINGS
EXTRN STDCALL _imp__GetModuleHandleW@4 : DWORD
ELSE
EXTRN STDCALL _imp__GetModuleHandleA@4 : DWORD
ENDIF
EXTRN STDCALL _imp__GetProcAddress@8 : DWORD
.DATA
;; Override the import symbols from kernel32.dll
__imp__InitializeSListHead@4 DWORD DownlevelInitializeSListHead
__imp__GetModuleHandleExW@12 DWORD DownlevelGetModuleHandleExW
__imp__EncodePointer@4 DWORD DownlevelEncodeDecodePointer
__imp__DecodePointer@4 DWORD DownlevelEncodeDecodePointer
;__imp__HeapSetInformation@16 dd DownlevelHeapSetInformation
__imp__SetFilePointerEx@20 DWORD ImplementSetFilePointerEx@20
EXTERNDEF STDCALL __imp__InitializeSListHead@4 : DWORD
EXTERNDEF STDCALL __imp__GetModuleHandleExW@12 : DWORD
EXTERNDEF STDCALL __imp__EncodePointer@4 : DWORD
EXTERNDEF STDCALL __imp__DecodePointer@4 : DWORD
;EXTERNDEF STDCALL __imp__HeapSetInformation@16 : DWORD
EXTERNDEF STDCALL __imp__SetFilePointerEx@20 : DWORD
; For Win9x support - need to change return value to TRUE for the crt startup
IF USE_WIN9X
__imp__InitializeCriticalSectionAndSpinCount@8 DWORD DownlevelInitializeCriticalSectionAndSpinCount
EXTERNDEF STDCALL __imp__InitializeCriticalSectionAndSpinCount@8 : DWORD
ENDIF
CONST SEGMENT
IF USE_W_STRINGS
kszKernel32 DB 'k', 00H, 'e', 00H, 'r', 00H, 'n', 00H, 'e', 00H, 'l', 00H, '3', 00H, '2', 00H, 00H, 00H
kszAdvApi32 DB 'a', 00H, 'd', 00H, 'v', 00H, 'a', 00H, 'p', 00H, 'i', 00H, '3', 00H, '2', 00H, 00H, 00H
ELSE
kszKernel32 DB "kernel32", 00H
kszAdvApi32 DB "advapi32", 00H
ENDIF
kszInitializeSListHead DB "InitializeSListHead", 00H
kszGetModuleHandleExW DB "GetModuleHandleExW", 00H
kszInitializeCriticalSectionAndSpinCount DB "InitializeCriticalSectionAndSpinCount", 00H
kszGetVersion DB "GetVersion", 00H
; Windows XP and Server 2003 and later have RtlGenRandom, which is exported as SystemFunction036.
; If needed, we could fall back to CryptGenRandom(), but that will be much slower
; because it has to drag in the entire crypto API.
; (See also: https://blogs.msdn.microsoft.com/michael_howard/2005/01/14/cryptographically-secure-random-number-on-windows-without-using-cryptoapi/)
; kszSystemFunction036 DB "SystemFunction036", 00H
CONST ENDS
.CODE
; C++ translation:
; extern "C" VOID WINAPI DownlevelInitializeSListHead(PSLIST_HEADER pHead)
; {
; const HMODULE hmodKernel32 = ::GetModuleHandleW(L"kernel32");
; typedef decltype(InitializeSListHead)* pfnInitializeSListHead;
; const pfnInitializeSListHead pfn = reinterpret_cast<pfnInitializeSListHead>(::GetProcAddress(hmodKernel32, "InitializeSListHead"));
; if (pfn)
; {
; // call WinAPI function
; pfn(pHead);
; }
; else
; {
; // fallback implementation for downlevel
; pHead->Alignment = 0;
; }
; }
DownlevelInitializeSListHead PROC
;; Get a handle to the DLL containing the function of interest.
push OFFSET kszKernel32
IF USE_W_STRINGS
call DWORD PTR _imp__GetModuleHandleW@4 ; Returns the handle to the library in EAX.
ELSE
call DWORD PTR _imp__GetModuleHandleA@4 ; Returns the handle to the library in EAX.
ENDIF
;; Attempt to obtain a pointer to the function of interest.
push OFFSET kszInitializeSListHead ; Push 2nd parameter (string containing function's name).
push eax ; Push 1st parameter (handle to the library).
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
;; Test for success, and call the function if we succeeded.
test eax, eax ; See if we successfully retrieved a pointer to the function.
je SHORT FuncNotSupported ; Jump on failure (ptr == 0), or fall through in the most-likely case.
jmp eax ; We succeeded (ptr != 0), so tail-call the function.
;; The dynamic call failed, presumably because the function isn't available.
;; So do what _RtlInitializeSListHead@4 (which is what we jump to on uplevel platforms) does,
;; which is to set pHead->Alignment to 0. It is a QWORD-sized value, so 32-bit code must
;; clear both of the DWORD halves.
FuncNotSupported:
mov edx, DWORD PTR [esp+4] ; get pHead->Alignment
xor eax, eax
mov DWORD PTR [edx], eax ; pHead->Alignment = 0
mov DWORD PTR [edx+4], eax
ret 4
DownlevelInitializeSListHead ENDP
; C++ translation:
; extern "C" BOOL WINAPI DownlevelGetModuleHandleExW(DWORD dwFlags, LPCTSTR lpModuleName, HMODULE* phModule)
; {
; const HMODULE hmodKernel32 = ::GetModuleHandleW(L"kernel32");
; typedef decltype(GetModuleHandleExW)* pfnGetModuleHandleExW;
; const pfnGetModuleHandleExW pfn = reinterpret_cast<pfnGetModuleHandleExW>(::GetProcAddress(hmodKernel32, "GetModuleHandleExW"));
; if (pfn)
; {
; // call WinAPI function
; return pfn(dwFlags, lpModuleName, phModule);
; }
; else
; {
; // fallback for downlevel: return failure
; return FALSE;
; }
; }
DownlevelGetModuleHandleExW PROC
;; Get a handle to the DLL containing the function of interest.
push OFFSET kszKernel32
IF USE_W_STRINGS
call DWORD PTR _imp__GetModuleHandleW@4 ; Returns the handle to the library in EAX.
ELSE
call DWORD PTR _imp__GetModuleHandleA@4 ; Returns the handle to the library in EAX.
ENDIF
;; Attempt to obtain a pointer to the function of interest.
push OFFSET kszGetModuleHandleExW ; Push 2nd parameter (string containing function's name).
push eax ; Push 1st parameter (handle to the library).
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
;; Test for success, and call the function if we succeeded.
test eax, eax ; See if we successfully retrieved a pointer to the function.
je SHORT FuncNotSupported ; Jump on failure (ptr == 0), or fall through in the most-likely case.
jmp eax ; We succeeded (ptr != 0), so tail-call the function.
;; The dynamic call failed, presumably because the function isn't available.
;; The basic VS 2015 CRT (used in a simple Win32 app) only calls this function
;; in try_cor_exit_process(), as called from common_exit (both in exit.cpp),
;; where it uses it to attempt to get a handle to the module mscoree.dll.
;; Since we don't care about managed apps, that attempt should rightfully fail.
;; If this turns out to be used in other contexts, we'll need to revisit this
;; and implement a proper fallback.
FuncNotSupported:
jmp ImplementGetModuleHandleExW@12
DownlevelGetModuleHandleExW ENDP
DownlevelEncodeDecodePointer proc
mov eax, [esp+4]
ret 4
DownlevelEncodeDecodePointer endp
; DownlevelHeapSetInformation proc
; mov eax, 1
; ret 10h
; DownlevelHeapSetInformation endp
; DownlevelSystemFunction036 PROC
; int 3 ; break --- stub unimplemented
; ret 8
; DownlevelSystemFunction036 ENDP
; Win9x section
IF USE_WIN9X
; here we need to return 1 for the crt startup code which checks the return value which on 9x is "none" (throws exception instead)
; This section will change the imported function on the first call for NT based OS so that every call doesn't require additional processing.
DownlevelInitializeCriticalSectionAndSpinCount proc
push OFFSET kszKernel32
IF USE_W_STRINGS
call DWORD PTR _imp__GetModuleHandleW@4 ; Returns the handle to the library in EAX.
ELSE
call DWORD PTR _imp__GetModuleHandleA@4 ; Returns the handle to the library in EAX.
ENDIF
;; Save copy of handle
push eax
;; Attempt to obtain a pointer to the function of interest.
push OFFSET kszInitializeCriticalSectionAndSpinCount ; Push 2nd parameter (string containing function's name).
push eax ; Push 1st parameter (handle to the library).
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
;; Test for success, and call the function if we succeeded.
test eax, eax ; See if we successfully retrieved a pointer to the function.
jz SHORT FuncNotSupported ; Jump on failure (ptr == 0), or fall through in the most-likely case.
;; save address and get back kernel32 handle
xchg dword ptr [esp],eax
;; Attempt to obtain a pointer to the function of interest.
push OFFSET kszGetVersion ; Push 2nd parameter (string containing function's name).
push eax ; Push 1st parameter (handle to the library).
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
;; See if function exists
test eax,eax
jz SHORT FuncNotSupported
;; call GetVersion
call eax
;; check if win9x
test eax,80000000h
pop eax ; get back address of InitializeCriticalSectionAndSpinCount function
jz WinNT
;; for Win9x we need to call and then change return code
push [esp+8] ; Copy the 1st parameter (+4 for IP return address, +4 for fist param)
push [esp+8] ; Copy the 2nd parameter (recall esp moves on push)
call eax
mov eax,1
ret 8
WinNT:
;; Change the call address for next calls and call directly
mov __imp__InitializeCriticalSectionAndSpinCount@8,eax
jmp eax
;; We should never end up here but if we do, fail the call
FuncNotSupported:
pop eax
xor eax,eax
ret 8
DownlevelInitializeCriticalSectionAndSpinCount endp
ENDIF
END

View File

@ -1,5 +0,0 @@
[1]
fat=0
name="CE"
cmd="DeviceEmulator.exe"
para="..\ARMV4\WM65PPC.bin"

View File

@ -1,107 +0,0 @@

// menu2.cpp: 定义应用程序的类行为。
//
#include "pch.h"
#include "framework.h"
#include "menu2.h"
#include "menu2Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Cmenu2App
BEGIN_MESSAGE_MAP(Cmenu2App, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// Cmenu2App 构造
Cmenu2App::Cmenu2App()
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的 Cmenu2App 对象
Cmenu2App theApp;
// Cmenu2App 初始化
BOOL Cmenu2App::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。 否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
// 创建 shell 管理器,以防对话框包含
// 任何 shell 树视图控件或 shell 列表视图控件。
CShellManager *pShellManager = new CShellManager;
// 激活“Windows Native”视觉管理器以便在 MFC 控件中启用主题
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
Cmenu2Dlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用
// “确定”来关闭对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用
// “取消”来关闭对话框的代码
}
else if (nResponse == -1)
{
TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n");
TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n");
}
// 删除上面创建的 shell 管理器。
if (pShellManager != nullptr)
{
delete pShellManager;
}
#if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS)
ControlBarCleanUp();
#endif
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}

View File

@ -1,32 +0,0 @@

// menu2.h: PROJECT_NAME 应用程序的主头文件
//
#pragma once
#ifndef __AFXWIN_H__
#error "include 'pch.h' before including this file for PCH"
#endif
#include "resource.h" // 主符号
// Cmenu2App:
// 有关此类的实现,请参阅 menu2.cpp
//
class Cmenu2App : public CWinApp
{
public:
Cmenu2App();
// 重写
public:
virtual BOOL InitInstance();
// 实现
DECLARE_MESSAGE_MAP()
};
extern Cmenu2App theApp;

Binary file not shown.

View File

@ -1,227 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{CFE8D300-EF37-486D-BA7F-C82809264B39}</ProjectGuid>
<Keyword>MFCProj</Keyword>
<RootNamespace>menu2</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141_xp</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Static</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="about.h" />
<ClInclude Include="DigHelp.h" />
<ClInclude Include="framework.h" />
<ClInclude Include="menu2.h" />
<ClInclude Include="menu2Dlg.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="about.cpp" />
<ClCompile Include="DigHelp.cpp" />
<ClCompile Include="menu2.cpp" />
<ClCompile Include="menu2Dlg.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="menu2.rc" />
</ItemGroup>
<ItemGroup>
<None Include="res\menu2.rc2" />
</ItemGroup>
<ItemGroup>
<Image Include="res\about.bmp" />
<Image Include="res\background.bmp" />
<Image Include="res\flag.bmp" />
<Image Include="res\info.ico" />
<Image Include="res\menu2.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="menu2.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="menu2Dlg.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="framework.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="targetver.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="pch.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="DigHelp.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="about.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="menu2.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="menu2Dlg.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="DigHelp.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="about.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="menu2.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<None Include="res\menu2.rc2">
<Filter>资源文件</Filter>
</None>
</ItemGroup>
<ItemGroup>
<Image Include="res\menu2.ico">
<Filter>资源文件</Filter>
</Image>
<Image Include="res\background.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="res\info.ico">
<Filter>资源文件</Filter>
</Image>
<Image Include="res\flag.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="res\about.bmp">
<Filter>资源文件</Filter>
</Image>
</ItemGroup>
</Project>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<RESOURCE_FILE>menu2.rc</RESOURCE_FILE>
</PropertyGroup>
</Project>

View File

@ -1,250 +0,0 @@

// menu2Dlg.cpp: 实现文件
//
#include "pch.h"
#include "framework.h"
#include "menu2.h"
#include "menu2Dlg.h"
#include "afxdialogex.h"
#include "DigHelp.h"
#include "about.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#define MAXTREE 255
// Cmenu2Dlg 对话框
Cmenu2Dlg::Cmenu2Dlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MENU2_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void Cmenu2Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TREE1, m_tree);
}
BEGIN_MESSAGE_MAP(Cmenu2Dlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, &Cmenu2Dlg::OnTvnSelchangedTree1)
ON_BN_CLICKED(IDOK, &Cmenu2Dlg::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &Cmenu2Dlg::OnBnClickedCancel)
ON_NOTIFY(NM_CLICK, IDC_SYSLINK1, &Cmenu2Dlg::OnNMClickSyslink1)
ON_NOTIFY(NM_CLICK, IDC_SYSLINK2, &Cmenu2Dlg::OnNMClickSyslink2)
ON_NOTIFY(NM_CLICK, IDC_SYSLINK3, &Cmenu2Dlg::OnNMClickSyslink3)
ON_NOTIFY(NM_DBLCLK, IDC_TREE1, &Cmenu2Dlg::OnNMDblclkTree1)
END_MESSAGE_MAP()
// Cmenu2Dlg 消息处理程序
void Cmenu2Dlg::MyExpandTree(HTREEITEM hTreeItem)
{
if (!m_tree.ItemHasChildren(hTreeItem))//如果树控件根节点没有子节点则返回
{
return;
}
HTREEITEM hNextItem = m_tree.GetChildItem(hTreeItem);//若树控件的根节点有子节点则获取根节点的子节点
while (hNextItem != NULL)//若有
{
MyExpandTree(hNextItem);//递归,展开子节点下的所有子节点
hNextItem = m_tree.GetNextItem(hNextItem, TVGN_NEXT);//获取根节点的下一个子节点
}
m_tree.Expand(hTreeItem, TVE_EXPAND);//展开节点
}
TCHAR lpPath[255] = { 0 };
HTREEITEM *treeStr;
BOOL Cmenu2Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
GetCurrentDirectory(MAX_PATH, lpPath);
wsprintf(lpPath, L"%s\\menu.enus", lpPath);
SetWindowLong(m_hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
//treeStr[0] = m_tree.InsertItem(L"Windows CE", 1, 0, TVI_ROOT);
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
treeStr = new HTREEITEM[iNodeNum]();
for (int i = 0; i < iNodeNum; i++)
{
TCHAR iniCBuffer[255] = { 0 };
wsprintf(iniCBuffer, L"%d", i);
int currentFat = GetPrivateProfileInt(iniCBuffer, L"fat", -1, lpPath);
if (currentFat == -1)
continue;//201C101
TCHAR currentName[255] = { 0 };
GetPrivateProfileString(iniCBuffer, L"name", NULL, currentName, 255, lpPath);
if (currentFat == -2)
treeStr[0] = m_tree.InsertItem(currentName, 1, 0, TVI_ROOT);
else
treeStr[i] = m_tree.InsertItem(currentName, 1, 0, treeStr[currentFat]);
}
MyExpandTree(m_tree.GetRootItem());
DigHelp *dlg = new DigHelp;
dlg->Create(IDD_DIALOG1, NULL);
dlg->ShowWindow(SW_SHOWNORMAL);//SW_SHOW是对话框的显示方式
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void Cmenu2Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialogEx::OnPaint();
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1); //对话框的背景图片
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld = dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR Cmenu2Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void Cmenu2Dlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}
void doCommand(TCHAR *cmd, TCHAR *para)
{
ShellExecute(NULL, L"open", cmd, para, NULL, SW_SHOWNORMAL);
}
void doCommandD(TCHAR *cmd, TCHAR *para, TCHAR *dir)
{
ShellExecute(NULL, L"open", cmd, para, dir, SW_SHOWNORMAL);
}
void Cmenu2Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//CDialogEx::OnOK();
HTREEITEM hselected = m_tree.GetSelectedItem();
int currentTreeID = 0;
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
for (; currentTreeID < iNodeNum; currentTreeID++)
{
if (hselected == treeStr[currentTreeID])
break;
}
TCHAR currentINIHead[255] = { 0 };
TCHAR currentINICmd[255] = { 0 };
TCHAR currentINIPara[255] = { 0 };
TCHAR currentINIDir[255] = { 0 };
wsprintf(currentINIHead, L"%d", currentTreeID);
GetPrivateProfileString(currentINIHead, L"cmd", NULL, currentINICmd, 255, lpPath);
GetPrivateProfileString(currentINIHead, L"para", NULL, currentINIPara, 255, lpPath);
GetPrivateProfileString(currentINIHead, L"dir", NULL, currentINIDir, 255, lpPath);
if (currentINICmd[0] != NULL)
doCommandD(currentINICmd, currentINIPara, currentINIDir);
}
void Cmenu2Dlg::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnCancel();
}
void Cmenu2Dlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
doCommand(L"..\\DOCS\\help.txt", NULL);
*pResult = 0;
}
void Cmenu2Dlg::OnNMClickSyslink2(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
doCommand(L"..\\DOCS\\vers.bmp", NULL);
*pResult = 0;
}
void Cmenu2Dlg::OnNMClickSyslink3(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
//doCommand(L".\\about.exe", NULL);
about *dlg = new about;
dlg->Create(IDD_ABOUT_DIALOG, NULL);
dlg->ShowWindow(SW_SHOWNORMAL);//SW_SHOW是对话框的显示方式
*pResult = 0;
}
void Cmenu2Dlg::OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
Cmenu2Dlg::OnBnClickedOk();
*pResult = 0;
}

View File

@ -1,45 +0,0 @@

// menu2Dlg.h: 头文件
//
#pragma once
// Cmenu2Dlg 对话框
class Cmenu2Dlg : public CDialogEx
{
// 构造
public:
Cmenu2Dlg(CWnd* pParent = nullptr); // 标准构造函数
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_MENU2_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);
CTreeCtrl m_tree;
void MyExpandTree(HTREEITEM hTreeItem);
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel();
afx_msg void OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMClickSyslink2(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMClickSyslink3(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult);
};

View File

@ -1,5 +0,0 @@
// pch.cpp: 与预编译标头对应的源文件
#include "pch.h"
// 当使用预编译的头时,需要使用此源文件,编译才能成功。

View File

@ -1,23 +0,0 @@
// pch.h: 这是预编译标头文件。
// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
#ifndef PCH_H
#define PCH_H
// 添加要在此处预编译的标头
#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows XP.
#define _WIN32_WINNT 0x0501
#endif
#include "framework.h"
#include <afxcontrolbars.h>
#include <afxcontrolbars.h>
#endif //PCH_H

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Binary file not shown.

View File

@ -1,32 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 menu2.rc 使用
//
#define IDD_MENU2_DIALOG 102
#define IDR_MAINFRAME 128
#define IDB_BITMAP3 130
#define IDB_BITMAP1 131
#define IDI_ICON1 132
#define IDD_DIALOG1 133
#define IDD_ABOUT_DIALOG 134
#define IDB_BITMAP2 135
#define IDC_TREE1 1000
#define IDC_SYSLINK1 1001
#define IDC_SYSLINK2 1002
#define IDC_SYSLINK3 1003
#define IDC_BUTTON1 1004
#define IDC_STATIC1 1005
#define IDC_STATICVER 1006
#define IDC_EDIT1 1007
#define IDC_TREE2 1008
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 136
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1009
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@ -1,8 +0,0 @@
#pragma once
// 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h并将
// 将 _WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
#include <SDKDDKVer.h>

70
WNT/menu3.exe/ReadMe.txt Normal file
View File

@ -0,0 +1,70 @@
================================================================================
MICROSOFT 基础类库: menu3 项目概述
===============================================================================
应用程序向导已为您创建了这个 menu3 应用程序。此应用程序不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用程序的起点。
本文件概要介绍组成 menu3 应用程序的每个文件的内容。
menu3.vcproj
这是使用应用程序向导生成的 VC++ 项目的主项目文件。
它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
menu3.h
这是应用程序的主要头文件。它包括其他项目特定的头文件(包括 Resource.h),并声明 Cmenu3App 应用程序类。
menu3.cpp
这是包含应用程序类 Cmenu3App 的主要应用程序源文件。
menu3.rc
这是程序使用的所有 Microsoft Windows 资源的列表。它包括 RES 子目录中存储的图标、位图和光标。此文件可以直接在 Microsoft Visual C++ 中进行编辑。项目资源位于 2052 中。
res\menu3.ico
这是用作应用程序图标的图标文件。此图标包括在主要资源文件 menu3.rc 中。
res\menu3.rc2
此文件包含不在 Microsoft Visual C++ 中进行编辑的资源。您应该将不可由资源编辑器编辑的所有资源放在此文件中。
/////////////////////////////////////////////////////////////////////////////
应用程序向导创建一个对话框类:
menu3Dlg.hmenu3Dlg.cpp - 对话框
这些文件包含 Cmenu3Dlg 类。该类定义应用程序主对话框的行为。该对话框的模板位于 menu3.rc 中,该文件可以在 Microsoft Visual C++ 中进行编辑。
/////////////////////////////////////////////////////////////////////////////
其他功能:
ActiveX 控件
应用程序包括对使用 ActiveX 控件的支持。
/////////////////////////////////////////////////////////////////////////////
其他标准文件:
StdAfx.hStdAfx.cpp
这些文件用于生成名为 menu3.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
Resource.h
这是标准头文件,它定义新的资源 ID。
Microsoft Visual C++ 读取并更新此文件。
menu3.manifest
应用程序清单文件供 Windows XP 用来描述应用程序
对特定版本并行程序集的依赖性。加载程序使用此
信息从程序集缓存加载适当的程序集或
从应用程序加载私有信息。应用程序清单可能为了重新分发而作为
与应用程序可执行文件安装在相同文件夹中的外部 .manifest 文件包括,
也可能以资源的形式包括在该可执行文件中。
/////////////////////////////////////////////////////////////////////////////
其他注释:
应用程序向导使用“TODO:”指示应添加或自定义的源代码部分。
如果应用程序在共享的 DLL 中使用 MFC则需要重新发布这些 MFC DLL如果应用程序所用的语言与操作系统的当前区域设置不同则还需要重新发布对应的本地化资源 MFC80XXX.DLL。有关这两个主题的更多信息请参见 MSDN 文档中有关 Redistributing Visual C++ applications (重新发布 Visual C++ 应用程序)的章节。
/////////////////////////////////////////////////////////////////////////////

108
WNT/menu3.exe/aboutDlg.cpp Normal file
View File

@ -0,0 +1,108 @@
// aboutDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "menu3.h"
#include "aboutDlg.h"
// CaboutDlg 对话框
IMPLEMENT_DYNAMIC(CaboutDlg, CDialog)
CaboutDlg::CaboutDlg(CWnd* pParent /*=NULL*/)
: CDialog(CaboutDlg::IDD, pParent)
{
}
CaboutDlg::~CaboutDlg()
{
}
void CaboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CaboutDlg, CDialog)
END_MESSAGE_MAP()
// CaboutDlg 消息处理程序
TCHAR* AsciiToUnicode(char *str)
{
DWORD dwNum = 0;
dwNum = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
TCHAR* pwHostName = new TCHAR[dwNum];
MultiByteToWideChar(CP_ACP, 0, str, -1, pwHostName, dwNum);
return pwHostName;
}
BOOL CaboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
MessageBox(L"aaaaa");
ShowWindow(SW_NORMAL);
CRect rtDesk;
CRect rtDlg;
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
GetWindowRect(&rtDlg);
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
TCHAR lpPath[255] = { 0 };
wsprintf(lpPath, L"..\\CECD0.20");
HANDLE hFile = CreateFile(
lpPath, // 文件名
GENERIC_READ, // 读权限
0, // 不共享
NULL, // 安全属性
OPEN_EXISTING, // 打开已存在的文件
FILE_ATTRIBUTE_NORMAL, // 文件属性
NULL // 模板文件的句柄
);
if (hFile == INVALID_HANDLE_VALUE) {
MessageBox(L"ERROR");
return 1;
}
// 确定文件大小
DWORD dwFileSize = GetFileSize(hFile, NULL);
// 分配内存读取文件
char buffer[255] = { 0 };
DWORD dwRead = 0;
// 读取文件内容
if (ReadFile(hFile, buffer, dwFileSize, &dwRead, NULL)) {
buffer[dwFileSize] = '\0'; // 添加字符串终止符
}
// 关闭文件句柄
CloseHandle(hFile);
GetDlgItem(IDC_STATIC1)->SetWindowText(AsciiToUnicode(buffer));
GetDlgItem(IDC_EDIT1)->SetWindowText( L"Developer\r\n"
L" 351 351Workshop@Bilibili\r\n"
L"Sponsor\r\n"
L" IBM IBM_Official@Bilibili\r\n"
L" Dr.Quest 蓬岸@知乎\r\n"
L"Image Providing\r\n"
L" Alexis lucss21a@Discord\r\n"
L"Artworks\r\n"
L" WinPad とある科学の手机副屏@Bilibili\r\n"
L"Guidance and Testing\r\n"
L" Inter -INTER_INIT-@Bilibili\r\n"
L" GoldApple 不务正业的金苹果@Bilibili\r\n"
L" Zesa LinuxMEMZ@Bilibili\r\n"
L" DZY DZY20070614@Bilibili\r\n");
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

23
WNT/menu3.exe/aboutDlg.h Normal file
View File

@ -0,0 +1,23 @@
#pragma once
// CaboutDlg 对话框
class CaboutDlg : public CDialog
{
DECLARE_DYNAMIC(CaboutDlg)
public:
CaboutDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CaboutDlg();
// 对话框数据
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
};

546
WNT/menu3.exe/menu.enus Normal file
View File

@ -0,0 +1,546 @@
[sug]
maxInfo=7
0="Background color in Shell Emulator depends on your host computer's setting."
1="Sound in CE 1.x Shell Emulator depends on your host computer's setting."
2="Reset your computer to boot into CEPC Loader."
3="LOADCEPC.EXE will load the CE image to the memory."
4="If the CEPC Loader show an error,you can try to increase memory."
5="CE Collections was called CEPC Collection before!"
6="Don't use more than one Shell Emulator at the same time!"
[0]
fat=-2
nodeNum=999
name="Windows CE Family"
[1]
fat=0
name="1.x"
[2]
fat=0
name="2.x"
[3]
fat=0
name="3.x"
[4]
fat=0
name="4.x"
[5]
fat=0
name="5.x"
[6]
fat=0
name="6.x"
[7]
fat=0
name="7.x"
[8]
fat=0
name="8.x"
[11]
fat=1
name="1.0x"
[13]
fat=2
name="2.00"
[14]
fat=2
name="2.01"
[15]
fat=2
name="2.10"
[16]
fat=2
name="2.11"
[17]
fat=2
name="2.12"
[18]
fat=3
name="3.00"
[19]
fat=4
name="4.00"
[20]
fat=4
name="4.10"
[21]
fat=4
name="4.20"
[22]
fat=4
name="4.21"
[23]
fat=5
name="5.00"
[24]
fat=5
name="5.10"
[25]
fat=5
name="5.20"
[26]
fat=6
name="6.00"
[30]
fat=7
name="7.00"
[31]
fat=7
name="7.10"
[32]
fat=8
name="8.00"
[101]
fat=11
name="Windows CE 1.0x"
cmd="hiderun.vbs"
para=""shellmgr 1 .\10xSTD SHELL32.exe""
[201]
fat=13
name="Windows CE 2.0"
cmd="hiderun.vbs"
para=""whitebox.exe /D:3 /M:PRO2.cfg ..\..\I486\20xSTD.bin""
dir=".\whitebox\"
[202]
fat=13
name="Handheld PC 2.0"
cmd="hiderun.vbs"
para=""shellmgr 2 .\200HPC explorem.exe""
[203]
fat=14
name="Auto PC 1.0"
cmd="hiderun.vbs"
para=""shellmgr 4 .\201APC APCHW.exe""
[204]
fat=14
name="Palm-size PC 1.0"
cmd="hiderun.vbs"
para=""shellmgr 2 .\201PPC SHELL32.exe""
[205]
fat=15
name="Windows CE 2.10"
cmd="hiderun.vbs"
para=""whitebox.exe /D:3 ..\..\I486\210STD.bin""
dir=".\whitebox\"
[206]
fat=16
name="Windows CE 2.11"
cmd="hiderun.vbs"
para=""whitebox.exe /D:3 ..\..\I486\211STD.bin""
dir=".\whitebox\"
[207]
fat=16
name="Palm-size PC 1.1"
cmd="hiderun.vbs"
para=""shellmgr 2 .\211PPC1 SHELL32.exe""
[208]
fat=16
name="Palm-szie PC 1.2"
cmd="hiderun.vbs"
para=""shellmgr 2 .\211PPC2 SHELL32.exe""
[209]
fat=16
name="Handheld PC 3.0"
cmd="hiderun.vbs"
para=""shellmgr 2 .\211HPC explorej.exe""
[200]
fat=17
name="Windows CE 2.12"
cmd="hiderun.vbs"
para=""whitebox.exe /D:3 ..\..\I486\212STD.bin""
dir=".\whitebox\"
[301]
fat=18
name="Windows CE 3.0"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\300STD.bin""
dir=".\whitebox\"
[302]
fat=18
name="Pocket PC 2000"
cmd="hiderun.vbs"
para=""shellmgr 3 .\300PPC2K SHELL32.exe""
[303]
fat=18
name="Handheld PC 2000"
cmd="hiderun.vbs"
para=""whitebox.exe /D:3 ..\..\I486\300HPC.bin""
dir=".\whitebox\"
[304]
fat=18
name="Windows Mobile 2002"
[305]
fat=304
name="Pocket PC"
cmd="hiderun.vbs"
para=""whitebox.exe /L:240x320x16 ..\..\I486\300PPC.bin""
dir=".\whitebox\"
[306]
fat=304
name="Smart Phone"
cmd="hiderun.vbs"
para=""whitebox.exe /L:240x320x16 ..\..\I486\300SP.bin""
dir=".\whitebox\"
[401]
fat=19
name="Windows CE.net 4.0"
[402]
fat=401
name="Standard"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\400STD.bin""
dir=".\whitebox\"
[403]
fat=401
name="Thin Client"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\400TC.bin""
dir=".\whitebox\"
[404]
fat=20
name="Windows CE.net 4.1"
[405]
fat=404
name="Standard"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\410STD.bin""
dir=".\whitebox\"
[406]
fat=404
name="Thin Client"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\410TC.bin""
dir=".\whitebox\"
[407]
fat=21
name="Windows CE.net 4.2"
[408]
fat=407
name="Standard"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\420STD.bin""
dir=".\whitebox\"
[409]
fat=407
name="Thin Client"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\420TC.bin""
dir=".\whitebox\"
[410]
fat=21
name="Windows Mobile 2003"
[411]
fat=410
name="Pocket PC"
cmd="hiderun.vbs"
para=""whitebox.exe /L:240x320x16 ..\..\I486\420PPC.bin""
dir=".\whitebox\"
[412]
fat=410
name="Smart Phone"
cmd="hiderun.vbs"
para=""whitebox.exe /L:240x320x16 ..\..\I486\420SP.bin""
dir=".\whitebox\"
[413]
fat=22
name="Windows Mobile 2003 SE"
[414]
fat=413
name="Pocket PC"
cmd="hiderun.vbs"
para=""whitebox.exe /L:240x320x16 ..\..\I486\421PPC.bin""
dir=".\whitebox\"
[415]
fat=413
name="Smart Phone"
cmd="hiderun.vbs"
para=""whitebox.exe /L:240x320x16 ..\..\I486\421SP.bin""
dir=".\whitebox\"
[501]
fat=23
name="Windows CE.net 5.0"
[502]
fat=501
name="Standard"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\500STD.bin""
dir=".\whitebox\"
[503]
fat=501
name="Thin Client"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\500TC.bin""
dir=".\whitebox\"
[504]
fat=501
name="IP Phone"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\500IPP.bin""
dir=".\whitebox\"
[505]
fat=23
name="Networked Media Device 5.0"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\500NMD.bin""
dir=".\whitebox\"
[506]
fat=24
name="Windows Mobile 5.0"
[507]
fat=506
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\510PPC.bin /memsize 256"
[508]
fat=506
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\510SP.bin /memsize 256"
[509]
fat=24
name="Windows Mobile 5.2"
[510]
fat=509
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\510PPC2.bin /memsize 256"
[511]
fat=509
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\510SP2.bin /memsize 256"
[512]
fat=25
name="Windows Mobile 6.0"
[513]
fat=512
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520PPC.bin /memsize 256"
[514]
fat=512
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520SP.bin /memsize 256"
[515]
fat=25
name="Windows Mobile 6.0.2"
[516]
fat=515
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520PPC02.bin /memsize 256"
[517]
fat=515
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520SP02.bin /memsize 256"
[518]
fat=25
name="Windows Mobile 6.1"
[519]
fat=518
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520PPC1.bin /memsize 256"
[520]
fat=518
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520SP1.bin /memsize 256"
[521]
fat=25
name="Windows Mobile 6.1.4"
[522]
fat=521
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520PPC14.bin /memsize 256"
[523]
fat=521
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520SP14.bin /memsize 256"
[524]
fat=25
name="Windows Mobile 6.5"
[525]
fat=524
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520PPC5.bin /memsize 256"
[526]
fat=524
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520SP5.bin /memsize 256"
[527]
fat=25
name="Windows Mobile 6.5.3"
[528]
fat=527
name="Pocket PC"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520PPC53.bin /memsize 256"
[529]
fat=527
name="Smart Phone"
cmd="DeviceEmulator.exe"
para="..\ARMV4\520SP53.bin /memsize 256"
[601]
fat=26
name="Windows Embedded CE 6.0"
[602]
fat=601
name="Standard"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xSTD.bin""
dir=".\whitebox\"
[603]
fat=601
name="Thin Client"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xTC.bin""
dir=".\whitebox\"
[604]
fat=601
name="IP Phone"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xIPP.bin""
dir=".\whitebox\"
[605]
fat=601
name="NMD UI(5.0)"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xNMD.bin""
dir=".\whitebox\"
[701]
fat=30
name="Windows Embedded Compact 7.0"
[702]
fat=701
name="Standard"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\700STD.bin""
dir=".\whitebox\"
[703]
fat=701
name="Thin Client"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\700TC.bin""
dir=".\whitebox\"
[704]
fat=701
name="Silverlight"
[705]
fat=704
name="Theme A"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL1.bin""
dir=".\whitebox\"
[706]
fat=704
name="Theme B"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL2.bin""
dir=".\whitebox\"
[707]
fat=704
name="Theme C"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL3.bin""
dir=".\whitebox\"
[708]
fat=704
name="Theme D"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL4.bin""
dir=".\whitebox\"
[709]
fat=30
name="Automotive Embedded 7"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\700APC.bin""
dir=".\whitebox\"
[710]
fat=30
name="Windows Phone 7"
cmd="hiderun.vbs"
para="".\xdemgr 0 ..\..\ARMV40\700WP.bin""
[711]
fat=30
name="Windows Phone 7 NoDo"
cmd="hiderun.vbs"
para="".\xdemgr 0 ..\..\ARMV40\700WPN.bin""
[712]
fat=31
name="Windows Phone 7.5"
cmd="hiderun.vbs"
para="".\xdemgr 2 ..\..\ARMV40\710WP5.bin""
[713]
fat=31
name="Windows Phone 7.5 Refresh"
cmd="hiderun.vbs"
para="".\xdemgr 2 ..\..\ARMV40\710WP5R.bin""
[714]
fat=31
name="Windows Phone 7.8"
cmd="hiderun.vbs"
para="".\xdemgr 2 ..\..\ARMV40\710WP8.bin""
[801]
fat=32
name="Windows Embedded Compact 2013"
[802]
fat=801
name="Standard"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\800STD.bin""
dir=".\whitebox\"
[803]
fat=801
name="Silverlight"
[804]
fat=803
name="Theme A"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL1.bin""
dir=".\whitebox\"
[805]
fat=803
name="Theme B"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL2.bin""
dir=".\whitebox\"
[806]
fat=803
name="Theme C"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL3.bin""
dir=".\whitebox\"
[807]
fat=803
name="Theme D"
cmd="hiderun.vbs"
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL4.bin""
dir=".\whitebox\"

78
WNT/menu3.exe/menu3.cpp Normal file
View File

@ -0,0 +1,78 @@
// menu3.cpp : 定义应用程序的类行为。
//
#include "stdafx.h"
#include "menu3.h"
#include "menu3Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Cmenu3App
BEGIN_MESSAGE_MAP(Cmenu3App, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// Cmenu3App 构造
Cmenu3App::Cmenu3App()
{
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的一个 Cmenu3App 对象
Cmenu3App theApp;
// Cmenu3App 初始化
BOOL Cmenu3App::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("CE-Collection"));
Cmenu3Dlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此处放置处理何时用“确定”来关闭
// 对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用“取消”来关闭
// 对话框的代码
}
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}

31
WNT/menu3.exe/menu3.h Normal file
View File

@ -0,0 +1,31 @@
// menu3.h : PROJECT_NAME 应用程序的主头文件
//
#pragma once
#ifndef __AFXWIN_H__
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif
#include "resource.h" // 主符号
// Cmenu3App:
// 有关此类的实现,请参阅 menu3.cpp
//
class Cmenu3App : public CWinApp
{
public:
Cmenu3App();
// 重写
public:
virtual BOOL InitInstance();
// 实现
DECLARE_MESSAGE_MAP()
};
extern Cmenu3App theApp;

213
WNT/menu3.exe/menu3.rc Normal file
View File

@ -0,0 +1,213 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 中文(中华人民共和国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
"#include ""res\\menu3.rc2"" // 非 Microsoft Visual C++ 编辑的资源\r\n"
"#include ""afxres.rc"" // 标准组件\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON "res\\menu3.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOGEX 0, 0, 346, 344
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About CE-Collections"
FONT 9, "宋体", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,267,316,54,17,WS_GROUP
CONTROL 130,IDC_STATIC,"Static",SS_BITMAP,6,4,333,67
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,75,345,1
LTEXT "CE-Collections Project",IDC_STATIC,43,81,89,8
LTEXT "<VER>",IDC_STATIC1,43,93,278,8
LTEXT "Develoment:",IDC_STATIC,43,215,45,8
EDITTEXT IDC_EDIT1,48,228,273,78,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL
LTEXT "Copyright:",IDC_STATIC,43,115,41,8
LTEXT "351Workshop 2022-2025",IDC_STATIC,48,127,85,8
LTEXT "Microsoft Crop.",IDC_STATIC,48,139,61,8
LTEXT "Thanks to:",IDC_STATIC,43,159,41,8
LTEXT "FareastOnline Research 2025-2025",IDC_STATIC,48,183,129,8
LTEXT "ONEW Studio 2022-2025",IDC_STATIC,48,171,85,8
LTEXT "Compumuseum 2025-2025",IDC_STATIC,48,196,85,8
END
IDD_MENU3_DIALOG DIALOGEX 0, 0, 683, 512
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
FONT 9, "宋体", 0, 0, 0x1
BEGIN
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | WS_BORDER | WS_TABSTOP,265,137,385,295
PUSHBUTTON "Run>>",IDOK,594,441,56,16
LTEXT "Help",IDC_STATICBTN2,14,137,72,16
LTEXT "Version list",IDC_STATICBTN3,14,160,72,16
LTEXT "About...",IDC_STATICBTN1,14,203,72,16
END
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040004b0"
BEGIN
VALUE "CompanyName", "351Workshop"
VALUE "FileDescription", "CE-Collections WinNT platform loader"
VALUE "FileVersion", "2.02.Beta1.05"
VALUE "InternalName", "menu3.exe"
VALUE "LegalCopyright", "Copyright 351Workshop 2022-2025"
VALUE "OriginalFilename", "menu3.exe"
VALUE "ProductName", "CE-Collections"
VALUE "ProductVersion", "2.02.Beta1.05"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x400, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
VERTGUIDE, 43
VERTGUIDE, 48
VERTGUIDE, 321
END
IDD_MENU3_DIALOG, DIALOG
BEGIN
VERTGUIDE, 14
VERTGUIDE, 86
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_BITMAP1 BITMAP "res\\background.bmp"
IDB_BITMAP2 BITMAP "res\\about.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_ABOUTBOX "About CE-Collections(&A)..."
END
#endif // 中文(中华人民共和国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "res\menu3.rc2" // 非 Microsoft Visual C++ 编辑的资源
#include "afxres.rc" // 标准组件
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

280
WNT/menu3.exe/menu3.vcproj Normal file
View File

@ -0,0 +1,280 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="menu3"
ProjectGUID="{FA3449F6-31A9-4D7D-9FD6-4313C952F258}"
RootNamespace="menu3"
Keyword="MFCProj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
ValidateParameters="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
ValidateParameters="false"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="false"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Ô´Îļþ"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\menu3.cpp"
>
</File>
<File
RelativePath=".\menu3Dlg.cpp"
>
</File>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Í·Îļþ"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\menu3.h"
>
</File>
<File
RelativePath=".\menu3Dlg.h"
>
</File>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
</Filter>
<Filter
Name="×ÊÔ´Îļþ"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\res\about.bmp"
>
</File>
<File
RelativePath=".\res\background.bmp"
>
</File>
<File
RelativePath=".\res\menu3.ico"
>
</File>
<File
RelativePath=".\menu3.rc"
>
</File>
<File
RelativePath=".\res\menu3.rc2"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="menu3.rc"
/>
</Globals>
</VisualStudioProject>

390
WNT/menu3.exe/menu3Dlg.cpp Normal file
View File

@ -0,0 +1,390 @@
// menu3Dlg.cpp : 实现文件
//
#include "stdafx.h"
#include "menu3.h"
#include "menu3Dlg.h"
#include "afxwin.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// 对话框数据
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
public:
CEdit m_edit1;
CStatic m_textver;
virtual BOOL OnInitDialog();
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT1, m_edit1);
DDX_Control(pDX, IDC_STATIC1, m_textver);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// Cmenu3Dlg 对话框
Cmenu3Dlg::Cmenu3Dlg(CWnd* pParent /*=NULL*/)
: CDialog(Cmenu3Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void Cmenu3Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TREE1, m_tree);
}
BEGIN_MESSAGE_MAP(Cmenu3Dlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDCANCEL, &Cmenu3Dlg::OnBnClickedCancel)
ON_BN_CLICKED(IDOK, &Cmenu3Dlg::OnBnClickedOk)
ON_NOTIFY(NM_DBLCLK, IDC_TREE1, &Cmenu3Dlg::OnNMDblclkTree1)
ON_WM_CTLCOLOR()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
// Cmenu3Dlg 消息处理程序
void Cmenu3Dlg::MyExpandTree(HTREEITEM hTreeItem)
{
if (!m_tree.ItemHasChildren(hTreeItem))//如果树控件根节点没有子节点则返回
{
return;
}
HTREEITEM hNextItem = m_tree.GetChildItem(hTreeItem);//若树控件的根节点有子节点则获取根节点的子节点
while (hNextItem != NULL)//若有
{
MyExpandTree(hNextItem);//递归,展开子节点下的所有子节点
hNextItem = m_tree.GetNextItem(hNextItem, TVGN_NEXT);//获取根节点的下一个子节点
}
m_tree.Expand(hTreeItem, TVE_EXPAND);//展开节点
}
TCHAR lpPath[255] = { 0 };
HTREEITEM *treeStr;
BOOL Cmenu3Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
wsprintf(lpPath, L".\\menu.enus");
GetDlgItem(IDC_STATICBTN1)->GetWindowRect(&m_rectbtn1);
ScreenToClient(&m_rectbtn1);
GetDlgItem(IDC_STATICBTN2)->GetWindowRect(&m_rectbtn2);
ScreenToClient(&m_rectbtn2);
GetDlgItem(IDC_STATICBTN3)->GetWindowRect(&m_rectbtn3);
ScreenToClient(&m_rectbtn3);
SetWindowLong(m_hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
treeStr = new HTREEITEM[iNodeNum]();
for (int i = 0; i < iNodeNum; i++)
{
TCHAR iniCBuffer[255] = { 0 };
wsprintf(iniCBuffer, L"%d", i);
int currentFat = GetPrivateProfileInt(iniCBuffer, L"fat", -1, lpPath);
if (currentFat == -1)
continue;//201C101
TCHAR currentName[255] = { 0 };
GetPrivateProfileString(iniCBuffer, L"name", NULL, currentName, 255, lpPath);
if (currentFat == -2)
treeStr[0] = m_tree.InsertItem(currentName, 1, 0, TVI_ROOT);
else
treeStr[i] = m_tree.InsertItem(currentName, 1, 0, treeStr[currentFat]);
}
MyExpandTree(m_tree.GetRootItem());
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void Cmenu3Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void Cmenu3Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialog::OnPaint();
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1); //对话框的背景图片
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld = dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标显示。
//
HCURSOR Cmenu3Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void Cmenu3Dlg::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
OnCancel();
}
void Cmenu3Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//OnOK();
HTREEITEM hselected = m_tree.GetSelectedItem();
int currentTreeID = 0;
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
for (; currentTreeID < iNodeNum; currentTreeID++)
{
if (hselected == treeStr[currentTreeID])
break;
}
TCHAR currentINIHead[255] = { 0 };
TCHAR currentINICmd[255] = { 0 };
TCHAR currentINIPara[255] = { 0 };
TCHAR currentINIDir[255] = { 0 };
wsprintf(currentINIHead, L"%d", currentTreeID);
GetPrivateProfileString(currentINIHead, L"cmd", NULL, currentINICmd, 255, lpPath);
GetPrivateProfileString(currentINIHead, L"para", NULL, currentINIPara, 255, lpPath);
GetPrivateProfileString(currentINIHead, L"dir", NULL, currentINIDir, 255, lpPath);
if (currentINICmd[0] != NULL)
{
ShellExecute(NULL, L"open", currentINICmd, currentINIPara, currentINIDir, SW_SHOWNORMAL);
}
}
void Cmenu3Dlg::OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
OnBnClickedOk();
}
HBRUSH Cmenu3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
if (pWnd->GetDlgCtrlID() == IDC_STATICBTN1 ||
pWnd->GetDlgCtrlID() == IDC_STATICBTN2 ||
pWnd->GetDlgCtrlID() == IDC_STATICBTN3)
{
pDC->SetTextColor(RGB(64,148,199));
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
void Cmenu3Dlg::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (point.x > m_rectbtn1.left && point.x < m_rectbtn1.right && point.y < m_rectbtn1.bottom && point.y > m_rectbtn1.top)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else if (point.x > m_rectbtn2.left && point.x < m_rectbtn2.right && point.y < m_rectbtn2.bottom && point.y > m_rectbtn2.top)
{
ShellExecute(NULL, L"open", L"..\\DOCS\\HELP.txt", NULL, NULL, SW_SHOWNORMAL);
}
else if (point.x > m_rectbtn3.left && point.x < m_rectbtn3.right && point.y < m_rectbtn3.bottom && point.y > m_rectbtn3.top)
{
ShellExecute(NULL, L"open", L"..\\DOCS\\VERS.bmp", NULL, NULL, SW_SHOWNORMAL);
}
CDialog::OnLButtonUp(nFlags, point);
}
void Cmenu3Dlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if ((point.x > m_rectbtn1.left && point.x < m_rectbtn1.right && point.y < m_rectbtn1.bottom && point.y > m_rectbtn1.top) ||
(point.x > m_rectbtn2.left && point.x < m_rectbtn2.right && point.y < m_rectbtn2.bottom && point.y > m_rectbtn2.top) ||
(point.x > m_rectbtn3.left && point.x < m_rectbtn3.right && point.y < m_rectbtn3.bottom && point.y > m_rectbtn3.top))
{
HCURSOR hCursor;
hCursor = ::LoadCursor ( NULL, IDC_HAND );
::SetCursor ( hCursor );
}
CDialog::OnMouseMove(nFlags, point);
}
TCHAR* AsciiToUnicode(char *str)
{
DWORD dwNum = 0;
dwNum = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
TCHAR* pwHostName = new TCHAR[dwNum];
MultiByteToWideChar(CP_ACP, 0, str, -1, pwHostName, dwNum);
return pwHostName;
}
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
ShowWindow(SW_NORMAL);
CRect rtDesk;
CRect rtDlg;
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
GetWindowRect(&rtDlg);
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
TCHAR lpPath[255] = { 0 };
wsprintf(lpPath, L"..\\CECD0.20");
char buffer[255] = { 0 };
HANDLE hFile = CreateFile(
lpPath, // 文件名
GENERIC_READ, // 读权限
0, // 不共享
NULL, // 安全属性
OPEN_EXISTING, // 打开已存在的文件
FILE_ATTRIBUTE_NORMAL, // 文件属性
NULL // 模板文件的句柄
);
if (hFile == INVALID_HANDLE_VALUE)
{
//MessageBox(L"Can't read CECD0.20");
//return 1;
}
else
{
// 确定文件大小
DWORD dwFileSize = GetFileSize(hFile, NULL);
// 分配内存读取文件
DWORD dwRead = 0;
// 读取文件内容
if (ReadFile(hFile, buffer, dwFileSize, &dwRead, NULL))
{
buffer[dwFileSize] = '\0'; // 添加字符串终止符
}
// 关闭文件句柄
CloseHandle(hFile);
}
GetDlgItem(IDC_STATIC1)->SetWindowText(AsciiToUnicode(buffer));
GetDlgItem(IDC_EDIT1)->SetWindowText( L"Developer\r\n"
L" 351 351Workshop@Bilibili\r\n"
L"Sponsor\r\n"
L" IBM IBM_Official@Bilibili\r\n"
L" Dr.Quest 蓬岸@知乎\r\n"
L"Image Providing\r\n"
L" Alexis lucss21a@Discord\r\n"
L"Artworks\r\n"
L" WinPad とある科学の手机副屏@Bilibili\r\n"
L"Guidance and Testing\r\n"
L" Inter -INTER_INIT-@Bilibili\r\n"
L" GoldApple 不务正业的金苹果@Bilibili\r\n"
L" Zesa LinuxMEMZ@Bilibili\r\n"
L" DZY DZY20070614@Bilibili\r\n");
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

44
WNT/menu3.exe/menu3Dlg.h Normal file
View File

@ -0,0 +1,44 @@
// menu3Dlg.h : 头文件
//
#pragma once
#include "afxcmn.h"
// Cmenu3Dlg 对话框
class Cmenu3Dlg : public CDialog
{
// 构造
public:
Cmenu3Dlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_MENU3_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedCancel();
afx_msg void OnBnClickedOk();
void MyExpandTree(HTREEITEM hTreeItem);
CTreeCtrl m_tree;
afx_msg void OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
CRect m_rectbtn1;
CRect m_rectbtn2;
CRect m_rectbtn3;
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
};

BIN
WNT/menu3.exe/res/Thumbs.db Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,13 @@
//
// menu3.RC2 - Microsoft Visual C++ 不会直接编辑的资源
//
#ifdef APSTUDIO_INVOKED
#error 此文件不能由 Microsoft Visual C++ 编辑
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// 在此处添加手动编辑的资源...
/////////////////////////////////////////////////////////////////////////////

28
WNT/menu3.exe/resource.h Normal file
View File

@ -0,0 +1,28 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by menu3.rc
//
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_MENU3_DIALOG 102
#define IDR_MAINFRAME 128
#define IDB_BITMAP1 129
#define IDB_BITMAP2 130
#define IDC_TREE1 1000
#define IDC_EDIT1 1005
#define IDC_STATICBTN1 1009
#define IDC_STATICBTN2 1010
#define IDC_STATICBTN3 1011
#define IDC_STATIC1 1012
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 131
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1013
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

7
WNT/menu3.exe/stdafx.cpp Normal file
View File

@ -0,0 +1,7 @@
// stdafx.cpp : 只包括标准包含文件的源文件
// menu3.pch 将作为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"

73
WNT/menu3.exe/stdafx.h Normal file
View File

@ -0,0 +1,73 @@
// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件
#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。
// 有关不同平台的相应值的最新信息,请参考 MSDN。
#ifndef WINVER // 允许使用特定于 Windows XP 或更高版本的功能。
#define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
#ifndef _WIN32_WINNT // 允许使用特定于 Windows XP 或更高版本的功能。
#define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
#ifndef _WIN32_WINDOWS // 允许使用特定于 Windows 98 或更高版本的功能。
#define _WIN32_WINDOWS 0x0410 // 将它更改为适合 Windows Me 或更高版本的相应值。
#endif
#ifndef _WIN32_IE // 允许使用特定于 IE 6.0 或更高版本的功能。
#define _WIN32_IE 0x0600 // 将此值更改为相应的值,以适用于 IE 的其他版本。值。
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif