⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profile.cpp

📁 source code of printer under WinCE5.0!
💻 CPP
字号:
#include "precomp.hxx"
#include "local.h"
#include "profile.h"

static void AdjustMargin(RECT *rcMargin)
{
	if (rcMargin->top + rcMargin->bottom >= A6PAPER_HEIGHT)
	{
		// should be corrupted, set to default
		rcMargin->top = MIN_MARGIN_TOP;
		rcMargin->bottom = MIN_MARGIN_BOTTOM;
	}
	if (rcMargin->left + rcMargin->right >= A6PAPER_WIDTH)
	{
		// should be corrupted, set to default
		rcMargin->left = MIN_MARGIN_LEFT;
		rcMargin->right = MIN_MARGIN_RIGHT;
	}

	if (rcMargin->top < MIN_MARGIN_TOP)
		rcMargin->top = MIN_MARGIN_TOP;
	if (rcMargin->bottom < MIN_MARGIN_BOTTOM)
		rcMargin->bottom = MIN_MARGIN_BOTTOM;
	if (rcMargin->left < MIN_MARGIN_LEFT)
		rcMargin->left = MIN_MARGIN_LEFT;
	if (rcMargin->right < MIN_MARGIN_RIGHT)
		rcMargin->right = MIN_MARGIN_RIGHT;
}

void LoadProfileSettings(LPA6PRINTDLG lpParam)
{
	HKEY hKey;
	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, STR_KEY_SETTINGS, 0, 0, &hKey) == ERROR_SUCCESS)
	{
		DWORD dwType, dwData;
		DWORD cbData;

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("Port"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->nPort = dwData;

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("Paper"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->nPaper = dwData;
		switch (lpParam->nPaper)
		{
		case 0: // A6 Sheet Paper
			lpParam->nWidth = A6PAPER_WIDTH;
			lpParam->nHeight = A6PAPER_HEIGHT;
			break;
		case 1: // A6 Roll Paper
			lpParam->nWidth = A6PAPER_WIDTH;
			lpParam->nHeight = A6PAPER_HEIGHT*2;
			break;
		case 2: // Customize size
			dwType = REG_DWORD; cbData = sizeof(DWORD);
			if (RegQueryValueEx(hKey, TEXT("Paper Width"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
				lpParam->nWidth = dwData;
			dwType = REG_DWORD; cbData = sizeof(DWORD);
			if (RegQueryValueEx(hKey, TEXT("Paper Height"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
				lpParam->nHeight = dwData;
			break;
		}

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("Orientation"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->bLandscape = dwData;

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("HalfTone"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->nDither = dwData;

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("FormFeed"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->nForm = dwData;
		if (lpParam->nForm == 0)
			lpParam->nScroll = DEFAULT_SCROLL;
		else
		{
			dwType = REG_DWORD; cbData = sizeof(DWORD);
			if (RegQueryValueEx(hKey, TEXT("FormFeed Length"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
				lpParam->nScroll = dwData;
		}

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("Margin Top"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->rcMargin.top = dwData;

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("Margin Bottom"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->rcMargin.bottom = dwData;

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("Margin Left"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->rcMargin.left = dwData;

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		if (RegQueryValueEx(hKey, TEXT("Margin Right"), NULL, &dwType, (PBYTE)&dwData, &cbData) == ERROR_SUCCESS)
			lpParam->rcMargin.right = dwData;

		AdjustMargin(&lpParam->rcMargin);

		RegCloseKey(hKey);
	}
}

void SaveProfileSettings(LPA6PRINTDLG lpParam)
{
	HKEY hKey;
	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, STR_KEY_SETTINGS, 0, 0, &hKey) == ERROR_SUCCESS)
	{
		DWORD dwType, dwData;
		DWORD cbData;

		AdjustMargin(&lpParam->rcMargin);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->nPort;
		RegSetValueEx(hKey, TEXT("Port"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->nPaper;
		RegSetValueEx(hKey, TEXT("Paper"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->nWidth;
		RegSetValueEx(hKey, TEXT("Paper Width"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->nHeight;
		RegSetValueEx(hKey, TEXT("Paper Height"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->bLandscape;
		RegSetValueEx(hKey, TEXT("Orientation"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->nDither;
		RegSetValueEx(hKey, TEXT("HalfTone"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->nForm;
		RegSetValueEx(hKey, TEXT("FormFeed"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->nScroll;
		RegSetValueEx(hKey, TEXT("FormFeed Length"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->rcMargin.top;
		RegSetValueEx(hKey, TEXT("Margin Top"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->rcMargin.bottom;
		RegSetValueEx(hKey, TEXT("Margin Bottom"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->rcMargin.left;
		RegSetValueEx(hKey, TEXT("Margin Left"), 0, dwType, (PBYTE)&dwData, cbData);

		dwType = REG_DWORD; cbData = sizeof(DWORD);
		dwData = lpParam->rcMargin.right;
		RegSetValueEx(hKey, TEXT("Margin Right"), 0, dwType, (PBYTE)&dwData, cbData);

		RegCloseKey(hKey);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -