Initial commit

This commit is contained in:
2023-09-12 13:48:06 +08:00
commit 46c4d7d179
53 changed files with 3520 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
# Screen Refresh
运行平台Windows CE (提供的二进制文件为 MIPSII)
这是一个适用于电子墨水屏的简易屏幕刷新工具,功能为黑白闪烁屏幕以达到刷新目的。
你可以在 `sources` 目录找到其源代码。
## 使用方法
直接运行 `ScreenRefresh.exe` 即可立即刷新整个屏幕。

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,29 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ScreenRefresh", "ScreenRefresh\ScreenRefresh.vcproj", "{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|CHSINT SDK For WinCE 6.0 (ARMV4I) = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
Debug|STANDARDSDK_500 (MIPSII) = Debug|STANDARDSDK_500 (MIPSII)
Release|CHSINT SDK For WinCE 6.0 (ARMV4I) = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
Release|STANDARDSDK_500 (MIPSII) = Release|STANDARDSDK_500 (MIPSII)
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Debug|CHSINT SDK For WinCE 6.0 (ARMV4I).ActiveCfg = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Debug|CHSINT SDK For WinCE 6.0 (ARMV4I).Build.0 = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Debug|CHSINT SDK For WinCE 6.0 (ARMV4I).Deploy.0 = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Debug|STANDARDSDK_500 (MIPSII).ActiveCfg = Debug|STANDARDSDK_500 (MIPSII)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Debug|STANDARDSDK_500 (MIPSII).Build.0 = Debug|STANDARDSDK_500 (MIPSII)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Debug|STANDARDSDK_500 (MIPSII).Deploy.0 = Debug|STANDARDSDK_500 (MIPSII)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Release|CHSINT SDK For WinCE 6.0 (ARMV4I).ActiveCfg = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Release|CHSINT SDK For WinCE 6.0 (ARMV4I).Build.0 = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Release|CHSINT SDK For WinCE 6.0 (ARMV4I).Deploy.0 = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Release|STANDARDSDK_500 (MIPSII).ActiveCfg = Release|STANDARDSDK_500 (MIPSII)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Release|STANDARDSDK_500 (MIPSII).Build.0 = Release|STANDARDSDK_500 (MIPSII)
{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}.Release|STANDARDSDK_500 (MIPSII).Deploy.0 = Release|STANDARDSDK_500 (MIPSII)
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

View File

@@ -0,0 +1,62 @@
========================================================================
WIN32 Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ScreenRefresh <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
========================================================================
Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD> ScreenRefresh Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ScreenRefresh Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ļ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
ScreenRefresh.vcproj
<20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD> VC++ <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8>ļ<EFBFBD><C4BC><EFBFBD>ʹ<EFBFBD>õ<EFBFBD> Visual C++ <20><EFBFBD><E6B1BE><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>Լ<EFBFBD>
<20>й<EFBFBD><D0B9><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
ScreenRefresh.cpp
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>Դ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
/////////////////////////////////////////////////////////////////////////////
Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD>򵼴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
ScreenRefresh.rc
<20><><EFBFBD>dz<EFBFBD><C7B3><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD> Microsoft Windows <20><>Դ<EFBFBD><D4B4><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD>׼ Windows CE <20><><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD>ƽ̨
<20><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2> RES <20><>Ŀ¼<C4BF>е<EFBFBD>ͼ<EFBFBD>ꡢλͼ
<20>͹<EFBFBD><CDB9><EFBFBD><EAA1A3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD> Microsoft Visual C++
<20>н<EFBFBD><D0BD>б<D0B1><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .rc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><E4A3AC><EFBFBD>ݽ<EFBFBD><DDBD>еĶ<D0B5><C4B6><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD>ư汾<C6B0><E6B1BE>
<20><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>ơ<EFBFBD>
ScreenRefresh.rc2
<20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Microsoft
Visual C++ <20><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><E0BCAD><EFBFBD><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ
<20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>С<EFBFBD>
Resource.h
<20><><EFBFBD>DZ<EFBFBD>׼ͷ<D7BC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>Դ ID<49><44>
Microsoft Visual C++ <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><C2B4>ļ<EFBFBD><C4BC><EFBFBD>
ScreenRefresh.ico
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ͼ<EFBFBD><CDBC> (32x32) <20><>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
<20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD> ScreenRefresh.rc <20>С<EFBFBD>
/////////////////////////////////////////////////////////////////////////////
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
StdAfx.h<><68>StdAfx.cpp
<20><>Щ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ ScreenRefresh.pch <20><>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>ͷ (PCH) <20>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>Ϊ StdAfx.obj <20><>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
/////////////////////////////////////////////////////////////////////////////
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD>ͣ<EFBFBD>
Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>á<EFBFBD>TODO:<3A><>ע<EFBFBD><D7A2>ָʾ
Ӧ<EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>벿<EFBFBD>֡<EFBFBD>
/////////////////////////////////////////////////////////////////////////////s

View File

@@ -0,0 +1,223 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//
// ScreenRefresh.cpp : <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㡣
#include "stdafx.h"
#include "ScreenRefresh.h"
#define MAX_LOADSTRING 100
// ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>:
HINSTANCE g_hInst; // <20><>ǰʵ<C7B0><CAB5>
HWND g_hWndCommandBar; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
ATOM MyRegisterClass(HINSTANCE, LPTSTR);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
// ִ<><D6B4>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>:
if (!InitInstance(hInstance, nCmdShow))
{
return FALSE;
}
HACCEL hAccelTable;
hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_SCREENREFRESH));
// <20><><EFBFBD><EFBFBD>Ϣѭ<CFA2><D1AD>:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
//
// <20><><EFBFBD><EFBFBD>: MyRegisterClass()
//
// Ŀ<><C4BF>: ע<><EFBFBD><E1B4B0><EFBFBD>
//
// ע<><D7A2>:
//
ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SCREENREFRESH));
wc.hCursor = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = szWindowClass;
return RegisterClass(&wc);
}
//
// <20><><EFBFBD><EFBFBD>: InitInstance(HINSTANCE, int)
//
// Ŀ<><C4BF>: <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
// ע<><D7A2>:
//
// <20>ڴ˺<DAB4><CBBA><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>򴰿ڡ<F2B4B0BF>
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
TCHAR szTitle[MAX_LOADSTRING]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
TCHAR szWindowClass[MAX_LOADSTRING]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
g_hInst = hInstance; // <20><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_SCREENREFRESH, szWindowClass, MAX_LOADSTRING);
if (!MyRegisterClass(hInstance, szWindowClass))
{
return FALSE;
}
// <20><>ȡ<EFBFBD><C8A1>Ļ<EFBFBD>ߴ<EFBFBD>
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
// <20><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
hWnd = CreateWindow(szWindowClass, L"ScreenRefresh", WS_POPUP | WS_VISIBLE,
0, 0, screenWidth, screenHeight, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
if (g_hWndCommandBar)
{
CommandBar_Show(g_hWndCommandBar, TRUE);
}
return TRUE;
}
//
// <20><><EFBFBD><EFBFBD>: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// Ŀ<><C4BF>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>Ϣ<EFBFBD><CFA2>
//
// WM_COMMAND - <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>˵<EFBFBD>
// WM_PAINT - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// WM_DESTROY - <20><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static int s_nFlashCount = 0;
static bool s_bIsBlack = false;
static UINT_PTR s_nTimerId = 0;
HWND taskbarWnd = FindWindow(L"HHTaskBar", NULL);
switch (msg)
{
case WM_CREATE:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
s_nTimerId = SetTimer(hWnd, 1, 1000, NULL);
if (taskbarWnd != NULL)
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ShowWindow(taskbarWnd, SW_HIDE);
}
break;
case WM_TIMER:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϣ
s_bIsBlack = !s_bIsBlack;
InvalidateRect(hWnd, NULL, TRUE);
if (++s_nFlashCount >= 3)
{
// ֹͣ<CDA3><D6B9>ʱ<EFBFBD><CAB1>
KillTimer(hWnd, s_nTimerId);
s_nTimerId = 0;
// <20>رմ<D8B1><D5B4><EFBFBD>
PostMessage(hWnd, WM_CLOSE, 0, 0);
}
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ƾ<EFBFBD><C6BE><EFBFBD>
RECT rect;
GetClientRect(hWnd, &rect);
HBRUSH hBrush = CreateSolidBrush(s_bIsBlack ? RGB(0, 0, 0) : RGB(255, 255, 255));
FillRect(hdc, &rect, hBrush);
DeleteObject(hBrush);
EndPaint(hWnd, &ps);
break;
}
case WM_CLOSE:
if (taskbarWnd != NULL)
{
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ShowWindow(taskbarWnd, SW_SHOW);
}
// <20><><EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD>
DestroyWindow(hWnd);
break;
case WM_DESTROY:
// <20>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}

View File

@@ -0,0 +1,22 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
#pragma once
#include "resource.h"

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,155 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#include "resdefce.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD>(<28>л<EFBFBD><D0BB><EFBFBD><EFBFBD>񹲺͹<F1B9B2BA>) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_SCREENREFRESH ICON "ScreenRefresh.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDC_SCREENREFRESH ACCELERATORS
BEGIN
"A", IDM_HELP_ABOUT, VIRTKEY, CONTROL, NOINVERT
"Q", IDOK, VIRTKEY, CONTROL, NOINVERT
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#include ""resdefce.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\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 ""ScreenRefresh.rc2"" // <20><> Microsoft Visual C++ <20><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404b0"
BEGIN
VALUE "FileDescription", "Windows CE <20>µ<EFBFBD><C2B5><EFBFBD>īˮ<C4AB><CBAE><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ļˢ<C4BB>¹<EFBFBD><C2B9>ߡ<EFBFBD>"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "<22><>Ļˢ<C4BB><CBA2>"
VALUE "LegalCopyright", "Copyright (C) 2017-2023 Fankes Studio"
VALUE "OriginalFilename", "ScreenRefresh.exe"
VALUE "ProductName", "<22><>Ļˢ<C4BB><CBA2>"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_APP_TITLE "ScreenRefresh"
IDC_SCREENREFRESH "SCREENREFRESH"
END
STRINGTABLE
BEGIN
IDS_TOOLS "<22><><EFBFBD><EFBFBD>"
END
#endif // <20><><EFBFBD><EFBFBD>(<28>л<EFBFBD><D0BB><EFBFBD><EFBFBD>񹲺͹<F1B9B2BA>) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "ScreenRefresh.rc2" // <20><> Microsoft Visual C++ <20><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,11 @@
//
// ScreenRefresh.RC2 - Microsoft Visual C++ <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>ӱ༭<D3B1><E0BCAD><EFBFBD><EFBFBD>Դ
//
#ifdef APSTUDIO_INVOKED
#error <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Microsoft Visual C++ <20>
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ...

View File

@@ -0,0 +1,467 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="ScreenRefresh"
ProjectGUID="{D1A27E77-B853-49A0-B1ED-BAF6B0B4F4B9}"
RootNamespace="ScreenRefresh"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="CHSINT SDK For WinCE 6.0 (ARMV4I)"
/>
<Platform
Name="STANDARDSDK_500 (MIPSII)"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="0"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;DEBUG;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
MinimalRebuild="true"
RuntimeLibrary="1"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRefresh.exe"
LinkIncremental="2"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRefresh.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
<Configuration
Name="Debug|STANDARDSDK_500 (MIPSII)"
OutputDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
IntermediateDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="1"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="0"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;DEBUG;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
MinimalRebuild="true"
RuntimeLibrary="1"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRefresh.exe"
LinkIncremental="2"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRefresh.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
<Configuration
Name="Release|CHSINT SDK For WinCE 6.0 (ARMV4I)"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="2"
FavorSizeOrSpeed="2"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRefresh.exe"
LinkIncremental="1"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRefresh.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
<Configuration
Name="Release|STANDARDSDK_500 (MIPSII)"
OutputDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
IntermediateDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="1"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="2"
FavorSizeOrSpeed="2"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRefresh.exe"
LinkIncremental="1"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRefresh.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Դ<>ļ<EFBFBD>"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\ScreenRefresh.cpp"
>
</File>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|STANDARDSDK_500 (MIPSII)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|CHSINT SDK For WinCE 6.0 (ARMV4I)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|STANDARDSDK_500 (MIPSII)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="ͷ<>ļ<EFBFBD>"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\ScreenRefresh.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
</Filter>
<Filter
Name="<22><>Դ<EFBFBD>ļ<EFBFBD>"
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=".\ScreenRefresh.ico"
>
</File>
<File
RelativePath=".\ScreenRefresh.rc"
>
</File>
<File
RelativePath=".\ScreenRefresh.rc2"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,42 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ScreenRefresh.rc
//
#define IDS_APP_TITLE 1
#define IDC_SCREENREFRESH 2
#define IDI_SCREENREFRESH 101
#define IDS_TOOLS 104
#define IDM_HELP_ABOUT 40002
#define IDC_STATIC -1
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

View File

@@ -0,0 +1,29 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//
// stdafx.cpp : ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Դ<EFBFBD>ļ<EFBFBD>
// ScreenRefresh.pch <20><><EFBFBD><EFBFBD>ΪԤ<CEAA><D4A4><EFBFBD><EFBFBD>ͷ
// stdafx.obj <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#include "stdafx.h"
// TODO: <20><> STDAFX.H <20><>
// <20><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -0,0 +1,79 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//
// stdafx.h : <20><>׼ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
// <20><><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
// <20>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD>
#pragma once
#pragma comment(linker, "/nodefaultlib:libc.lib")
#pragma comment(linker, "/nodefaultlib:libcd.lib")
// ע<><D7A2> - <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ΪĿ<CEAA><C4BF><EFBFBD><EFBFBD> Windows CE OS <20><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ǿ
#define WINVER _WIN32_WCE
#include <ceconfig.h>
#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
#define SHELL_AYGSHELL
#endif
#ifdef _CE_DCOM
#define _ATL_APARTMENT_THREADED
#endif
#include <windows.h>
#include <commctrl.h>
// Windows ͷ<>ļ<EFBFBD>:
#include <windows.h>
// C <20><><EFBFBD><EFBFBD>ʱͷ<CAB1>ļ<EFBFBD>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
#ifndef _DEVICE_RESOLUTION_AWARE
#define _DEVICE_RESOLUTION_AWARE
#endif
#endif
#ifdef _DEVICE_RESOLUTION_AWARE
#include "DeviceResolutionAware.h"
#endif
#if _WIN32_WCE < 0x500 && ( defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP) )
#pragma comment(lib, "ccrtrtti.lib")
#ifdef _X86_
#if defined(_DEBUG)
#pragma comment(lib, "libcmtx86d.lib")
#else
#pragma comment(lib, "libcmtx86.lib")
#endif
#endif
#endif
#include <altcecrt.h>
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>

View File

@@ -0,0 +1,11 @@
# Screen Rotating
运行平台Windows CE (提供的二进制文件为 MIPSII)
这是一个简易的屏幕旋转控制器,核心部分使用 [MortScript](http://www.sto-helit.de/index.php?module=page&entry=ms_overview) 实现。
你可以在 `sources` 目录找到其源代码。
## 使用方法
请将 `MortScript` 目录中除了 `MortRunner.exe``README.md` 之外的所有文件放置于当前目录,然后再将 `Tools\ScreenRefresh` 目录中的 `ScreenRefresh.exe` 放置于当前目录,运行 `ScreenRotating.exe` 即可。

Binary file not shown.

View File

@@ -0,0 +1,23 @@
##
# Hanvon EBook Hacker
# Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
# https://github.com/fankes/HanvonEBookHacker
#
# This software is non-free but opensource software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation; either
# version 3 of the License, or any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# and eula along with this software. If not, see
# <https://www.gnu.org/licenses/>
#
# This file is created by fankes on 2023/9/12.
##
Rotate(0)

Binary file not shown.

View File

@@ -0,0 +1,23 @@
##
# Hanvon EBook Hacker
# Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
# https://github.com/fankes/HanvonEBookHacker
#
# This software is non-free but opensource software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation; either
# version 3 of the License, or any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# and eula along with this software. If not, see
# <https://www.gnu.org/licenses/>
#
# This file is created by fankes on 2023/9/12.
##
Rotate(180)

Binary file not shown.

View File

@@ -0,0 +1,23 @@
##
# Hanvon EBook Hacker
# Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
# https://github.com/fankes/HanvonEBookHacker
#
# This software is non-free but opensource software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation; either
# version 3 of the License, or any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# and eula along with this software. If not, see
# <https://www.gnu.org/licenses/>
#
# This file is created by fankes on 2023/9/12.
##
Rotate(270)

Binary file not shown.

View File

@@ -0,0 +1,23 @@
##
# Hanvon EBook Hacker
# Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
# https://github.com/fankes/HanvonEBookHacker
#
# This software is non-free but opensource software: you can redistribute it
# and/or modify it under the terms of the GNU Affero General Public License
# as published by the Free Software Foundation; either
# version 3 of the License, or any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# and eula along with this software. If not, see
# <https://www.gnu.org/licenses/>
#
# This file is created by fankes on 2023/9/12.
##
Rotate(90)

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,29 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ScreenRotating", "ScreenRotating\ScreenRotating.vcproj", "{A41153E8-7C9A-4FBD-B849-3C6286151E54}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|CHSINT SDK For WinCE 6.0 (ARMV4I) = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
Debug|STANDARDSDK_500 (MIPSII) = Debug|STANDARDSDK_500 (MIPSII)
Release|CHSINT SDK For WinCE 6.0 (ARMV4I) = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
Release|STANDARDSDK_500 (MIPSII) = Release|STANDARDSDK_500 (MIPSII)
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Debug|CHSINT SDK For WinCE 6.0 (ARMV4I).ActiveCfg = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Debug|CHSINT SDK For WinCE 6.0 (ARMV4I).Build.0 = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Debug|CHSINT SDK For WinCE 6.0 (ARMV4I).Deploy.0 = Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Debug|STANDARDSDK_500 (MIPSII).ActiveCfg = Debug|STANDARDSDK_500 (MIPSII)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Debug|STANDARDSDK_500 (MIPSII).Build.0 = Debug|STANDARDSDK_500 (MIPSII)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Debug|STANDARDSDK_500 (MIPSII).Deploy.0 = Debug|STANDARDSDK_500 (MIPSII)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Release|CHSINT SDK For WinCE 6.0 (ARMV4I).ActiveCfg = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Release|CHSINT SDK For WinCE 6.0 (ARMV4I).Build.0 = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Release|CHSINT SDK For WinCE 6.0 (ARMV4I).Deploy.0 = Release|CHSINT SDK For WinCE 6.0 (ARMV4I)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Release|STANDARDSDK_500 (MIPSII).ActiveCfg = Release|STANDARDSDK_500 (MIPSII)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Release|STANDARDSDK_500 (MIPSII).Build.0 = Release|STANDARDSDK_500 (MIPSII)
{A41153E8-7C9A-4FBD-B849-3C6286151E54}.Release|STANDARDSDK_500 (MIPSII).Deploy.0 = Release|STANDARDSDK_500 (MIPSII)
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

View File

@@ -0,0 +1,62 @@
========================================================================
WIN32 Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ScreenRotating <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
========================================================================
Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD> ScreenRotating Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ScreenRotating Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ļ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
ScreenRotating.vcproj
<20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD> VC++ <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8>ļ<EFBFBD><C4BC><EFBFBD>ʹ<EFBFBD>õ<EFBFBD> Visual C++ <20><EFBFBD><E6B1BE><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>Լ<EFBFBD>
<20>й<EFBFBD><D0B9><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
ScreenRotating.cpp
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>Դ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
/////////////////////////////////////////////////////////////////////////////
Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD>򵼴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
ScreenRotating.rc
<20><><EFBFBD>dz<EFBFBD><C7B3><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD> Microsoft Windows <20><>Դ<EFBFBD><D4B4><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD>׼ Windows CE <20><><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD>ƽ̨
<20><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2> RES <20><>Ŀ¼<C4BF>е<EFBFBD>ͼ<EFBFBD>ꡢλͼ
<20>͹<EFBFBD><CDB9><EFBFBD><EAA1A3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD> Microsoft Visual C++
<20>н<EFBFBD><D0BD>б<D0B1><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .rc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><E4A3AC><EFBFBD>ݽ<EFBFBD><DDBD>еĶ<D0B5><C4B6><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD>ư汾<C6B0><E6B1BE>
<20><><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>ơ<EFBFBD>
ScreenRotating.rc2
<20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Microsoft
Visual C++ <20><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><E0BCAD><EFBFBD><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ
<20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>С<EFBFBD>
Resource.h
<20><><EFBFBD>DZ<EFBFBD>׼ͷ<D7BC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>Դ ID<49><44>
Microsoft Visual C++ <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><C2B4>ļ<EFBFBD><C4BC><EFBFBD>
ScreenRotating.ico
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ͼ<EFBFBD><CDBC> (32x32) <20><>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
<20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD> ScreenRotating.rc <20>С<EFBFBD>
/////////////////////////////////////////////////////////////////////////////
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
StdAfx.h<><68>StdAfx.cpp
<20><>Щ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ ScreenRotating.pch <20><>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>ͷ (PCH) <20>ļ<EFBFBD>
<20><><EFBFBD><EFBFBD>Ϊ StdAfx.obj <20><>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
/////////////////////////////////////////////////////////////////////////////
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD>ͣ<EFBFBD>
Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>á<EFBFBD>TODO:<3A><>ע<EFBFBD><D7A2>ָʾ
Ӧ<EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>벿<EFBFBD>֡<EFBFBD>
/////////////////////////////////////////////////////////////////////////////s

View File

@@ -0,0 +1,343 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//
// ScreenRotating.cpp : <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㡣
#include "stdafx.h"
#include "ScreenRotating.h"
#include <windows.h>
#define MAX_LOADSTRING 100
// ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>:
HINSTANCE g_hInst; // <20><>ǰʵ<C7B0><CAB5>
HWND g_hWndCommandBar; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
ATOM MyRegisterClass(HINSTANCE, LPTSTR);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK Main(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
// ִ<><D6B4>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>:
if (!InitInstance(hInstance, nCmdShow))
{
return FALSE;
}
HACCEL hAccelTable;
hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_SCREENROTATING));
// <20><><EFBFBD><EFBFBD>Ϣѭ<CFA2><D1AD>:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
//
// <20><><EFBFBD><EFBFBD>: MyRegisterClass()
//
// Ŀ<><C4BF>: ע<><EFBFBD><E1B4B0><EFBFBD>
//
// ע<><D7A2>:
//
ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass)
{
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SCREENROTATING));
wc.hCursor = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = szWindowClass;
return RegisterClass(&wc);
}
//
// <20><><EFBFBD><EFBFBD>: InitInstance(HINSTANCE, int)
//
// Ŀ<><C4BF>: <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
// ע<><D7A2>:
//
// <20>ڴ˺<DAB4><CBBA><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>򴰿ڡ<F2B4B0BF>
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
TCHAR szTitle[MAX_LOADSTRING]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
TCHAR szWindowClass[MAX_LOADSTRING]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
g_hInst = hInstance; // <20><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B4A2>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_SCREENROTATING, szWindowClass, MAX_LOADSTRING);
if (!MyRegisterClass(hInstance, szWindowClass))
{
return FALSE;
}
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPED,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
DialogBox(g_hInst, (LPCTSTR)IDD_MAINBOX, hWnd, Main);
if (g_hWndCommandBar)
{
CommandBar_Show(g_hWndCommandBar, TRUE);
}
return TRUE;
}
//
// <20><><EFBFBD><EFBFBD>: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// Ŀ<><C4BF>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>Ϣ<EFBFBD><CFA2>
//
// WM_COMMAND - <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>˵<EFBFBD>
// WM_PAINT - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// WM_DESTROY - <20><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_COMMAND:
break;
case WM_CREATE:
g_hWndCommandBar = CommandBar_Create(g_hInst, hWnd, 1);
CommandBar_AddAdornments(g_hWndCommandBar, 0, 0);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
CommandBar_Destroy(g_hWndCommandBar);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
bool GetSelfExecutablePath(LPCTSTR &path)
{
static TCHAR buffer[MAX_PATH];
DWORD result = GetModuleFileName(NULL, buffer, MAX_PATH);
if (result == 0)
{
_tprintf(_T("Failed to get self executable path. Error: %d\n"), GetLastError());
return false;
}
// Ѱ<><D1B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>·<EFBFBD><C2B7><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
LPTSTR lastSlash = _tcsrchr(buffer, _T('\\'));
if (lastSlash != NULL)
{
// <20><>·<EFBFBD><C2B7><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2>ֽضϣ<D8B6>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>Ŀ¼·<C2BC><C2B7>
*(lastSlash + 1) = _T('\0');
}
path = buffer;
return true;
}
bool OpenShellProgram(HWND hDlg, LPCTSTR programPath, LPCTSTR argument)
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>Ϣ<EFBFBD><EFBFBD><E1B9B9>
PROCESS_INFORMATION processInfo;
ZeroMemory(&processInfo, sizeof(PROCESS_INFORMATION));
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><E1B9B9>
STARTUPINFO startupInfo;
ZeroMemory(&startupInfo, sizeof(STARTUPINFO));
startupInfo.cb = sizeof(STARTUPINFO);
// ʹ<><CAB9> CreateProcess <20>򿪳<EFBFBD><F2BFAAB3><EFBFBD>
if (!CreateProcess(programPath, argument != NULL ? const_cast<LPTSTR>(argument) : NULL, NULL, NULL, FALSE, 0, NULL, NULL, &startupInfo, &processInfo))
{
// <20>򿪳<EFBFBD><F2BFAAB3><EFBFBD>ʧ<EFBFBD><CAA7>
MessageBox(hDlg, L"<EFBFBD><EFBFBD>ȷ<EFBFBD>ϵ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>չ֧<EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD> Rotate0.exe<78><65>Rotate90.exe<78><65>Rotate180.exe<78><65>Rotate270.exe <20>Լ<EFBFBD> ScreenRefresh.exe <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڡ<EFBFBD>", L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_ICONERROR | MB_OK);
return false;
}
// <20>رս<D8B1><D5BD>̺<EFBFBD><CCBA>̵߳ľ<CCB5><C4BE><EFBFBD>
CloseHandle(processInfo.hProcess);
CloseHandle(processInfo.hThread);
// <20>ɹ<EFBFBD><C9B9>򿪳<EFBFBD><F2BFAAB3><EFBFBD>
return true;
}
void RotateScreen(HWND hDlg, DWORD dwRotationAngle)
{
LPCTSTR selfPath;
if (!GetSelfExecutablePath(selfPath))
{
return;
}
bool isOk = false;
switch (dwRotationAngle)
{
case DMDO_0:
TCHAR appendedString0[MAX_PATH];
lstrcpy(appendedString0, selfPath);
lstrcat(appendedString0, _T("Rotate0.exe"));
isOk = OpenShellProgram(hDlg, appendedString0, NULL);
break;
case DMDO_90:
TCHAR appendedString1[MAX_PATH];
lstrcpy(appendedString1, selfPath);
lstrcat(appendedString1, _T("Rotate90.exe"));
isOk = OpenShellProgram(hDlg, appendedString1, NULL);
break;
case DMDO_180:
TCHAR appendedString2[MAX_PATH];
lstrcpy(appendedString2, selfPath);
lstrcat(appendedString2, _T("Rotate180.exe"));
isOk = OpenShellProgram(hDlg, appendedString2, NULL);
break;
case DMDO_270:
TCHAR appendedString3[MAX_PATH];
lstrcpy(appendedString3, selfPath);
lstrcat(appendedString3, _T("Rotate270.exe"));
isOk = OpenShellProgram(hDlg, appendedString3, NULL);
break;
}
if (!isOk)
{
return;
}
TCHAR appendedString4[MAX_PATH];
lstrcpy(appendedString4, selfPath);
lstrcat(appendedString4, _T("ScreenRefresh.exe"));
OpenShellProgram(hDlg, appendedString4, NULL);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A1B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT_PTR CALLBACK Main(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
{
RECT rectChild, rectParent;
int DlgWidth, DlgHeight; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ<EFBFBD>ĶԻ<C4B6><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ͸߶<CDB8>
int NewPosX, NewPosY;
// <20>ʹ<E8B7A8><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
if (GetWindowRect(hDlg, &rectChild))
{
GetClientRect(GetParent(hDlg), &rectParent);
DlgWidth = rectChild.right - rectChild.left;
DlgHeight = rectChild.bottom - rectChild.top;
NewPosX = (rectParent.right - rectParent.left - DlgWidth) / 2;
NewPosY = (rectParent.bottom - rectParent.top - DlgHeight) / 2;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A1B1><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>
if (NewPosX < 0)
NewPosX = 0;
if (NewPosY < 0)
NewPosY = 0;
SetWindowPos(hDlg, 0, NewPosX, NewPosY,
0, 0, SWP_NOZORDER | SWP_NOSIZE);
}
return (INT_PTR)TRUE;
}
case WM_COMMAND:
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
EndDialog(hDlg, LOWORD(wParam));
exit(0);
return TRUE;
}
if (LOWORD(wParam) == IDC_BUTTON_A && HIWORD(wParam) == BN_CLICKED)
{
DWORD rotationAngle = DMDO_0;
RotateScreen(hDlg, rotationAngle);
}
if (LOWORD(wParam) == IDC_BUTTON_B && HIWORD(wParam) == BN_CLICKED)
{
DWORD rotationAngle = DMDO_90;
RotateScreen(hDlg, rotationAngle);
}
if (LOWORD(wParam) == IDC_BUTTON_C && HIWORD(wParam) == BN_CLICKED)
{
DWORD rotationAngle = DMDO_180;
RotateScreen(hDlg, rotationAngle);
}
if (LOWORD(wParam) == IDC_BUTTON_D && HIWORD(wParam) == BN_CLICKED)
{
DWORD rotationAngle = DMDO_270;
RotateScreen(hDlg, rotationAngle);
}
break;
case WM_CLOSE:
EndDialog(hDlg, message);
exit(0);
return TRUE;
}
return (INT_PTR)FALSE;
}

View File

@@ -0,0 +1,22 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
#pragma once
#include "resource.h"

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,194 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#include "resdefce.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD>(<28>л<EFBFBD><D0BB><EFBFBD><EFBFBD>񹲺͹<F1B9B2BA>) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_SCREENROTATING ICON "ScreenRotating.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDC_SCREENROTATING ACCELERATORS
BEGIN
"A", IDM_HELP_ABOUT, VIRTKEY, CONTROL, NOINVERT
"Q", IDOK, VIRTKEY, CONTROL, NOINVERT
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_MAINBOX DIALOG 0, 0, 242, 128
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE 0x80000000L
CAPTION "<22><>Ļ<EFBFBD><C4BB>ת"
FONT 9, "MS Sans Serif"
BEGIN
LTEXT "<22><><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>ť<EFBFBD><C5A5>ת<EFBFBD><D7AA>ĻΪָ<CEAA><D6B8><EFBFBD>Ƕȡ<C7B6>",IDC_STATIC,59,15,131,8,SS_NOPREFIX
PUSHBUTTON "90 <20><>",IDC_BUTTON_B,124,36,83,32
DEFPUSHBUTTON "<22><><EFBFBD><EFBFBD>",IDC_BUTTON_A,35,36,83,32
PUSHBUTTON "270 <20><>",IDC_BUTTON_D,124,73,83,32
PUSHBUTTON "180 <20><>",IDC_BUTTON_C,35,73,83,32
LTEXT "<22><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD> (C) Fankes Studio",IDC_STATIC,72,113,110,8,SS_NOPREFIX
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_MAINBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 235
TOPMARGIN, 7
BOTTOMMARGIN, 121
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#include ""resdefce.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\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 ""ScreenRotating.rc2"" // <20><> Microsoft Visual C++ <20><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x80000L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404b0"
BEGIN
VALUE "FileDescription", "Windows CE <20>µļ<C2B5><C4BC><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "<22><>Ļ<EFBFBD><C4BB>ת"
VALUE "LegalCopyright", "Copyright (C) 2017-2023 Fankes Studio"
VALUE "OriginalFilename", "ScreenRotating.exe"
VALUE "ProductName", "<22><>Ļ<EFBFBD><C4BB>ת"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_APP_TITLE "ScreenRotating"
IDC_SCREENROTATING "SCREENROTATING"
END
STRINGTABLE
BEGIN
IDS_TOOLS "<22><><EFBFBD><EFBFBD>"
END
#endif // <20><><EFBFBD><EFBFBD>(<28>л<EFBFBD><D0BB><EFBFBD><EFBFBD>񹲺͹<F1B9B2BA>) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "ScreenRotating.rc2" // <20><> Microsoft Visual C++ <20><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,11 @@
//
// ScreenRotating.RC2 - Microsoft Visual C++ <20><><EFBFBD><EFBFBD>ֱ<EFBFBD>ӱ༭<D3B1><E0BCAD><EFBFBD><EFBFBD>Դ
//
#ifdef APSTUDIO_INVOKED
#error <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Microsoft Visual C++ <20>
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ...

View File

@@ -0,0 +1,467 @@
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="ScreenRotating"
ProjectGUID="{A41153E8-7C9A-4FBD-B849-3C6286151E54}"
RootNamespace="ScreenRotating"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="CHSINT SDK For WinCE 6.0 (ARMV4I)"
/>
<Platform
Name="STANDARDSDK_500 (MIPSII)"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="0"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;DEBUG;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
MinimalRebuild="true"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRotating.exe"
LinkIncremental="2"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRotating.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
<Configuration
Name="Debug|STANDARDSDK_500 (MIPSII)"
OutputDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
IntermediateDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="1"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="0"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;DEBUG;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
MinimalRebuild="true"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRotating.exe"
LinkIncremental="2"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRotating.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
<Configuration
Name="Release|CHSINT SDK For WinCE 6.0 (ARMV4I)"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="2"
FavorSizeOrSpeed="2"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRotating.exe"
LinkIncremental="1"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRotating.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
<Configuration
Name="Release|STANDARDSDK_500 (MIPSII)"
OutputDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
IntermediateDirectory="STANDARDSDK_500 (MIPSII)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="1"
/>
<Tool
Name="VCCLCompilerTool"
ExecutionBucket="7"
Optimization="2"
FavorSizeOrSpeed="2"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;_WINDOWS;$(ARCHFAM);$(_ARCHFAM_);_UNICODE;UNICODE;STANDARDSHELL_UI_MODEL"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="2052"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,6.00"
OutputFile="$(OutDir)/ScreenRotating.exe"
LinkIncremental="1"
DelayLoadDLLs="$(NOINHERIT)"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ScreenRotating.pdb"
SubSystem="0"
StackReserveSize="65536"
StackCommitSize="4096"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCCodeSignTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
<DeploymentTool
ForceDirty="-1"
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
/>
<DebuggerTool
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Դ<>ļ<EFBFBD>"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\ScreenRotating.cpp"
>
</File>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|CHSINT SDK For WinCE 6.0 (ARMV4I)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|STANDARDSDK_500 (MIPSII)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|CHSINT SDK For WinCE 6.0 (ARMV4I)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|STANDARDSDK_500 (MIPSII)"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="ͷ<>ļ<EFBFBD>"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\ScreenRotating.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
</Filter>
<Filter
Name="<22><>Դ<EFBFBD>ļ<EFBFBD>"
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=".\ScreenRotating.ico"
>
</File>
<File
RelativePath=".\ScreenRotating.rc"
>
</File>
<File
RelativePath=".\ScreenRotating.rc2"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,48 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ScreenRotating.rc
//
#define IDS_APP_TITLE 1
#define IDC_SCREENROTATING 2
#define IDI_SCREENROTATING 101
#define IDD_ABOUTBOX 103
#define IDD_MAINBOX 103
#define IDS_TOOLS 104
#define IDC_BUTTON_B 1001
#define IDC_BUTTON_A 1002
#define IDC_BUTTON_D 1003
#define IDC_BUTTON_C 1004
#define IDM_HELP_ABOUT 40002
#define IDC_STATIC -1
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 135
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1002
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

View File

@@ -0,0 +1,28 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//
// stdafx.cpp : ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Դ<EFBFBD>ļ<EFBFBD>
// ScreenRotating.pch <20><><EFBFBD><EFBFBD>ΪԤ<CEAA><D4A4><EFBFBD><EFBFBD>ͷ
// stdafx.obj <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#include "stdafx.h"
// TODO: <20><> STDAFX.H <20><>
// <20><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@@ -0,0 +1,79 @@
// Hanvon EBook Hacker
// Copyright (C) 2017-2023 Fankes Studio(qzmmcn@163.com)
// https://github.com/fankes/HanvonEBookHacker
//
// This software is non-free but opensource software: you can redistribute it
// and/or modify it under the terms of the GNU Affero General Public License
// as published by the Free Software Foundation; either
// version 3 of the License, or any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// and eula along with this software. If not, see
// <https://www.gnu.org/licenses/>
//
// This file is created by fankes on 2023/9/12.
//
// stdafx.h : <20><>׼ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
// <20><><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
// <20>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD>
#pragma once
#pragma comment(linker, "/nodefaultlib:libc.lib")
#pragma comment(linker, "/nodefaultlib:libcd.lib")
// ע<><D7A2> - <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ΪĿ<CEAA><C4BF><EFBFBD><EFBFBD> Windows CE OS <20><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ǿ
#define WINVER _WIN32_WCE
#include <ceconfig.h>
#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
#define SHELL_AYGSHELL
#endif
#ifdef _CE_DCOM
#define _ATL_APARTMENT_THREADED
#endif
#include <windows.h>
#include <commctrl.h>
// Windows ͷ<>ļ<EFBFBD>:
#include <windows.h>
// C <20><><EFBFBD><EFBFBD>ʱͷ<CAB1>ļ<EFBFBD>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
#ifndef _DEVICE_RESOLUTION_AWARE
#define _DEVICE_RESOLUTION_AWARE
#endif
#endif
#ifdef _DEVICE_RESOLUTION_AWARE
#include "DeviceResolutionAware.h"
#endif
#if _WIN32_WCE < 0x500 && ( defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP) )
#pragma comment(lib, "ccrtrtti.lib")
#ifdef _X86_
#if defined(_DEBUG)
#pragma comment(lib, "libcmtx86d.lib")
#else
#pragma comment(lib, "libcmtx86.lib")
#endif
#endif
#endif
#include <altcecrt.h>
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>