Showing preview only (2,893K chars total). Download the full file or copy to clipboard to get everything.
Repository: sinajia/Downloader
Branch: main
Commit: b9fd6e5f1910
Files: 197
Total size: 2.7 MB
Directory structure:
gitextract_1xa6jjjt/
├── .gitignore
├── LICENSE
├── Microsoft_VC++2022.sln
├── README-zh.md
├── README.md
├── WTL/
│ ├── atlapp.h
│ ├── atlcrack.h
│ ├── atlctrls.h
│ ├── atlctrlw.h
│ ├── atlctrlx.h
│ ├── atlddx.h
│ ├── atldlgs.h
│ ├── atldwm.h
│ ├── atlfind.h
│ ├── atlframe.h
│ ├── atlgdi.h
│ ├── atlmisc.h
│ ├── atlprint.h
│ ├── atlres.h
│ ├── atlresce.h
│ ├── atlribbon.h
│ ├── atlscrl.h
│ ├── atlsplit.h
│ ├── atltheme.h
│ ├── atluser.h
│ ├── atlwince.h
│ └── atlwinx.h
├── bin/
│ └── upx-4.1.0-win32/
│ ├── COPYING
│ ├── LICENSE
│ ├── NEWS
│ ├── README
│ ├── THANKS.txt
│ ├── upx-doc.html
│ ├── upx-doc.txt
│ └── upx.1
├── common/
│ ├── jsoncpp/
│ │ ├── json/
│ │ │ ├── autolink.h
│ │ │ ├── config.h
│ │ │ ├── features.h
│ │ │ ├── forwards.h
│ │ │ ├── json.h
│ │ │ ├── reader.h
│ │ │ ├── value.h
│ │ │ └── writer.h
│ │ ├── json_batchallocator.h
│ │ ├── json_valueiterator.inl
│ │ ├── reader.cpp
│ │ ├── value.cpp
│ │ └── writer.cpp
│ ├── util/
│ │ ├── base.cpp
│ │ ├── base.h
│ │ ├── def.h
│ │ ├── md5.cpp
│ │ ├── md5.h
│ │ ├── system.cpp
│ │ ├── system.h
│ │ ├── util_tools.cpp
│ │ └── util_tools.h
│ ├── xml/
│ │ ├── tinystr.cpp
│ │ ├── tinystr.h
│ │ ├── tinyxml.cpp
│ │ ├── tinyxml.h
│ │ ├── tinyxmlerror.cpp
│ │ ├── tinyxmlparser.cpp
│ │ ├── xmlhelper.cpp
│ │ └── xmlhelper.h
│ └── xzip/
│ ├── XUnzip.cpp
│ └── XUnzip.h
└── src/
├── .gitignore
├── App.vcxproj
├── App.vcxproj.filters
├── DirectUI/
│ ├── DUIButton.cpp
│ ├── DUIButton.h
│ ├── DUICheckBox.cpp
│ ├── DUICheckBox.h
│ ├── DUIDef.h
│ ├── DUIElement.cpp
│ ├── DUIElement.h
│ ├── DUIElementsMgr.cpp
│ ├── DUIElementsMgr.h
│ ├── DUIGDIResource.cpp
│ ├── DUIGDIResource.h
│ ├── DUIHyperLink.cpp
│ ├── DUIHyperLink.h
│ ├── DUILayeredEdit.cpp
│ ├── DUILayeredEdit.h
│ ├── DUIOptionLine.cpp
│ ├── DUIOptionLine.h
│ ├── DUIPanel.cpp
│ ├── DUIPanel.h
│ ├── DUIProgress.cpp
│ ├── DUIProgress.h
│ ├── DUIRadioButton.cpp
│ ├── DUIRadioButton.h
│ ├── DUIStatic.cpp
│ ├── DUIStatic.h
│ ├── DUITab.cpp
│ ├── DUITab.h
│ ├── DUITabList.cpp
│ ├── DUITabList.h
│ ├── DUITransWindow.cpp
│ ├── DUITransWindow.h
│ ├── DUITransWindowEx.cpp
│ ├── DUITransWindowEx.h
│ ├── DUIWindowStyle.cpp
│ ├── DUIWindowStyle.h
│ ├── Draw.cpp
│ ├── Draw.h
│ ├── EventHandler.h
│ ├── UpdateWindowBase.cpp
│ ├── UpdateWindowBase.h
│ ├── UpdateWindowBaseEx.cpp
│ └── UpdateWindowBaseEx.h
├── DownLoader/
│ ├── DownloadDelegate.cpp
│ ├── DownloadDelegate.h
│ ├── fetcherurl.cpp
│ ├── fetcherurl.h
│ ├── fetchfile.cpp
│ └── fetchfile.h
├── Downloader.rc
├── Event/
│ ├── WaitableEvent.cc
│ └── WaitableEvent.h
├── Global.cpp
├── Global.h
├── Language/
│ ├── Language.cpp
│ └── Language.h
├── LogAssist/
│ ├── LogAssist.cpp
│ └── LogAssist.h
├── Main.cpp
├── StdAfx.cpp
├── StdAfx.h
├── UI/
│ ├── FrameShowState.cpp
│ ├── FrameShowState.h
│ ├── UIAgreement.cpp
│ ├── UIAgreement.h
│ ├── UICannotDown.cpp
│ ├── UICannotDown.h
│ ├── UIMainWindowEx.cpp
│ ├── UIMainWindowEx.h
│ ├── UtilityWindow.cpp
│ └── UtilityWindow.h
├── Util/
│ ├── UtilApi.cpp
│ └── UtilApi.h
├── base/
│ ├── FastDelegate.h
│ ├── FastDelegateImpl.h
│ ├── MessageLoop.cc
│ ├── MessageLoop.h
│ ├── MessagePump.h
│ ├── MessagePumpDefault.cc
│ ├── MessagePumpDefault.h
│ ├── MessagePumpWin.cc
│ ├── MessagePumpWin.h
│ ├── PendingTask.cpp
│ ├── PendingTask.h
│ ├── Thread.cc
│ ├── Thread.h
│ ├── WeakPtr.cc
│ ├── WeakPtr.h
│ ├── WrapperObj.h
│ ├── aligned_memory.h
│ ├── at_exist.cc
│ ├── at_exist.h
│ ├── common_threads.cc
│ ├── common_threads.h
│ ├── lazy_instance.cc
│ ├── lazy_instance.h
│ ├── macros.h
│ ├── notification_details.h
│ ├── notification_observer.h
│ ├── notification_registrar.cc
│ ├── notification_registrar.h
│ ├── notification_service.cc
│ ├── notification_service.h
│ ├── notification_source.h
│ ├── notification_types.h
│ ├── observer_list.h
│ ├── ref_counted.cc
│ ├── ref_counted.h
│ ├── scoped_handle.h
│ ├── string_util_win.h
│ ├── stringprintf.cc
│ ├── stringprintf.h
│ ├── thread_local.cc
│ └── thread_local.h
├── base.h
├── net/
│ ├── url_fetcher.cc
│ └── url_fetcher.h
├── res/
│ └── xml/
│ ├── EngUIAgreement.xml
│ ├── EngUICannotDown.xml
│ ├── EngUIContent.xml
│ ├── EngUIMainWindow.xml
│ ├── UIAgreement.xml
│ ├── UICannotDown.xml
│ ├── UIContent.xml
│ └── UIMainWindow.xml
├── resource.h
└── time/
├── time.cc
└── time.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Compiled Static libraries
.vs/
0utPut/
Debug/
Release/
*.aps
*.vcxproj.user
*.vcproj.user
================================================
FILE: LICENSE
================================================
Copyright (c) <year> <copyright holders>
996 License Version 1.0 (Draft)
Permission is hereby granted to any individual or legal entity obtaining a copy of this licensed work (including the source code, documentation and/or related items, hereinafter collectively referred to as the "licensed work"), free of charge, to deal with the licensed work for any purpose, including without limitation, the rights to use, reproduce, prepare derivative works of, distribute and sublicense the licensed work, subject to the following conditions:
1. The individual or the legal entity must conspicuously display, without modification, this License on each redistributed or derivative copy of the Licensed Work.
2. The individual or the legal entity must strictly comply with all applicable laws, regulations, rules and standards of the jurisdiction relating to labor and employment where the individual is physically located or where the individual was born or naturalized; or where the legal entity is registered or is operating (whichever is stricter). In case that the jurisdiction has no such laws, regulations, rules and standards or its laws, regulations, rules and standards are unenforceable, the individual or the legal entity are required to comply with Core International Labor Standards.
3. The individual or the legal entity shall not induce or force its employee(s), whether full-time or part-time, or its independent contractor(s), in any methods, to agree in oral or written form, to directly or indirectly restrict, weaken or relinquish his or her rights or remedies under such laws, regulations, rules and standards relating to labor and employment as mentioned above, no matter whether such written or oral agreement are enforceable under the laws of the said jurisdiction, nor shall such individual or the legal entity limit, in any methods, the rights of its employee(s) or independent contractor(s) from reporting or complaining to the copyright holder or relevant authorities monitoring the compliance of the license about its violation(s) of the said license.
THE LICENSED WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ANY WAY CONNECTION WITH THE LICENSED WORK OR THE USE OR OTHER DEALINGS IN THE LICENSED WORK.
================================================
FILE: Microsoft_VC++2022.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34031.279
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Downloader", "src\App.vcxproj", "{D175BBA1-8E6A-4592-8F6C-3ABA862250BB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D175BBA1-8E6A-4592-8F6C-3ABA862250BB}.Debug|x86.ActiveCfg = Debug|Win32
{D175BBA1-8E6A-4592-8F6C-3ABA862250BB}.Debug|x86.Build.0 = Debug|Win32
{D175BBA1-8E6A-4592-8F6C-3ABA862250BB}.Release|x86.ActiveCfg = Release|Win32
{D175BBA1-8E6A-4592-8F6C-3ABA862250BB}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8F0590AF-8B95-4D3A-B92B-2D153EA34AB5}
EndGlobalSection
EndGlobal
================================================
FILE: README-zh.md
================================================
# 当必火🔥——Windows 平台的下载器
🚀 当必火🔥——让程序下载和安装变得简单!

## 特点:
- Windows C++ 原生代码(std:c++14)
- 超小体积——Release 版本只有 400kb 左右
- 使用 WTL,不依赖其他库
- 只需修改一个文件,就可以编译成自己的下载器
- 自绘界面,对懂 C++ 的高度可定制
- 下载一个 Zip 文件,解压然后安装到指定目录,并创建桌面快捷方式
## 编译
Visual Studio 2022
## 使用:
代码上,只需改一个 cpp 文件,重新编译即可。
编辑 src/Global.cpp。如果用 VC++ 打开,查看 Source Files/Global.cpp。
```c++
/// <configuration>
/// Set the following string and then compile
// Query zip download link
std::string CGlobal::downloadurl_ = "http://127.0.0.1:5001/download-url";
// directory name
std::string CGlobal::appDirName_ = "MyeXeAppDir";
// Exe file name such as eXeScope.exe or a relative path such as bin\\eXeScope.exe
std::string CGlobal::appname_ = "eXeScope.exe";
// shortcut file name
std::string CGlobal::shortcutname_ = "eXeScope";
// Link to open after installation
std::string CGlobal::openurl_ = "https://github.com/sinajia/Downloader";
/// </configuration>
```
需要修改上面五个变量。它们代表的意义如下:
downloadurl_,Get 请求地址。获取真正的 Zip 文件地址。
appDirName_,代表程序安装的文件夹的名称,这个文件夹由本下载器自动创建。
appname_,exe 文件的名称。例如 eXeScope.exe 或者 bin\\eXeScope.exe。
shortcutname_,桌面快捷方式的名称。
openurl_,可选。安装过程中,自动调用系统默认浏览器打开的网址,可以是空字符串""。如果为空字符串,则没有打开动作。
使用本下载器,需要有一个服务器端,必须实现上述的 Get 请求。以下代码是用 node.js 写的示例代码:
```js
const express = require('express')
const app = express()
app.get('/download-url', (req, res) => {
res.json({
downloadUrl: 'http://xxxx.com/zipfile.zip',
})
})
const server = require('http').createServer(app)
server.listen(5001, '0.0.0.0', function (err) {
console.log('running')
})
```
本下载器会自动解析这个 Get 请求返回的 Json 字符串。字段 downloadUrl 是必须的,表示真正的 Zip 文件的地址。Zip 文件就是程序的压缩包。
关于程序压缩包,可以参看 example\eXeScope.zip。
你还应该替换 App.ico,这个文件在 src\res。将 App.ico 替换为你自己程序的 ico 文件。当然,文件名必须还是 App.ico。
除此之外,你需要将 src\res\png 里面 1.png, 2.png, 3.png, 4.png, 5.png, 6.png 替换一下。这六张 png 图片是六张轮播图,替换成自己的。要求图片尺寸都是 480 × 240,png 格式。
做完这些,重新编译,然后启动!
## Star 一下
本程序的创作耗费了很多精力,请动动发财的小手点个 Star ~~~///(^v^)\\\~~~
## 赞助
本程序的创作耗费了我很多时间和精力,如果也帮到了你,请动动发财的小手,支持一下,让我更有动力更新 ❤️
USDT(TRC20)
TYWsj6oBb1zqkhMvYhXBuFYJD21dVWzXFL
================================================
FILE: README.md
================================================
# Win32 Native Downloader
🚀 A fast, tiny, native win32 downloader & installer for Windows platform.

[中文介绍](./README-zh.md)
## Features:
- Pure C++ (std:c++14).
- Tiny, the release version is only 414kb.
- Without any other dependencies.
- Just modify a little, very easy to use.
- Very beautiful UI framework, highly customizable.
- Download a zip file and install it to the specified directory.
## Compile and Build
Visual Studio 2022
## How to use:
You only need to modify one file and recompile it to get a customized downloader.
Edit file src/Global.cpp (Source Files/Global.cpp in VC++).
```c++
/// <configuration>
/// Set the following string and then compile
// Query zip download link
std::string CGlobal::downloadurl_ = "http://127.0.0.1:5001/download-url";
// directory name
std::string CGlobal::appDirName_ = "MyeXeAppDir";
// Exe file name such as eXeScope.exe or a relative path such as bin\\eXeScope.exe
std::string CGlobal::appname_ = "eXeScope.exe";
// shortcut file name
std::string CGlobal::shortcutname_ = "eXeScope";
// Link to open after installation
std::string CGlobal::openurl_ = "https://github.com/sinajia/Downloader";
/// </configuration>
```
You should modify the values of the above five variables.
The program will first request a json string from a specified resource. The get request url is stored in CGlobal::downloadurl_. Your server side needs to give the real download link.
Here is an example of a server side (Node.js)
```js
const express = require('express')
const app = express()
app.get('/download-url', (req, res) => {
res.json({
downloadUrl: 'http://xxxx.com/zipfile.zip',
})
})
const server = require('http').createServer(app)
server.listen(5001, '0.0.0.0', function (err) {
console.log('running')
})
```
"downloadUrl" is the real installation package link. `The package must be a zip file.`
You should also replace App.ico in src/res and six PNG images (1.png, 2.png, 3.png, 4.png, 5.png, 6.png) in src/res/png.
If you have done the above, please recompile it. Start now !
## Support
Help support the development and maintenance of the software ❤️
USDT(TRC20)
TYWsj6oBb1zqkhMvYhXBuFYJD21dVWzXFL
================================================
FILE: WTL/atlapp.h
================================================
// Windows Template Library - WTL version 9.10
// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.
//
// This file is a part of the Windows Template Library.
// The use and distribution terms for this software are covered by the
// Microsoft Public License (http://opensource.org/licenses/MS-PL)
// which can be found in the file MS-PL.txt at the root folder.
#ifndef __ATLAPP_H__
#define __ATLAPP_H__
#pragma once
#ifndef __cplusplus
#error WTL requires C++ compilation (use a .cpp suffix)
#endif
#ifndef __ATLBASE_H__
#error atlapp.h requires atlbase.h to be included first
#endif
#ifndef _WIN32_WCE
#if (WINVER < 0x0400)
#error WTL requires Windows version 4.0 or higher
#endif
#if (_WIN32_IE < 0x0300)
#error WTL requires IE version 3.0 or higher
#endif
#endif
#ifdef _ATL_NO_COMMODULE
#error WTL requires that _ATL_NO_COMMODULE is not defined
#endif
#if (_ATL_VER >= 0x0900) && defined(_ATL_MIN_CRT)
#error _ATL_MIN_CRT is not supported with ATL 9.0 and higher
#endif
#if defined(_WIN32_WCE) && defined(_ATL_MIN_CRT)
#pragma message("Warning: WTL for Windows CE doesn't use _ATL_MIN_CRT")
#endif
#include <limits.h>
#if !defined(_ATL_MIN_CRT) && defined(_MT) && !defined(_WIN32_WCE)
#include <process.h> // for _beginthreadex
#endif
#if (_ATL_VER < 0x0800) && !defined(_DEBUG)
#include <stdio.h>
#endif
#include <commctrl.h>
#ifndef _WIN32_WCE
#pragma comment(lib, "comctl32.lib")
#endif
#if defined(_SYSINFOAPI_H_) && defined(NOT_BUILD_WINDOWS_DEPRECATE) && (_WIN32_WINNT >= 0x0501)
#include <VersionHelpers.h>
#endif
#ifndef _WIN32_WCE
#include "atlres.h"
#else // CE specific
#include "atlresce.h"
#endif // _WIN32_WCE
// We need to disable this warning because of template class arguments
#pragma warning(disable: 4127)
#if (_ATL_VER >= 0x0900) && !defined(_SECURE_ATL)
#define _SECURE_ATL 1
#endif
///////////////////////////////////////////////////////////////////////////////
// WTL version number
#define _WTL_VER 0x0910
///////////////////////////////////////////////////////////////////////////////
// Classes in this file:
//
// CMessageFilter
// CIdleHandler
// CMessageLoop
//
// CAppModule
// CServerAppModule
//
// CRegKeyEx
//
// Global functions:
// AtlGetDefaultGuiFont()
// AtlCreateControlFont()
// AtlCreateBoldFont()
// AtlInitCommonControls()
///////////////////////////////////////////////////////////////////////////////
// Global support for Windows CE
#ifdef _WIN32_WCE
#ifndef SW_SHOWDEFAULT
#define SW_SHOWDEFAULT SW_SHOWNORMAL
#endif // !SW_SHOWDEFAULT
// These get's OR-ed in a constant and will have no effect.
// Defining them reduces the number of #ifdefs required for CE.
#define LR_DEFAULTSIZE 0
#define LR_LOADFROMFILE 0
#ifndef SM_CXCURSOR
#define SM_CXCURSOR 13
#endif
#ifndef SM_CYCURSOR
#define SM_CYCURSOR 14
#endif
inline BOOL IsMenu(HMENU hMenu)
{
MENUITEMINFO mii = { sizeof(MENUITEMINFO) };
::SetLastError(0);
BOOL bRet = ::GetMenuItemInfo(hMenu, 0, TRUE, &mii);
if(!bRet)
bRet = (::GetLastError() != ERROR_INVALID_MENU_HANDLE) ? TRUE : FALSE;
return bRet;
}
#if (_WIN32_WCE >= 410)
extern "C" void WINAPI ListView_SetItemSpacing(HWND hwndLV, int iHeight);
#endif // (_WIN32_WCE >= 410)
inline int MulDiv(IN int nNumber, IN int nNumerator, IN int nDenominator)
{
__int64 multiple = nNumber * nNumerator;
return static_cast<int>(multiple / nDenominator);
}
#if (_ATL_VER >= 0x0800)
#ifndef _WTL_KEEP_WS_OVERLAPPEDWINDOW
#ifdef WS_OVERLAPPEDWINDOW
#undef WS_OVERLAPPEDWINDOW
#define WS_OVERLAPPEDWINDOW 0
#endif // WS_OVERLAPPEDWINDOW
#endif // !_WTL_KEEP_WS_OVERLAPPEDWINDOW
#ifndef RDW_FRAME
#define RDW_FRAME 0
#endif // !RDW_FRAME
#ifndef WM_WINDOWPOSCHANGING
#define WM_WINDOWPOSCHANGING 0
#endif // !WM_WINDOWPOSCHANGING
#define FreeResource(x)
#define UnlockResource(x)
namespace ATL
{
inline HRESULT CComModule::RegisterClassObjects(DWORD /*dwClsContext*/, DWORD /*dwFlags*/) throw()
{ return E_NOTIMPL; }
inline HRESULT CComModule::RevokeClassObjects() throw()
{ return E_NOTIMPL; }
}; // namespace ATL
#ifndef lstrlenW
#define lstrlenW (int)ATL::lstrlenW
#endif // lstrlenW
inline int WINAPI lstrlenA(LPCSTR lpszString)
{ return ATL::lstrlenA(lpszString); }
#ifdef lstrcpyn
#undef lstrcpyn
#define lstrcpyn ATL::lstrcpynW
#endif // lstrcpyn
#ifndef SetWindowLongPtrW
inline LONG_PTR tmp_SetWindowLongPtrW( HWND hWnd, int nIndex, LONG_PTR dwNewLong )
{
return( ::SetWindowLongW( hWnd, nIndex, LONG( dwNewLong ) ) );
}
#define SetWindowLongPtrW tmp_SetWindowLongPtrW
#endif
#ifndef GetWindowLongPtrW
inline LONG_PTR tmp_GetWindowLongPtrW( HWND hWnd, int nIndex )
{
return( ::GetWindowLongW( hWnd, nIndex ) );
}
#define GetWindowLongPtrW tmp_GetWindowLongPtrW
#endif
#ifndef LongToPtr
#define LongToPtr(x) ((void*)x)
#endif
#ifndef PtrToInt
#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
#endif
#else // !(_ATL_VER >= 0x0800)
#ifdef lstrlenW
#undef lstrlenW
#define lstrlenW (int)::wcslen
#endif // lstrlenW
#define lstrlenA (int)strlen
#ifndef lstrcpyn
inline LPTSTR lstrcpyn(LPTSTR lpstrDest, LPCTSTR lpstrSrc, int nLength)
{
if(lpstrDest == NULL || lpstrSrc == NULL || nLength <= 0)
return NULL;
int nLen = __min(lstrlen(lpstrSrc), nLength - 1);
LPTSTR lpstrRet = (LPTSTR)memcpy(lpstrDest, lpstrSrc, nLen * sizeof(TCHAR));
lpstrDest[nLen] = 0;
return lpstrRet;
}
#endif // !lstrcpyn
#ifndef lstrcpynW
inline LPWSTR lstrcpynW(LPWSTR lpstrDest, LPCWSTR lpstrSrc, int nLength)
{
return lstrcpyn(lpstrDest, lpstrSrc, nLength); // WinCE is Unicode only
}
#endif // !lstrcpynW
#ifndef lstrcpynA
inline LPSTR lstrcpynA(LPSTR lpstrDest, LPCSTR lpstrSrc, int nLength)
{
if(lpstrDest == NULL || lpstrSrc == NULL || nLength <= 0)
return NULL;
int nLen = __min(lstrlenA(lpstrSrc), nLength - 1);
LPSTR lpstrRet = (LPSTR)memcpy(lpstrDest, lpstrSrc, nLen * sizeof(char));
lpstrDest[nLen] = 0;
return lpstrRet;
}
#endif // !lstrcpyn
#ifdef TrackPopupMenu
#undef TrackPopupMenu
#endif // TrackPopupMenu
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd) \
static CWndClassInfo& GetWndClassInfo() \
{ \
static CWndClassInfo wc = \
{ \
{ style, StartWindowProc, \
0, 0, NULL, NULL, NULL, (HBRUSH)(bkgnd + 1), NULL, WndClassName }, \
NULL, NULL, IDC_ARROW, TRUE, 0, _T("") \
}; \
return wc; \
}
#ifndef _MAX_FNAME
#define _MAX_FNAME _MAX_PATH
#endif // _MAX_FNAME
#if (_WIN32_WCE < 400)
#define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
#endif // (_WIN32_WCE < 400)
#if (_WIN32_WCE < 410)
#define WHEEL_PAGESCROLL (UINT_MAX)
#define WHEEL_DELTA 120
#endif // (_WIN32_WCE < 410)
#ifdef DrawIcon
#undef DrawIcon
#endif
#ifndef VARCMP_LT
#define VARCMP_LT 0
#endif
#ifndef VARCMP_EQ
#define VARCMP_EQ 1
#endif
#ifndef VARCMP_GT
#define VARCMP_GT 2
#endif
#ifndef VARCMP_NULL
#define VARCMP_NULL 3
#endif
#ifndef RDW_ALLCHILDREN
#define RDW_ALLCHILDREN 0
#endif
#endif // !(_ATL_VER >= 0x0800)
#endif // _WIN32_WCE
///////////////////////////////////////////////////////////////////////////////
// Global support for using original VC++ 6.0 headers with WTL
#if (_MSC_VER < 1300) && !defined(_WIN32_WCE)
#ifndef REG_QWORD
#define REG_QWORD 11
#endif
#ifndef BS_PUSHBOX
#define BS_PUSHBOX 0x0000000AL
#endif
struct __declspec(uuid("000214e6-0000-0000-c000-000000000046")) IShellFolder;
struct __declspec(uuid("000214f9-0000-0000-c000-000000000046")) IShellLinkW;
struct __declspec(uuid("000214ee-0000-0000-c000-000000000046")) IShellLinkA;
#endif // (_MSC_VER < 1300) && !defined(_WIN32_WCE)
#ifndef _ATL_NO_OLD_HEADERS_WIN64
#if !defined(_WIN64) && (_ATL_VER < 0x0700)
#ifndef PSM_INSERTPAGE
#define PSM_INSERTPAGE (WM_USER + 119)
#endif // !PSM_INSERTPAGE
#ifndef GetClassLongPtr
#define GetClassLongPtrA GetClassLongA
#define GetClassLongPtrW GetClassLongW
#ifdef UNICODE
#define GetClassLongPtr GetClassLongPtrW
#else
#define GetClassLongPtr GetClassLongPtrA
#endif // !UNICODE
#endif // !GetClassLongPtr
#ifndef GCLP_HICONSM
#define GCLP_HICONSM (-34)
#endif // !GCLP_HICONSM
#ifndef GetWindowLongPtr
#define GetWindowLongPtrA GetWindowLongA
#define GetWindowLongPtrW GetWindowLongW
#ifdef UNICODE
#define GetWindowLongPtr GetWindowLongPtrW
#else
#define GetWindowLongPtr GetWindowLongPtrA
#endif // !UNICODE
#endif // !GetWindowLongPtr
#ifndef SetWindowLongPtr
#define SetWindowLongPtrA SetWindowLongA
#define SetWindowLongPtrW SetWindowLongW
#ifdef UNICODE
#define SetWindowLongPtr SetWindowLongPtrW
#else
#define SetWindowLongPtr SetWindowLongPtrA
#endif // !UNICODE
#endif // !SetWindowLongPtr
#ifndef GWLP_WNDPROC
#define GWLP_WNDPROC (-4)
#endif
#ifndef GWLP_HINSTANCE
#define GWLP_HINSTANCE (-6)
#endif
#ifndef GWLP_HWNDPARENT
#define GWLP_HWNDPARENT (-8)
#endif
#ifndef GWLP_USERDATA
#define GWLP_USERDATA (-21)
#endif
#ifndef GWLP_ID
#define GWLP_ID (-12)
#endif
#ifndef DWLP_MSGRESULT
#define DWLP_MSGRESULT 0
#endif
typedef long LONG_PTR;
typedef unsigned long ULONG_PTR;
typedef ULONG_PTR DWORD_PTR;
#ifndef HandleToUlong
#define HandleToUlong( h ) ((ULONG)(ULONG_PTR)(h) )
#endif
#ifndef HandleToLong
#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) )
#endif
#ifndef LongToHandle
#define LongToHandle( h) ((HANDLE)(LONG_PTR) (h))
#endif
#ifndef PtrToUlong
#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) )
#endif
#ifndef PtrToLong
#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) )
#endif
#ifndef PtrToUint
#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) )
#endif
#ifndef PtrToInt
#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
#endif
#ifndef PtrToUshort
#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) )
#endif
#ifndef PtrToShort
#define PtrToShort( p ) ((short)(LONG_PTR)(p) )
#endif
#ifndef IntToPtr
#define IntToPtr( i ) ((VOID *)(INT_PTR)((int)i))
#endif
#ifndef UIntToPtr
#define UIntToPtr( ui ) ((VOID *)(UINT_PTR)((unsigned int)ui))
#endif
#ifndef LongToPtr
#define LongToPtr( l ) ((VOID *)(LONG_PTR)((long)l))
#endif
#ifndef ULongToPtr
#define ULongToPtr( ul ) ((VOID *)(ULONG_PTR)((unsigned long)ul))
#endif
#endif // !defined(_WIN64) && (_ATL_VER < 0x0700)
#endif // !_ATL_NO_OLD_HEADERS_WIN64
///////////////////////////////////////////////////////////////////////////////
// Global support for using original VC++ 7.x headers with WTL
#if (_MSC_VER >= 1300) && (_MSC_VER < 1400)
#ifndef BS_PUSHBOX
#define BS_PUSHBOX 0x0000000AL
#endif
#pragma warning(disable: 4244) // conversion from 'type1' to 'type2', possible loss of data
#endif // (_MSC_VER >= 1300) && (_MSC_VER < 1400)
///////////////////////////////////////////////////////////////////////////////
// Global support for old SDK headers
#ifndef BTNS_BUTTON
#define BTNS_BUTTON TBSTYLE_BUTTON
#endif
#ifndef BTNS_SEP
#define BTNS_SEP TBSTYLE_SEP
#endif
#ifndef BTNS_CHECK
#define BTNS_CHECK TBSTYLE_CHECK
#endif
#ifndef BTNS_GROUP
#define BTNS_GROUP TBSTYLE_GROUP
#endif
#ifndef BTNS_CHECKGROUP
#define BTNS_CHECKGROUP TBSTYLE_CHECKGROUP
#endif
#if (_WIN32_IE >= 0x0300)
#ifndef BTNS_DROPDOWN
#define BTNS_DROPDOWN TBSTYLE_DROPDOWN
#endif
#endif
#if (_WIN32_IE >= 0x0400)
#ifndef BTNS_AUTOSIZE
#define BTNS_AUTOSIZE TBSTYLE_AUTOSIZE
#endif
#ifndef BTNS_NOPREFIX
#define BTNS_NOPREFIX TBSTYLE_NOPREFIX
#endif
#endif
///////////////////////////////////////////////////////////////////////////////
// Global support for SecureHelper functions
#ifndef _TRUNCATE
#define _TRUNCATE ((size_t)-1)
#endif
#ifndef _ERRCODE_DEFINED
#define _ERRCODE_DEFINED
typedef int errno_t;
#endif
#ifndef _SECURECRT_ERRCODE_VALUES_DEFINED
#define _SECURECRT_ERRCODE_VALUES_DEFINED
#define EINVAL 22
#define STRUNCATE 80
#endif
#ifndef _countof
#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0]))
#endif
///////////////////////////////////////////////////////////////////////////////
// Miscellaneous global support
// define useful macros from winuser.h
#ifndef IS_INTRESOURCE
#define IS_INTRESOURCE(_r) (((ULONG_PTR)(_r) >> 16) == 0)
#endif // IS_INTRESOURCE
// protect template members from windowsx.h macros
#ifdef _INC_WINDOWSX
#undef SubclassWindow
#endif // _INC_WINDOWSX
// define useful macros from windowsx.h
#ifndef GET_X_LPARAM
#define GET_X_LPARAM(lParam) ((int)(short)LOWORD(lParam))
#endif
#ifndef GET_Y_LPARAM
#define GET_Y_LPARAM(lParam) ((int)(short)HIWORD(lParam))
#endif
// Dummy structs for compiling with /CLR
#if (_MSC_VER >= 1300) && defined(_MANAGED)
__if_not_exists(_IMAGELIST::_IMAGELIST) { struct _IMAGELIST { }; }
__if_not_exists(_TREEITEM::_TREEITEM) { struct _TREEITEM { }; }
__if_not_exists(_PSP::_PSP) { struct _PSP { }; }
#endif
// Define ATLVERIFY macro for ATL3
#if (_ATL_VER < 0x0700)
#ifndef ATLVERIFY
#ifdef _DEBUG
#define ATLVERIFY(expr) ATLASSERT(expr)
#else
#define ATLVERIFY(expr) (expr)
#endif // DEBUG
#endif // ATLVERIFY
#endif // (_ATL_VER < 0x0700)
// Forward declaration for ATL3 and ATL11 fix
#if (((_ATL_VER < 0x0700) && defined(_ATL_DLL)) || (_ATL_VER >= 0x0B00)) && !defined(_WIN32_WCE)
namespace ATL { HRESULT AtlGetCommCtrlVersion(LPDWORD pdwMajor, LPDWORD pdwMinor); };
#endif
#ifndef WM_MOUSEHWHEEL
#define WM_MOUSEHWHEEL 0x020E
#endif
namespace WTL
{
#if (_ATL_VER >= 0x0700)
DECLARE_TRACE_CATEGORY(atlTraceUI);
#ifdef _DEBUG
__declspec(selectany) ATL::CTraceCategory atlTraceUI(_T("atlTraceUI"));
#endif // _DEBUG
#else // !(_ATL_VER >= 0x0700)
enum wtlTraceFlags
{
atlTraceUI = 0x10000000
};
#endif // !(_ATL_VER >= 0x0700)
// Windows version helper
inline bool AtlIsOldWindows()
{
#ifdef _versionhelpers_H_INCLUDED_
return !::IsWindowsVersionOrGreater(4, 90, 0);
#else // !_versionhelpers_H_INCLUDED_
OSVERSIONINFO ovi = { sizeof(OSVERSIONINFO) };
BOOL bRet = ::GetVersionEx(&ovi);
return (!bRet || !((ovi.dwMajorVersion >= 5) || (ovi.dwMajorVersion == 4 && ovi.dwMinorVersion >= 90)));
#endif // _versionhelpers_H_INCLUDED_
}
// Default GUI font helper - "MS Shell Dlg" stock font
inline HFONT AtlGetDefaultGuiFont()
{
#ifndef _WIN32_WCE
return (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
#else // CE specific
return (HFONT)::GetStockObject(SYSTEM_FONT);
#endif // _WIN32_WCE
}
// Control font helper - default font for controls not in a dialog
// (NOTE: Caller owns the font, and should destroy it when it's no longer needed)
inline HFONT AtlCreateControlFont()
{
#ifndef _WIN32_WCE
LOGFONT lf = { 0 };
ATLVERIFY(::SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &lf, 0) != FALSE);
HFONT hFont = ::CreateFontIndirect(&lf);
ATLASSERT(hFont != NULL);
return hFont;
#else // CE specific
return (HFONT)::GetStockObject(SYSTEM_FONT);
#endif // _WIN32_WCE
}
// Bold font helper
// (NOTE: Caller owns the font, and should destroy it when it's no longer needed)
inline HFONT AtlCreateBoldFont(HFONT hFont = NULL)
{
LOGFONT lf = { 0 };
#ifndef _WIN32_WCE
if(hFont == NULL)
ATLVERIFY(::SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &lf, 0) != FALSE);
else
ATLVERIFY(::GetObject(hFont, sizeof(LOGFONT), &lf) == sizeof(LOGFONT));
#else // CE specific
if(hFont == NULL)
hFont = (HFONT)::GetStockObject(SYSTEM_FONT);
ATLVERIFY(::GetObject(hFont, sizeof(LOGFONT), &lf) == sizeof(LOGFONT));
#endif // _WIN32_WCE
lf.lfWeight = FW_BOLD;
HFONT hFontBold = ::CreateFontIndirect(&lf);
ATLASSERT(hFontBold != NULL);
return hFontBold;
}
// Common Controls initialization helper
inline BOOL AtlInitCommonControls(DWORD dwFlags)
{
INITCOMMONCONTROLSEX iccx = { sizeof(INITCOMMONCONTROLSEX), dwFlags };
BOOL bRet = ::InitCommonControlsEx(&iccx);
ATLASSERT(bRet);
return bRet;
}
///////////////////////////////////////////////////////////////////////////////
// RunTimeHelper - helper functions for Windows version and structure sizes
// Not for Windows CE
#if defined(_WIN32_WCE) && !defined(_WTL_NO_RUNTIME_STRUCT_SIZE)
#define _WTL_NO_RUNTIME_STRUCT_SIZE
#endif
#ifndef _WTL_NO_RUNTIME_STRUCT_SIZE
#ifndef _SIZEOF_STRUCT
#define _SIZEOF_STRUCT(structname, member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
#endif
#if (_WIN32_WINNT >= 0x0600) && !defined(REBARBANDINFO_V6_SIZE)
#define REBARBANDINFO_V6_SIZE _SIZEOF_STRUCT(REBARBANDINFO, cxHeader)
#endif // (_WIN32_WINNT >= 0x0600) && !defined(REBARBANDINFO_V6_SIZE)
#if (_WIN32_WINNT >= 0x0600) && !defined(LVGROUP_V5_SIZE)
#define LVGROUP_V5_SIZE _SIZEOF_STRUCT(LVGROUP, uAlign)
#endif // (_WIN32_WINNT >= 0x0600) && !defined(LVGROUP_V5_SIZE)
#if (_WIN32_WINNT >= 0x0600) && !defined(LVTILEINFO_V5_SIZE)
#define LVTILEINFO_V5_SIZE _SIZEOF_STRUCT(LVTILEINFO, puColumns)
#endif // (_WIN32_WINNT >= 0x0600) && !defined(LVTILEINFO_V5_SIZE)
#if defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN) && !defined(MCHITTESTINFO_V1_SIZE)
#define MCHITTESTINFO_V1_SIZE _SIZEOF_STRUCT(MCHITTESTINFO, st)
#endif // defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN) && !defined(MCHITTESTINFO_V1_SIZE)
#if !defined(_WIN32_WCE) && (WINVER >= 0x0600) && !defined(NONCLIENTMETRICS_V1_SIZE)
#define NONCLIENTMETRICS_V1_SIZE _SIZEOF_STRUCT(NONCLIENTMETRICS, lfMessageFont)
#endif // !defined(_WIN32_WCE) && (WINVER >= 0x0600) && !defined(NONCLIENTMETRICS_V1_SIZE)
#if !defined(_WIN32_WCE) && (_WIN32_WINNT >= 0x0501) && !defined(TTTOOLINFO_V2_SIZE)
#define TTTOOLINFO_V2_SIZE _SIZEOF_STRUCT(TTTOOLINFO, lParam)
#endif // !defined(_WIN32_WCE) && (_WIN32_WINNT >= 0x0501) && !defined(TTTOOLINFO_V2_SIZE)
#endif // !_WTL_NO_RUNTIME_STRUCT_SIZE
namespace RunTimeHelper
{
#ifndef _WIN32_WCE
inline bool IsCommCtrl6()
{
DWORD dwMajor = 0, dwMinor = 0;
HRESULT hRet = ATL::AtlGetCommCtrlVersion(&dwMajor, &dwMinor);
return (SUCCEEDED(hRet) && (dwMajor >= 6));
}
inline bool IsVista()
{
#ifdef _versionhelpers_H_INCLUDED_
return ::IsWindowsVistaOrGreater();
#else // !_versionhelpers_H_INCLUDED_
OSVERSIONINFO ovi = { sizeof(OSVERSIONINFO) };
BOOL bRet = ::GetVersionEx(&ovi);
return ((bRet != FALSE) && (ovi.dwMajorVersion >= 6));
#endif // _versionhelpers_H_INCLUDED_
}
inline bool IsThemeAvailable()
{
bool bRet = false;
if(IsCommCtrl6())
{
HMODULE hThemeDLL = ::LoadLibrary(_T("uxtheme.dll"));
if(hThemeDLL != NULL)
{
typedef BOOL (STDAPICALLTYPE *PFN_IsThemeActive)();
PFN_IsThemeActive pfnIsThemeActive = (PFN_IsThemeActive)::GetProcAddress(hThemeDLL, "IsThemeActive");
ATLASSERT(pfnIsThemeActive != NULL);
bRet = (pfnIsThemeActive != NULL) && (pfnIsThemeActive() != FALSE);
if(bRet)
{
typedef BOOL (STDAPICALLTYPE *PFN_IsAppThemed)();
PFN_IsAppThemed pfnIsAppThemed = (PFN_IsAppThemed)::GetProcAddress(hThemeDLL, "IsAppThemed");
ATLASSERT(pfnIsAppThemed != NULL);
bRet = (pfnIsAppThemed != NULL) && (pfnIsAppThemed() != FALSE);
}
::FreeLibrary(hThemeDLL);
}
}
return bRet;
}
inline bool IsWin7()
{
#ifdef _versionhelpers_H_INCLUDED_
return ::IsWindows7OrGreater();
#else // !_versionhelpers_H_INCLUDED_
OSVERSIONINFO ovi = { sizeof(OSVERSIONINFO) };
BOOL bRet = ::GetVersionEx(&ovi);
return ((bRet != FALSE) && (ovi.dwMajorVersion == 6) && (ovi.dwMinorVersion >= 1));
#endif // _versionhelpers_H_INCLUDED_
}
inline bool IsRibbonUIAvailable()
{
static INT iRibbonUI = -1;
#if defined(NTDDI_WIN7) && (NTDDI_VERSION >= NTDDI_WIN7)
if (iRibbonUI == -1)
{
HMODULE hRibbonDLL = ::LoadLibrary(_T("propsys.dll"));
if (hRibbonDLL != NULL)
{
const GUID CLSID_UIRibbonFramework = { 0x926749fa, 0x2615, 0x4987, { 0x88, 0x45, 0xc3, 0x3e, 0x65, 0xf2, 0xb9, 0x57 } };
// block - create instance
{
ATL::CComPtr<IUnknown> pIUIFramework;
iRibbonUI = SUCCEEDED(pIUIFramework.CoCreateInstance(CLSID_UIRibbonFramework)) ? 1 : 0;
}
::FreeLibrary(hRibbonDLL);
}
else
{
iRibbonUI = 0;
}
}
#endif // defined(NTDDI_WIN7) && (NTDDI_VERSION >= NTDDI_WIN7)
return (iRibbonUI == 1);
}
#endif // !_WIN32_WCE
inline UINT SizeOf_REBARBANDINFO()
{
UINT uSize = sizeof(REBARBANDINFO);
#if !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0600)
if(!(IsVista() && IsCommCtrl6()))
uSize = REBARBANDINFO_V6_SIZE;
#endif // !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0600)
return uSize;
}
#if (_WIN32_WINNT >= 0x501)
inline UINT SizeOf_LVGROUP()
{
UINT uSize = sizeof(LVGROUP);
#if !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0600)
if(!IsVista())
uSize = LVGROUP_V5_SIZE;
#endif // !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0600)
return uSize;
}
inline UINT SizeOf_LVTILEINFO()
{
UINT uSize = sizeof(LVTILEINFO);
#if !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0600)
if(!IsVista())
uSize = LVTILEINFO_V5_SIZE;
#endif // !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0600)
return uSize;
}
#endif // (_WIN32_WINNT >= 0x501)
inline UINT SizeOf_MCHITTESTINFO()
{
UINT uSize = sizeof(MCHITTESTINFO);
#if !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
if(!(IsVista() && IsCommCtrl6()))
uSize = MCHITTESTINFO_V1_SIZE;
#endif // !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && defined(NTDDI_VERSION) && (NTDDI_VERSION >= NTDDI_LONGHORN)
return uSize;
}
#ifndef _WIN32_WCE
inline UINT SizeOf_NONCLIENTMETRICS()
{
UINT uSize = sizeof(NONCLIENTMETRICS);
#if !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (WINVER >= 0x0600)
if(!IsVista())
uSize = NONCLIENTMETRICS_V1_SIZE;
#endif // !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (WINVER >= 0x0600)
return uSize;
}
inline UINT SizeOf_TOOLINFO()
{
UINT uSize = sizeof(TOOLINFO);
#if !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0501)
if(!IsVista())
uSize = TTTOOLINFO_V2_SIZE;
#endif // !defined(_WTL_NO_RUNTIME_STRUCT_SIZE) && (_WIN32_WINNT >= 0x0501)
return uSize;
}
#endif // !_WIN32_WCE
};
///////////////////////////////////////////////////////////////////////////////
// ModuleHelper - helper functions for ATL3 and ATL7 module classes
namespace ModuleHelper
{
inline HINSTANCE GetModuleInstance()
{
#if (_ATL_VER >= 0x0700)
return ATL::_AtlBaseModule.GetModuleInstance();
#else // !(_ATL_VER >= 0x0700)
return ATL::_pModule->GetModuleInstance();
#endif // !(_ATL_VER >= 0x0700)
}
inline HINSTANCE GetResourceInstance()
{
#if (_ATL_VER >= 0x0700)
return ATL::_AtlBaseModule.GetResourceInstance();
#else // !(_ATL_VER >= 0x0700)
return ATL::_pModule->GetResourceInstance();
#endif // !(_ATL_VER >= 0x0700)
}
inline void AddCreateWndData(ATL::_AtlCreateWndData* pData, void* pObject)
{
#if (_ATL_VER >= 0x0700)
ATL::_AtlWinModule.AddCreateWndData(pData, pObject);
#else // !(_ATL_VER >= 0x0700)
ATL::_pModule->AddCreateWndData(pData, pObject);
#endif // !(_ATL_VER >= 0x0700)
}
inline void* ExtractCreateWndData()
{
#if (_ATL_VER >= 0x0700)
return ATL::_AtlWinModule.ExtractCreateWndData();
#else // !(_ATL_VER >= 0x0700)
return ATL::_pModule->ExtractCreateWndData();
#endif // !(_ATL_VER >= 0x0700)
}
};
///////////////////////////////////////////////////////////////////////////////
// SecureHelper - helper functions for VS2005 secure CRT
namespace SecureHelper
{
inline void strcpyA_x(char* lpstrDest, size_t cchDest, const char* lpstrSrc)
{
#if _SECURE_ATL
ATL::Checked::strcpy_s(lpstrDest, cchDest, lpstrSrc);
#else
if(cchDest > (size_t)lstrlenA(lpstrSrc))
ATLVERIFY(lstrcpyA(lpstrDest, lpstrSrc) != NULL);
else
ATLASSERT(FALSE);
#endif
}
inline void strcpyW_x(wchar_t* lpstrDest, size_t cchDest, const wchar_t* lpstrSrc)
{
#if _SECURE_ATL
ATL::Checked::wcscpy_s(lpstrDest, cchDest, lpstrSrc);
#else
if(cchDest > (size_t)lstrlenW(lpstrSrc))
ATLVERIFY(lstrcpyW(lpstrDest, lpstrSrc) != NULL);
else
ATLASSERT(FALSE);
#endif
}
inline void strcpy_x(LPTSTR lpstrDest, size_t cchDest, LPCTSTR lpstrSrc)
{
#ifdef _UNICODE
strcpyW_x(lpstrDest, cchDest, lpstrSrc);
#else
strcpyA_x(lpstrDest, cchDest, lpstrSrc);
#endif
}
inline errno_t strncpyA_x(char* lpstrDest, size_t cchDest, const char* lpstrSrc, size_t cchCount)
{
#if _SECURE_ATL
return ATL::Checked::strncpy_s(lpstrDest, cchDest, lpstrSrc, cchCount);
#else
errno_t nRet = 0;
if(lpstrDest == NULL || cchDest == 0 || lpstrSrc == NULL)
{
nRet = EINVAL;
}
else if(cchCount == _TRUNCATE)
{
cchCount = __min(cchDest - 1, size_t(lstrlenA(lpstrSrc)));
nRet = STRUNCATE;
}
else if(cchDest <= cchCount)
{
lpstrDest[0] = 0;
nRet = EINVAL;
}
if(nRet == 0 || nRet == STRUNCATE)
nRet = (lstrcpynA(lpstrDest, lpstrSrc, (int)cchCount + 1) != NULL) ? nRet : EINVAL;
ATLASSERT(nRet == 0 || nRet == STRUNCATE);
return nRet;
#endif
}
inline errno_t strncpyW_x(wchar_t* lpstrDest, size_t cchDest, const wchar_t* lpstrSrc, size_t cchCount)
{
#if _SECURE_ATL
return ATL::Checked::wcsncpy_s(lpstrDest, cchDest, lpstrSrc, cchCount);
#else
errno_t nRet = 0;
if(lpstrDest == NULL || cchDest == 0 || lpstrSrc == NULL)
{
nRet = EINVAL;
}
else if(cchCount == _TRUNCATE)
{
cchCount = __min(cchDest - 1, size_t(lstrlenW(lpstrSrc)));
nRet = STRUNCATE;
}
else if(cchDest <= cchCount)
{
lpstrDest[0] = 0;
nRet = EINVAL;
}
if(nRet == 0 || nRet == STRUNCATE)
nRet = (lstrcpynW(lpstrDest, lpstrSrc, (int)cchCount + 1) != NULL) ? nRet : EINVAL;
ATLASSERT(nRet == 0 || nRet == STRUNCATE);
return nRet;
#endif
}
inline errno_t strncpy_x(LPTSTR lpstrDest, size_t cchDest, LPCTSTR lpstrSrc, size_t cchCount)
{
#ifdef _UNICODE
return strncpyW_x(lpstrDest, cchDest, lpstrSrc, cchCount);
#else
return strncpyA_x(lpstrDest, cchDest, lpstrSrc, cchCount);
#endif
}
inline void strcatA_x(char* lpstrDest, size_t cchDest, const char* lpstrSrc)
{
#if _SECURE_ATL
ATL::Checked::strcat_s(lpstrDest, cchDest, lpstrSrc);
#else
if(cchDest > (size_t)lstrlenA(lpstrSrc))
ATLVERIFY(lstrcatA(lpstrDest, lpstrSrc) != NULL);
else
ATLASSERT(FALSE);
#endif
}
inline void strcatW_x(wchar_t* lpstrDest, size_t cchDest, const wchar_t* lpstrSrc)
{
#if _SECURE_ATL
ATL::Checked::wcscat_s(lpstrDest, cchDest, lpstrSrc);
#else
if(cchDest > (size_t)lstrlenW(lpstrSrc))
ATLVERIFY(lstrcatW(lpstrDest, lpstrSrc) != NULL);
else
ATLASSERT(FALSE);
#endif
}
inline void strcat_x(LPTSTR lpstrDest, size_t cchDest, LPCTSTR lpstrSrc)
{
#ifdef _UNICODE
strcatW_x(lpstrDest, cchDest, lpstrSrc);
#else
strcatA_x(lpstrDest, cchDest, lpstrSrc);
#endif
}
inline void memcpy_x(void* pDest, size_t cbDest, const void* pSrc, size_t cbSrc)
{
#if _SECURE_ATL
ATL::Checked::memcpy_s(pDest, cbDest, pSrc, cbSrc);
#else
if(cbDest >= cbSrc)
memcpy(pDest, pSrc, cbSrc);
else
ATLASSERT(FALSE);
#endif
}
inline void memmove_x(void* pDest, size_t cbDest, const void* pSrc, size_t cbSrc)
{
#if _SECURE_ATL
ATL::Checked::memmove_s(pDest, cbDest, pSrc, cbSrc);
#else
if(cbDest >= cbSrc)
memmove(pDest, pSrc, cbSrc);
else
ATLASSERT(FALSE);
#endif
}
inline int vsprintf_x(LPTSTR lpstrBuff, size_t cchBuff, LPCTSTR lpstrFormat, va_list args)
{
#if _SECURE_ATL && !defined(_ATL_MIN_CRT) && !defined(_WIN32_WCE)
return _vstprintf_s(lpstrBuff, cchBuff, lpstrFormat, args);
#else
cchBuff; // Avoid unused argument warning
#pragma warning(push)
#pragma warning(disable: 4996)
return _vstprintf(lpstrBuff, lpstrFormat, args);
#pragma warning(pop)
#endif
}
inline int wvsprintf_x(LPTSTR lpstrBuff, size_t cchBuff, LPCTSTR lpstrFormat, va_list args)
{
#if _SECURE_ATL && !defined(_ATL_MIN_CRT) && !defined(_WIN32_WCE)
return _vstprintf_s(lpstrBuff, cchBuff, lpstrFormat, args);
#else
cchBuff; // Avoid unused argument warning
return ::wvsprintf(lpstrBuff, lpstrFormat, args);
#endif
}
inline int sprintf_x(LPTSTR lpstrBuff, size_t cchBuff, LPCTSTR lpstrFormat, ...)
{
va_list args;
va_start(args, lpstrFormat);
int nRes = vsprintf_x(lpstrBuff, cchBuff, lpstrFormat, args);
va_end(args);
return nRes;
}
inline int wsprintf_x(LPTSTR lpstrBuff, size_t cchBuff, LPCTSTR lpstrFormat, ...)
{
va_list args;
va_start(args, lpstrFormat);
int nRes = wvsprintf_x(lpstrBuff, cchBuff, lpstrFormat, args);
va_end(args);
return nRes;
}
}; // namespace SecureHelper
///////////////////////////////////////////////////////////////////////////////
// MinCrtHelper - helper functions for using _ATL_MIN_CRT
namespace MinCrtHelper
{
inline int _isspace(TCHAR ch)
{
#ifndef _ATL_MIN_CRT
return _istspace(ch);
#else // _ATL_MIN_CRT
WORD type = 0;
::GetStringTypeEx(::GetThreadLocale(), CT_CTYPE1, &ch, 1, &type);
return (type & C1_SPACE) == C1_SPACE;
#endif // _ATL_MIN_CRT
}
inline int _isdigit(TCHAR ch)
{
#ifndef _ATL_MIN_CRT
return _istdigit(ch);
#else // _ATL_MIN_CRT
WORD type = 0;
::GetStringTypeEx(::GetThreadLocale(), CT_CTYPE1, &ch, 1, &type);
return (type & C1_DIGIT) == C1_DIGIT;
#endif // _ATL_MIN_CRT
}
inline int _atoi(LPCTSTR str)
{
#ifndef _ATL_MIN_CRT
return _ttoi(str);
#else // _ATL_MIN_CRT
while(_isspace(*str) != 0)
++str;
TCHAR ch = *str++;
TCHAR sign = ch; // save sign indication
if(ch == _T('-') || ch == _T('+'))
ch = *str++; // skip sign
int total = 0;
while(_isdigit(ch) != 0)
{
total = 10 * total + (ch - '0'); // accumulate digit
ch = *str++; // get next char
}
return (sign == '-') ? -total : total; // return result, negated if necessary
#endif // _ATL_MIN_CRT
}
inline LPCTSTR _strrchr(LPCTSTR str, TCHAR ch)
{
#ifndef _ATL_MIN_CRT
return _tcsrchr(str, ch);
#else // _ATL_MIN_CRT
LPCTSTR lpsz = NULL;
while(*str != 0)
{
if(*str == ch)
lpsz = str;
str = ::CharNext(str);
}
return lpsz;
#endif // _ATL_MIN_CRT
}
inline LPTSTR _strrchr(LPTSTR str, TCHAR ch)
{
#ifndef _ATL_MIN_CRT
return _tcsrchr(str, ch);
#else // _ATL_MIN_CRT
LPTSTR lpsz = NULL;
while(*str != 0)
{
if(*str == ch)
lpsz = str;
str = ::CharNext(str);
}
return lpsz;
#endif // _ATL_MIN_CRT
}
}; // namespace MinCrtHelper
///////////////////////////////////////////////////////////////////////////////
// GenericWndClass - generic window class usable for subclassing
// Use in dialog templates to specify a placeholder to be subclassed
// Specify as a custom control with class name WTL_GenericWindow
// Call Rregister() before creating dialog (for example, in WinMain)
namespace GenericWndClass
{
inline LPCTSTR GetName()
{
return _T("WTL_GenericWindow");
}
inline ATOM Register()
{
#ifndef _WIN32_WCE
WNDCLASSEX wc = { sizeof(WNDCLASSEX) };
#else
WNDCLASS wc = { 0 };
#endif
wc.lpfnWndProc = ::DefWindowProc;
wc.hInstance = ModuleHelper::GetModuleInstance();
wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = GetName();
#ifndef _WIN32_WCE
ATOM atom = ::RegisterClassEx(&wc);
#else
ATOM atom = ::RegisterClass(&wc);
#endif
ATLASSERT(atom != 0);
return atom;
}
inline BOOL Unregister() // only needed for DLLs or tmp use
{
return ::UnregisterClass(GetName(), ModuleHelper::GetModuleInstance());
}
}; // namespace GenericWndClass
///////////////////////////////////////////////////////////////////////////////
// CMessageFilter - Interface for message filter support
class CMessageFilter
{
public:
virtual BOOL PreTranslateMessage(MSG* pMsg) = 0;
};
///////////////////////////////////////////////////////////////////////////////
// CIdleHandler - Interface for idle processing
class CIdleHandler
{
public:
virtual BOOL OnIdle() = 0;
};
#ifndef _ATL_NO_OLD_NAMES
// for compatilibility with old names only
typedef CIdleHandler CUpdateUIObject;
#define DoUpdate OnIdle
#endif // !_ATL_NO_OLD_NAMES
///////////////////////////////////////////////////////////////////////////////
// CMessageLoop - message loop implementation
class CMessageLoop
{
public:
ATL::CSimpleArray<CMessageFilter*> m_aMsgFilter;
ATL::CSimpleArray<CIdleHandler*> m_aIdleHandler;
MSG m_msg;
// Message filter operations
BOOL AddMessageFilter(CMessageFilter* pMessageFilter)
{
return m_aMsgFilter.Add(pMessageFilter);
}
BOOL RemoveMessageFilter(CMessageFilter* pMessageFilter)
{
return m_aMsgFilter.Remove(pMessageFilter);
}
// Idle handler operations
BOOL AddIdleHandler(CIdleHandler* pIdleHandler)
{
return m_aIdleHandler.Add(pIdleHandler);
}
BOOL RemoveIdleHandler(CIdleHandler* pIdleHandler)
{
return m_aIdleHandler.Remove(pIdleHandler);
}
#ifndef _ATL_NO_OLD_NAMES
// for compatilibility with old names only
BOOL AddUpdateUI(CIdleHandler* pIdleHandler)
{
ATLTRACE2(atlTraceUI, 0, _T("CUpdateUIObject and AddUpdateUI are deprecated. Please change your code to use CIdleHandler and OnIdle\n"));
return AddIdleHandler(pIdleHandler);
}
BOOL RemoveUpdateUI(CIdleHandler* pIdleHandler)
{
ATLTRACE2(atlTraceUI, 0, _T("CUpdateUIObject and RemoveUpdateUI are deprecated. Please change your code to use CIdleHandler and OnIdle\n"));
return RemoveIdleHandler(pIdleHandler);
}
#endif // !_ATL_NO_OLD_NAMES
// message loop
int Run()
{
BOOL bDoIdle = TRUE;
int nIdleCount = 0;
BOOL bRet;
for(;;)
{
while(bDoIdle && !::PeekMessage(&m_msg, NULL, 0, 0, PM_NOREMOVE))
{
if(!OnIdle(nIdleCount++))
bDoIdle = FALSE;
}
bRet = ::GetMessage(&m_msg, NULL, 0, 0);
if(bRet == -1)
{
ATLTRACE2(atlTraceUI, 0, _T("::GetMessage returned -1 (error)\n"));
continue; // error, don't process
}
else if(!bRet)
{
ATLTRACE2(atlTraceUI, 0, _T("CMessageLoop::Run - exiting\n"));
break; // WM_QUIT, exit message loop
}
if(!PreTranslateMessage(&m_msg))
{
::TranslateMessage(&m_msg);
::DispatchMessage(&m_msg);
}
if(IsIdleMessage(&m_msg))
{
bDoIdle = TRUE;
nIdleCount = 0;
}
}
return (int)m_msg.wParam;
}
static BOOL IsIdleMessage(MSG* pMsg)
{
// These messages should NOT cause idle processing
switch(pMsg->message)
{
case WM_MOUSEMOVE:
#ifndef _WIN32_WCE
case WM_NCMOUSEMOVE:
#endif // !_WIN32_WCE
case WM_PAINT:
case 0x0118: // WM_SYSTIMER (caret blink)
return FALSE;
}
return TRUE;
}
// Overrideables
// Override to change message filtering
virtual BOOL PreTranslateMessage(MSG* pMsg)
{
// loop backwards
for(int i = m_aMsgFilter.GetSize() - 1; i >= 0; i--)
{
CMessageFilter* pMessageFilter = m_aMsgFilter[i];
if(pMessageFilter != NULL && pMessageFilter->PreTranslateMessage(pMsg))
return TRUE;
}
return FALSE; // not translated
}
// override to change idle processing
virtual BOOL OnIdle(int /*nIdleCount*/)
{
for(int i = 0; i < m_aIdleHandler.GetSize(); i++)
{
CIdleHandler* pIdleHandler = m_aIdleHandler[i];
if(pIdleHandler != NULL)
pIdleHandler->OnIdle();
}
return FALSE; // don't continue
}
};
///////////////////////////////////////////////////////////////////////////////
// CStaticDataInitCriticalSectionLock and CWindowCreateCriticalSectionLock
// internal classes to manage critical sections for both ATL3 and ATL7
class CStaticDataInitCriticalSectionLock
{
public:
#if (_ATL_VER >= 0x0700)
ATL::CComCritSecLock<ATL::CComCriticalSection> m_cslock;
CStaticDataInitCriticalSectionLock() : m_cslock(ATL::_pAtlModule->m_csStaticDataInitAndTypeInfo, false)
{ }
#endif // (_ATL_VER >= 0x0700)
HRESULT Lock()
{
#if (_ATL_VER >= 0x0700)
return m_cslock.Lock();
#else // !(_ATL_VER >= 0x0700)
::EnterCriticalSection(&ATL::_pModule->m_csStaticDataInit);
return S_OK;
#endif // !(_ATL_VER >= 0x0700)
}
void Unlock()
{
#if (_ATL_VER >= 0x0700)
m_cslock.Unlock();
#else // !(_ATL_VER >= 0x0700)
::LeaveCriticalSection(&ATL::_pModule->m_csStaticDataInit);
#endif // !(_ATL_VER >= 0x0700)
}
};
class CWindowCreateCriticalSectionLock
{
public:
#if (_ATL_VER >= 0x0700)
ATL::CComCritSecLock<ATL::CComCriticalSection> m_cslock;
CWindowCreateCriticalSectionLock() : m_cslock(ATL::_AtlWinModule.m_csWindowCreate, false)
{ }
#endif // (_ATL_VER >= 0x0700)
HRESULT Lock()
{
#if (_ATL_VER >= 0x0700)
return m_cslock.Lock();
#else // !(_ATL_VER >= 0x0700)
::EnterCriticalSection(&ATL::_pModule->m_csWindowCreate);
return S_OK;
#endif // !(_ATL_VER >= 0x0700)
}
void Unlock()
{
#if (_ATL_VER >= 0x0700)
m_cslock.Unlock();
#else // !(_ATL_VER >= 0x0700)
::LeaveCriticalSection(&ATL::_pModule->m_csWindowCreate);
#endif // !(_ATL_VER >= 0x0700)
}
};
///////////////////////////////////////////////////////////////////////////////
// CTempBuffer - helper class for stack allocations for ATL3
#ifndef _WTL_STACK_ALLOC_THRESHOLD
#define _WTL_STACK_ALLOC_THRESHOLD 512
#endif
#if (_ATL_VER >= 0x0700)
using ATL::CTempBuffer;
#else // !(_ATL_VER >= 0x0700)
#ifndef SIZE_MAX
#ifdef _WIN64
#define SIZE_MAX _UI64_MAX
#else
#define SIZE_MAX UINT_MAX
#endif
#endif
#pragma warning(push)
#pragma warning(disable: 4284) // warning for operator ->
template<typename T, int t_nFixedBytes = 128>
class CTempBuffer
{
public:
CTempBuffer() : m_p(NULL)
{
}
CTempBuffer(size_t nElements) : m_p(NULL)
{
Allocate(nElements);
}
~CTempBuffer()
{
if(m_p != reinterpret_cast<T*>(m_abFixedBuffer))
free(m_p);
}
operator T*() const
{
return m_p;
}
T* operator ->() const
{
ATLASSERT(m_p != NULL);
return m_p;
}
T* Allocate(size_t nElements)
{
ATLASSERT(nElements <= (SIZE_MAX / sizeof(T)));
return AllocateBytes(nElements * sizeof(T));
}
T* AllocateBytes(size_t nBytes)
{
ATLASSERT(m_p == NULL);
if(nBytes > t_nFixedBytes)
m_p = static_cast<T*>(malloc(nBytes));
else
m_p = reinterpret_cast<T*>(m_abFixedBuffer);
return m_p;
}
private:
T* m_p;
BYTE m_abFixedBuffer[t_nFixedBytes];
};
#pragma warning(pop)
#endif // !(_ATL_VER >= 0x0700)
///////////////////////////////////////////////////////////////////////////////
// CAppModule - module class for an application
class CAppModule : public ATL::CComModule
{
public:
DWORD m_dwMainThreadID;
ATL::CSimpleMap<DWORD, CMessageLoop*>* m_pMsgLoopMap;
ATL::CSimpleArray<HWND>* m_pSettingChangeNotify;
// Overrides of CComModule::Init and Term
HRESULT Init(ATL::_ATL_OBJMAP_ENTRY* pObjMap, HINSTANCE hInstance, const GUID* pLibID = NULL)
{
HRESULT hRet = CComModule::Init(pObjMap, hInstance, pLibID);
if(FAILED(hRet))
return hRet;
m_dwMainThreadID = ::GetCurrentThreadId();
typedef ATL::CSimpleMap<DWORD, CMessageLoop*> _mapClass;
m_pMsgLoopMap = NULL;
ATLTRY(m_pMsgLoopMap = new _mapClass);
if(m_pMsgLoopMap == NULL)
return E_OUTOFMEMORY;
m_pSettingChangeNotify = NULL;
return hRet;
}
void Term()
{
TermSettingChangeNotify();
delete m_pMsgLoopMap;
CComModule::Term();
}
// Message loop map methods
BOOL AddMessageLoop(CMessageLoop* pMsgLoop)
{
CStaticDataInitCriticalSectionLock lock;
if(FAILED(lock.Lock()))
{
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CAppModule::AddMessageLoop.\n"));
ATLASSERT(FALSE);
return FALSE;
}
ATLASSERT(pMsgLoop != NULL);
ATLASSERT(m_pMsgLoopMap->Lookup(::GetCurrentThreadId()) == NULL); // not in map yet
BOOL bRet = m_pMsgLoopMap->Add(::GetCurrentThreadId(), pMsgLoop);
lock.Unlock();
return bRet;
}
BOOL RemoveMessageLoop()
{
CStaticDataInitCriticalSectionLock lock;
if(FAILED(lock.Lock()))
{
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CAppModule::RemoveMessageLoop.\n"));
ATLASSERT(FALSE);
return FALSE;
}
BOOL bRet = m_pMsgLoopMap->Remove(::GetCurrentThreadId());
lock.Unlock();
return bRet;
}
CMessageLoop* GetMessageLoop(DWORD dwThreadID = ::GetCurrentThreadId()) const
{
CStaticDataInitCriticalSectionLock lock;
if(FAILED(lock.Lock()))
{
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CAppModule::GetMessageLoop.\n"));
ATLASSERT(FALSE);
return NULL;
}
CMessageLoop* pLoop = m_pMsgLoopMap->Lookup(dwThreadID);
lock.Unlock();
return pLoop;
}
// Setting change notify methods
// Note: Call this from the main thread for MSDI apps
BOOL InitSettingChangeNotify(DLGPROC pfnDlgProc = _SettingChangeDlgProc)
{
CStaticDataInitCriticalSectionLock lock;
if(FAILED(lock.Lock()))
{
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CAppModule::InitSettingChangeNotify.\n"));
ATLASSERT(FALSE);
return FALSE;
}
if(m_pSettingChangeNotify == NULL)
{
typedef ATL::CSimpleArray<HWND> _notifyClass;
ATLTRY(m_pSettingChangeNotify = new _notifyClass);
ATLASSERT(m_pSettingChangeNotify != NULL);
}
BOOL bRet = (m_pSettingChangeNotify != NULL);
if(bRet && m_pSettingChangeNotify->GetSize() == 0)
{
// init everything
_ATL_EMPTY_DLGTEMPLATE templ;
HWND hNtfWnd = ::CreateDialogIndirect(GetModuleInstance(), &templ, NULL, pfnDlgProc);
ATLASSERT(::IsWindow(hNtfWnd));
if(::IsWindow(hNtfWnd))
{
// need conditional code because types don't match in winuser.h
#ifdef _WIN64
::SetWindowLongPtr(hNtfWnd, GWLP_USERDATA, (LONG_PTR)this);
#else
::SetWindowLongPtr(hNtfWnd, GWLP_USERDATA, PtrToLong(this));
#endif
bRet = m_pSettingChangeNotify->Add(hNtfWnd);
}
else
{
bRet = FALSE;
}
}
lock.Unlock();
return bRet;
}
void TermSettingChangeNotify()
{
CStaticDataInitCriticalSectionLock lock;
if(FAILED(lock.Lock()))
{
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CAppModule::TermSettingChangeNotify.\n"));
ATLASSERT(FALSE);
return;
}
if(m_pSettingChangeNotify != NULL && m_pSettingChangeNotify->GetSize() > 0)
::DestroyWindow((*m_pSettingChangeNotify)[0]);
delete m_pSettingChangeNotify;
m_pSettingChangeNotify = NULL;
lock.Unlock();
}
BOOL AddSettingChangeNotify(HWND hWnd)
{
CStaticDataInitCriticalSectionLock lock;
if(FAILED(lock.Lock()))
{
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CAppModule::AddSettingChangeNotify.\n"));
ATLASSERT(FALSE);
return FALSE;
}
ATLASSERT(::IsWindow(hWnd));
BOOL bRet = FALSE;
if(InitSettingChangeNotify() != FALSE)
bRet = m_pSettingChangeNotify->Add(hWnd);
lock.Unlock();
return bRet;
}
BOOL RemoveSettingChangeNotify(HWND hWnd)
{
CStaticDataInitCriticalSectionLock lock;
if(FAILED(lock.Lock()))
{
ATLTRACE2(atlTraceUI, 0, _T("ERROR : Unable to lock critical section in CAppModule::RemoveSettingChangeNotify.\n"));
ATLASSERT(FALSE);
return FALSE;
}
BOOL bRet = FALSE;
if(m_pSettingChangeNotify != NULL)
bRet = m_pSettingChangeNotify->Remove(hWnd);
lock.Unlock();
return bRet;
}
// Implementation - setting change notify dialog template and dialog procedure
struct _ATL_EMPTY_DLGTEMPLATE : DLGTEMPLATE
{
_ATL_EMPTY_DLGTEMPLATE()
{
memset(this, 0, sizeof(_ATL_EMPTY_DLGTEMPLATE));
style = WS_POPUP;
}
WORD wMenu, wClass, wTitle;
};
#ifdef _WIN64
static INT_PTR CALLBACK _SettingChangeDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
#else
static BOOL CALLBACK _SettingChangeDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
#endif
{
if(uMsg == WM_SETTINGCHANGE)
{
// need conditional code because types don't match in winuser.h
#ifdef _WIN64
CAppModule* pModule = (CAppModule*)::GetWindowLongPtr(hWnd, GWLP_USERDATA);
#else
CAppModule* pModule = (CAppModule*)LongToPtr(::GetWindowLongPtr(hWnd, GWLP_USERDATA));
#endif
ATLASSERT(pModule != NULL);
ATLASSERT(pModule->m_pSettingChangeNotify != NULL);
const UINT uTimeout = 1500; // ms
for(int i = 1; i < pModule->m_pSettingChangeNotify->GetSize(); i++)
{
#if !defined(_WIN32_WCE)
::SendMessageTimeout((*pModule->m_pSettingChangeNotify)[i], uMsg, wParam, lParam, SMTO_ABORTIFHUNG, uTimeout, NULL);
#elif(_WIN32_WCE >= 400) // CE specific
::SendMessageTimeout((*pModule->m_pSettingChangeNotify)[i], uMsg, wParam, lParam, SMTO_NORMAL, uTimeout, NULL);
#else // _WIN32_WCE < 400 specific
uTimeout;
::SendMessage((*pModule->m_pSettingChangeNotify)[i], uMsg, wParam, lParam);
#endif
}
return TRUE;
}
return FALSE;
}
};
///////////////////////////////////////////////////////////////////////////////
// CServerAppModule - module class for a COM server application
class CServerAppModule : public CAppModule
{
public:
HANDLE m_hEventShutdown;
bool m_bActivity;
DWORD m_dwTimeOut;
DWORD m_dwPause;
// Override of CAppModule::Init
HRESULT Init(ATL::_ATL_OBJMAP_ENTRY* pObjMap, HINSTANCE hInstance, const GUID* pLibID = NULL)
{
m_dwTimeOut = 5000;
m_dwPause = 1000;
return CAppModule::Init(pObjMap, hInstance, pLibID);
}
void Term()
{
if(m_hEventShutdown != NULL && ::CloseHandle(m_hEventShutdown))
m_hEventShutdown = NULL;
CAppModule::Term();
}
// COM Server methods
#if (_MSC_VER >= 1300)
LONG Unlock() throw()
#else
LONG Unlock()
#endif
{
LONG lRet = CComModule::Unlock();
if(lRet == 0)
{
m_bActivity = true;
::SetEvent(m_hEventShutdown); // tell monitor that we transitioned to zero
}
return lRet;
}
void MonitorShutdown()
{
for(;;)
{
::WaitForSingleObject(m_hEventShutdown, INFINITE);
DWORD dwWait = 0;
do
{
m_bActivity = false;
dwWait = ::WaitForSingleObject(m_hEventShutdown, m_dwTimeOut);
}
while(dwWait == WAIT_OBJECT_0);
// timed out
if(!m_bActivity && m_nLockCnt == 0) // if no activity let's really bail
{
#if ((_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM)) && defined(_ATL_FREE_THREADED) && !defined(_WIN32_WCE)
::CoSuspendClassObjects();
if(!m_bActivity && m_nLockCnt == 0)
#endif
break;
}
}
// This handle should be valid now. If it isn't,
// check if _Module.Term was called first (it shouldn't)
if(::CloseHandle(m_hEventShutdown))
m_hEventShutdown = NULL;
::PostThreadMessage(m_dwMainThreadID, WM_QUIT, 0, 0);
}
bool StartMonitor()
{
m_hEventShutdown = ::CreateEvent(NULL, false, false, NULL);
if(m_hEventShutdown == NULL)
return false;
DWORD dwThreadID = 0;
#if !defined(_ATL_MIN_CRT) && defined(_MT) && !defined(_WIN32_WCE)
HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, (UINT (WINAPI*)(void*))MonitorProc, this, 0, (UINT*)&dwThreadID);
#else
HANDLE hThread = ::CreateThread(NULL, 0, MonitorProc, this, 0, &dwThreadID);
#endif
bool bRet = (hThread != NULL);
if(bRet)
::CloseHandle(hThread);
return bRet;
}
static DWORD WINAPI MonitorProc(void* pv)
{
CServerAppModule* p = (CServerAppModule*)pv;
p->MonitorShutdown();
return 0;
}
#if (_ATL_VER < 0x0700)
// search for an occurence of string p2 in string p1
static LPCTSTR FindOneOf(LPCTSTR p1, LPCTSTR p2)
{
while(p1 != NULL && *p1 != NULL)
{
LPCTSTR p = p2;
while(p != NULL && *p != NULL)
{
if(*p1 == *p)
return ::CharNext(p1);
p = ::CharNext(p);
}
p1 = ::CharNext(p1);
}
return NULL;
}
#endif // (_ATL_VER < 0x0700)
};
///////////////////////////////////////////////////////////////////////////////
// CRegKeyEx - adds type-specific methods to ATL3 CRegKey
#if (_ATL_VER < 0x0700)
class CRegKeyEx : public ATL::CRegKey
{
public:
// Constructors and operators
CRegKeyEx(HKEY hKey = NULL)
{
m_hKey = hKey;
}
CRegKeyEx(CRegKeyEx& key)
{
Attach(key.Detach());
}
CRegKeyEx& operator =(CRegKeyEx& key)
{
Close();
Attach(key.Detach());
return *this;
}
// Methods
LONG SetValue(LPCTSTR pszValueName, DWORD dwType, const void* pValue, ULONG nBytes)
{
ATLASSERT(m_hKey != NULL);
return ::RegSetValueEx(m_hKey, pszValueName, NULL, dwType, static_cast<const BYTE*>(pValue), nBytes);
}
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue)
{
ATLASSERT(m_hKey != NULL);
OLECHAR szGUID[64] = { 0 };
::StringFromGUID2(guidValue, szGUID, 64);
USES_CONVERSION;
LPCTSTR lpstr = OLE2CT(szGUID);
#ifndef _UNICODE
if(lpstr == NULL)
return E_OUTOFMEMORY;
#endif
return SetStringValue(pszValueName, lpstr);
}
LONG SetBinaryValue(LPCTSTR pszValueName, const void* pValue, ULONG nBytes)
{
ATLASSERT(m_hKey != NULL);
return ::RegSetValueEx(m_hKey, pszValueName, NULL, REG_BINARY, reinterpret_cast<const BYTE*>(pValue), nBytes);
}
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue)
{
ATLASSERT(m_hKey != NULL);
return ::RegSetValueEx(m_hKey, pszValueName, NULL, REG_DWORD, reinterpret_cast<const BYTE*>(&dwValue), sizeof(DWORD));
}
#ifndef _WIN32_WCE
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue)
{
ATLASSERT(m_hKey != NULL);
return ::RegSetValueEx(m_hKey, pszValueName, NULL, REG_QWORD, reinterpret_cast<const BYTE*>(&qwValue), sizeof(ULONGLONG));
}
#endif
LONG SetStringValue(LPCTSTR pszValueName, LPCTSTR pszValue, DWORD dwType = REG_SZ)
{
ATLASSERT(m_hKey != NULL);
if(pszValue == NULL)
{
ATLASSERT(FALSE);
return ERROR_INVALID_DATA;
}
ATLASSERT((dwType == REG_SZ) || (dwType == REG_EXPAND_SZ));
return ::RegSetValueEx(m_hKey, pszValueName, NULL, dwType, reinterpret_cast<const BYTE*>(pszValue), (lstrlen(pszValue) + 1) * sizeof(TCHAR));
}
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue)
{
ATLASSERT(m_hKey != NULL);
if(pszValue == NULL)
{
ATLASSERT(FALSE);
return ERROR_INVALID_DATA;
}
ULONG nBytes = 0;
ULONG nLength = 0;
LPCTSTR pszTemp = pszValue;
do
{
nLength = lstrlen(pszTemp) + 1;
pszTemp += nLength;
nBytes += nLength * sizeof(TCHAR);
} while (nLength != 1);
return ::RegSetValueEx(m_hKey, pszValueName, NULL, REG_MULTI_SZ, reinterpret_cast<const BYTE*>(pszValue), nBytes);
}
LONG QueryValue(LPCTSTR pszValueName, DWORD* pdwType, void* pData, ULONG* pnBytes)
{
ATLASSERT(m_hKey != NULL);
return ::RegQueryValueEx(m_hKey, pszValueName, NULL, pdwType, static_cast<LPBYTE>(pData), pnBytes);
}
LONG QueryGUIDValue(LPCTSTR pszValueName, GUID& guidValue)
{
ATLASSERT(m_hKey != NULL);
guidValue = GUID_NULL;
TCHAR szGUID[64] = { 0 };
ULONG nCount = 64;
LONG lRes = QueryStringValue(pszValueName, szGUID, &nCount);
if (lRes != ERROR_SUCCESS)
return lRes;
if(szGUID[0] != _T('{'))
return ERROR_INVALID_DATA;
USES_CONVERSION;
LPOLESTR lpstr = T2OLE(szGUID);
#ifndef _UNICODE
if(lpstr == NULL)
return E_OUTOFMEMORY;
#endif
HRESULT hr = ::CLSIDFromString(lpstr, &guidValue);
if (FAILED(hr))
return ERROR_INVALID_DATA;
return ERROR_SUCCESS;
}
LONG QueryBinaryValue(LPCTSTR pszValueName, void* pValue, ULONG* pnBytes)
{
ATLASSERT(pnBytes != NULL);
ATLASSERT(m_hKey != NULL);
DWORD dwType = 0;
LONG lRes = ::RegQueryValueEx(m_hKey, pszValueName, NULL, &dwType, reinterpret_cast<LPBYTE>(pValue), pnBytes);
if (lRes != ERROR_SUCCESS)
return lRes;
if (dwType != REG_BINARY)
return ERROR_INVALID_DATA;
return ERROR_SUCCESS;
}
LONG QueryDWORDValue(LPCTSTR pszValueName, DWORD& dwValue)
{
ATLASSERT(m_hKey != NULL);
ULONG nBytes = sizeof(DWORD);
DWORD dwType = 0;
LONG lRes = ::RegQueryValueEx(m_hKey, pszValueName, NULL, &dwType, reinterpret_cast<LPBYTE>(&dwValue), &nBytes);
if (lRes != ERROR_SUCCESS)
return lRes;
if (dwType != REG_DWORD)
return ERROR_INVALID_DATA;
return ERROR_SUCCESS;
}
#ifndef _WIN32_WCE
LONG QueryQWORDValue(LPCTSTR pszValueName, ULONGLONG& qwValue)
{
ATLASSERT(m_hKey != NULL);
ULONG nBytes = sizeof(ULONGLONG);
DWORD dwType = 0;
LONG lRes = ::RegQueryValueEx(m_hKey, pszValueName, NULL, &dwType, reinterpret_cast<LPBYTE>(&qwValue), &nBytes);
if (lRes != ERROR_SUCCESS)
return lRes;
if (dwType != REG_QWORD)
return ERROR_INVALID_DATA;
return ERROR_SUCCESS;
}
#endif
LONG QueryStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG* pnChars)
{
ATLASSERT(m_hKey != NULL);
ATLASSERT(pnChars != NULL);
ULONG nBytes = (*pnChars) * sizeof(TCHAR);
DWORD dwType = 0;
*pnChars = 0;
LONG lRes = ::RegQueryValueEx(m_hKey, pszValueName, NULL, &dwType, reinterpret_cast<LPBYTE>(pszValue), &nBytes);
if (lRes != ERROR_SUCCESS)
{
return lRes;
}
if(dwType != REG_SZ && dwType != REG_EXPAND_SZ)
{
return ERROR_INVALID_DATA;
}
if (pszValue != NULL)
{
if(nBytes != 0)
{
if ((nBytes % sizeof(TCHAR) != 0) || (pszValue[nBytes / sizeof(TCHAR) -1] != 0))
return ERROR_INVALID_DATA;
}
else
{
pszValue[0] = _T('\0');
}
}
*pnChars = nBytes / sizeof(TCHAR);
return ERROR_SUCCESS;
}
LONG QueryMultiStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG* pnChars)
{
ATLASSERT(m_hKey != NULL);
ATLASSERT(pnChars != NULL);
if (pszValue != NULL && *pnChars < 2)
return ERROR_INSUFFICIENT_BUFFER;
ULONG nBytes = (*pnChars) * sizeof(TCHAR);
DWORD dwType = 0;
*pnChars = 0;
LONG lRes = ::RegQueryValueEx(m_hKey, pszValueName, NULL, &dwType, reinterpret_cast<LPBYTE>(pszValue), &nBytes);
if (lRes != ERROR_SUCCESS)
return lRes;
if (dwType != REG_MULTI_SZ)
return ERROR_INVALID_DATA;
if (pszValue != NULL && (nBytes % sizeof(TCHAR) != 0 || nBytes / sizeof(TCHAR) < 1 || pszValue[nBytes / sizeof(TCHAR) - 1] != 0 || ((nBytes / sizeof(TCHAR)) > 1 && pszValue[nBytes / sizeof(TCHAR) - 2] != 0)))
return ERROR_INVALID_DATA;
*pnChars = nBytes / sizeof(TCHAR);
return ERROR_SUCCESS;
}
};
#else // !(_ATL_VER < 0x0700)
typedef ATL::CRegKey CRegKeyEx;
#endif // !(_ATL_VER < 0x0700)
///////////////////////////////////////////////////////////////////////////////
// CString forward reference (enables CString use in atluser.h and atlgdi.h)
#if defined(_WTL_FORWARD_DECLARE_CSTRING) && !defined(_WTL_USE_CSTRING)
#define _WTL_USE_CSTRING
#endif // defined(_WTL_FORWARD_DECLARE_CSTRING) && !defined(_WTL_USE_CSTRING)
#ifdef _WTL_USE_CSTRING
class CString; // forward declaration (include atlmisc.h for the whole class)
#endif // _WTL_USE_CSTRING
// CString namespace
#ifndef _CSTRING_NS
#ifdef __ATLSTR_H__
#define _CSTRING_NS ATL
#else
#define _CSTRING_NS WTL
#endif
#endif // _CSTRING_NS
// Type classes namespace
#ifndef _WTYPES_NS
#ifdef __ATLTYPES_H__
#define _WTYPES_NS
#else
#define _WTYPES_NS WTL
#endif
#endif // _WTYPES_NS
}; // namespace WTL
///////////////////////////////////////////////////////////////////////////////
// General DLL version helpers
// (ATL3: excluded from atlbase.h if _ATL_DLL is defined; ATL11: removed)
#if (((_ATL_VER < 0x0700) && defined(_ATL_DLL)) || (_ATL_VER >= 0x0B00)) && !defined(_WIN32_WCE)
namespace ATL
{
inline HRESULT AtlGetDllVersion(HINSTANCE hInstDLL, DLLVERSIONINFO* pDllVersionInfo)
{
ATLASSERT(pDllVersionInfo != NULL);
if(pDllVersionInfo == NULL)
return E_INVALIDARG;
// We must get this function explicitly because some DLLs don't implement it.
DLLGETVERSIONPROC pfnDllGetVersion = (DLLGETVERSIONPROC)::GetProcAddress(hInstDLL, "DllGetVersion");
if(pfnDllGetVersion == NULL)
return E_NOTIMPL;
return (*pfnDllGetVersion)(pDllVersionInfo);
}
inline HRESULT AtlGetDllVersion(LPCTSTR lpstrDllName, DLLVERSIONINFO* pDllVersionInfo)
{
HINSTANCE hInstDLL = ::LoadLibrary(lpstrDllName);
if(hInstDLL == NULL)
return E_FAIL;
HRESULT hRet = AtlGetDllVersion(hInstDLL, pDllVersionInfo);
::FreeLibrary(hInstDLL);
return hRet;
}
// Common Control Versions:
// Win95/WinNT 4.0 maj=4 min=00
// IE 3.x maj=4 min=70
// IE 4.0 maj=4 min=71
inline HRESULT AtlGetCommCtrlVersion(LPDWORD pdwMajor, LPDWORD pdwMinor)
{
ATLASSERT(pdwMajor != NULL && pdwMinor != NULL);
if(pdwMajor == NULL || pdwMinor == NULL)
return E_INVALIDARG;
DLLVERSIONINFO dvi;
::ZeroMemory(&dvi, sizeof(dvi));
dvi.cbSize = sizeof(dvi);
HRESULT hRet = AtlGetDllVersion(_T("comctl32.dll"), &dvi);
if(SUCCEEDED(hRet))
{
*pdwMajor = dvi.dwMajorVersion;
*pdwMinor = dvi.dwMinorVersion;
}
else if(hRet == E_NOTIMPL)
{
// If DllGetVersion is not there, then the DLL is a version
// previous to the one shipped with IE 3.x
*pdwMajor = 4;
*pdwMinor = 0;
hRet = S_OK;
}
return hRet;
}
// Shell Versions:
// Win95/WinNT 4.0 maj=4 min=00
// IE 3.x, IE 4.0 without Web Integrated Desktop maj=4 min=00
// IE 4.0 with Web Integrated Desktop maj=4 min=71
// IE 4.01 with Web Integrated Desktop maj=4 min=72
inline HRESULT AtlGetShellVersion(LPDWORD pdwMajor, LPDWORD pdwMinor)
{
ATLASSERT(pdwMajor != NULL && pdwMinor != NULL);
if(pdwMajor == NULL || pdwMinor == NULL)
return E_INVALIDARG;
DLLVERSIONINFO dvi;
::ZeroMemory(&dvi, sizeof(dvi));
dvi.cbSize = sizeof(dvi);
HRESULT hRet = AtlGetDllVersion(_T("shell32.dll"), &dvi);
if(SUCCEEDED(hRet))
{
*pdwMajor = dvi.dwMajorVersion;
*pdwMinor = dvi.dwMinorVersion;
}
else if(hRet == E_NOTIMPL)
{
// If DllGetVersion is not there, then the DLL is a version
// previous to the one shipped with IE 4.x
*pdwMajor = 4;
*pdwMinor = 0;
hRet = S_OK;
}
return hRet;
}
}; // namespace ATL
#endif // (_ATL_VER < 0x0700) && defined(_ATL_DLL) && !defined(_WIN32_WCE)
// These are always included
#include "atlwinx.h"
#include "atluser.h"
#include "atlgdi.h"
#ifndef _WTL_NO_AUTOMATIC_NAMESPACE
using namespace WTL;
#endif // !_WTL_NO_AUTOMATIC_NAMESPACE
#endif // __ATLAPP_H__
================================================
FILE: WTL/atlcrack.h
================================================
// Windows Template Library - WTL version 9.10
// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.
//
// This file is a part of the Windows Template Library.
// The use and distribution terms for this software are covered by the
// Microsoft Public License (http://opensource.org/licenses/MS-PL)
// which can be found in the file MS-PL.txt at the root folder.
#ifndef __ATLCRACK_H__
#define __ATLCRACK_H__
#pragma once
#ifndef __ATLAPP_H__
#error atlcrack.h requires atlapp.h to be included first
#endif
///////////////////////////////////////////////////////////////////////////////
// Message map macro for cracked handlers
// Note about message maps with cracked handlers:
// For ATL 3.0, a message map using cracked handlers MUST use BEGIN_MSG_MAP_EX.
// For ATL 7.0 or higher, you can use BEGIN_MSG_MAP for CWindowImpl/CDialogImpl derived classes,
// but must use BEGIN_MSG_MAP_EX for classes that don't derive from CWindowImpl/CDialogImpl.
#define BEGIN_MSG_MAP_EX(theClass) \
public: \
BOOL m_bMsgHandled; \
/* "handled" management for cracked handlers */ \
BOOL IsMsgHandled() const \
{ \
return m_bMsgHandled; \
} \
void SetMsgHandled(BOOL bHandled) \
{ \
m_bMsgHandled = bHandled; \
} \
BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& lResult, DWORD dwMsgMapID = 0) \
{ \
BOOL bOldMsgHandled = m_bMsgHandled; \
BOOL bRet = _ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lResult, dwMsgMapID); \
m_bMsgHandled = bOldMsgHandled; \
return bRet; \
} \
BOOL _ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& lResult, DWORD dwMsgMapID) \
{ \
BOOL bHandled = TRUE; \
(hWnd); \
(uMsg); \
(wParam); \
(lParam); \
(lResult); \
(bHandled); \
switch(dwMsgMapID) \
{ \
case 0:
///////////////////////////////////////////////////////////////////////////////
// Standard Windows message macros
// int OnCreate(LPCREATESTRUCT lpCreateStruct)
#define MSG_WM_CREATE(func) \
if (uMsg == WM_CREATE) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((LPCREATESTRUCT)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam)
#define MSG_WM_INITDIALOG(func) \
if (uMsg == WM_INITDIALOG) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HWND)wParam, lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnCopyData(CWindow wnd, PCOPYDATASTRUCT pCopyDataStruct)
#define MSG_WM_COPYDATA(func) \
if (uMsg == WM_COPYDATA) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HWND)wParam, (PCOPYDATASTRUCT)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDestroy()
#define MSG_WM_DESTROY(func) \
if (uMsg == WM_DESTROY) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMove(CPoint ptPos)
#define MSG_WM_MOVE(func) \
if (uMsg == WM_MOVE) \
{ \
SetMsgHandled(TRUE); \
func(_WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSize(UINT nType, CSize size)
#define MSG_WM_SIZE(func) \
if (uMsg == WM_SIZE) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CSize(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnActivate(UINT nState, BOOL bMinimized, CWindow wndOther)
#define MSG_WM_ACTIVATE(func) \
if (uMsg == WM_ACTIVATE) \
{ \
SetMsgHandled(TRUE); \
func((UINT)LOWORD(wParam), (BOOL)HIWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSetFocus(CWindow wndOld)
#define MSG_WM_SETFOCUS(func) \
if (uMsg == WM_SETFOCUS) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnKillFocus(CWindow wndFocus)
#define MSG_WM_KILLFOCUS(func) \
if (uMsg == WM_KILLFOCUS) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnEnable(BOOL bEnable)
#define MSG_WM_ENABLE(func) \
if (uMsg == WM_ENABLE) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnPaint(CDCHandle dc)
#define MSG_WM_PAINT(func) \
if (uMsg == WM_PAINT) \
{ \
SetMsgHandled(TRUE); \
func((HDC)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnClose()
#define MSG_WM_CLOSE(func) \
if (uMsg == WM_CLOSE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnQueryEndSession(UINT nSource, UINT uLogOff)
#define MSG_WM_QUERYENDSESSION(func) \
if (uMsg == WM_QUERYENDSESSION) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)wParam, (UINT)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnQueryOpen()
#define MSG_WM_QUERYOPEN(func) \
if (uMsg == WM_QUERYOPEN) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func(); \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnEraseBkgnd(CDCHandle dc)
#define MSG_WM_ERASEBKGND(func) \
if (uMsg == WM_ERASEBKGND) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSysColorChange()
#define MSG_WM_SYSCOLORCHANGE(func) \
if (uMsg == WM_SYSCOLORCHANGE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnEndSession(BOOL bEnding, UINT uLogOff)
#define MSG_WM_ENDSESSION(func) \
if (uMsg == WM_ENDSESSION) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam, (UINT)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnShowWindow(BOOL bShow, UINT nStatus)
#define MSG_WM_SHOWWINDOW(func) \
if (uMsg == WM_SHOWWINDOW) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam, (int)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnCtlColorEdit(CDCHandle dc, CEdit edit)
#define MSG_WM_CTLCOLOREDIT(func) \
if (uMsg == WM_CTLCOLOREDIT) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnCtlColorListBox(CDCHandle dc, CListBox listBox)
#define MSG_WM_CTLCOLORLISTBOX(func) \
if (uMsg == WM_CTLCOLORLISTBOX) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnCtlColorBtn(CDCHandle dc, CButton button)
#define MSG_WM_CTLCOLORBTN(func) \
if (uMsg == WM_CTLCOLORBTN) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnCtlColorDlg(CDCHandle dc, CWindow wnd)
#define MSG_WM_CTLCOLORDLG(func) \
if (uMsg == WM_CTLCOLORDLG) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnCtlColorScrollBar(CDCHandle dc, CScrollBar scrollBar)
#define MSG_WM_CTLCOLORSCROLLBAR(func) \
if (uMsg == WM_CTLCOLORSCROLLBAR) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic)
#define MSG_WM_CTLCOLORSTATIC(func) \
if (uMsg == WM_CTLCOLORSTATIC) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
#define MSG_WM_SETTINGCHANGE(func) \
if (uMsg == WM_SETTINGCHANGE) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPCTSTR)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDevModeChange(LPCTSTR lpDeviceName)
#define MSG_WM_DEVMODECHANGE(func) \
if (uMsg == WM_DEVMODECHANGE) \
{ \
SetMsgHandled(TRUE); \
func((LPCTSTR)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnActivateApp(BOOL bActive, DWORD dwThreadID)
#define MSG_WM_ACTIVATEAPP(func) \
if (uMsg == WM_ACTIVATEAPP) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam, (DWORD)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnFontChange()
#define MSG_WM_FONTCHANGE(func) \
if (uMsg == WM_FONTCHANGE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnTimeChange()
#define MSG_WM_TIMECHANGE(func) \
if (uMsg == WM_TIMECHANGE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCancelMode()
#define MSG_WM_CANCELMODE(func) \
if (uMsg == WM_CANCELMODE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnSetCursor(CWindow wnd, UINT nHitTest, UINT message)
#define MSG_WM_SETCURSOR(func) \
if (uMsg == WM_SETCURSOR) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnMouseActivate(CWindow wndTopLevel, UINT nHitTest, UINT message)
#define MSG_WM_MOUSEACTIVATE(func) \
if (uMsg == WM_MOUSEACTIVATE) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnChildActivate()
#define MSG_WM_CHILDACTIVATE(func) \
if (uMsg == WM_CHILDACTIVATE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnGetMinMaxInfo(LPMINMAXINFO lpMMI)
#define MSG_WM_GETMINMAXINFO(func) \
if (uMsg == WM_GETMINMAXINFO) \
{ \
SetMsgHandled(TRUE); \
func((LPMINMAXINFO)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnIconEraseBkgnd(CDCHandle dc)
#define MSG_WM_ICONERASEBKGND(func) \
if (uMsg == WM_ICONERASEBKGND) \
{ \
SetMsgHandled(TRUE); \
func((HDC)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSpoolerStatus(UINT nStatus, UINT nJobs)
#define MSG_WM_SPOOLERSTATUS(func) \
if (uMsg == WM_SPOOLERSTATUS) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (UINT)LOWORD(lParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
#define MSG_WM_DRAWITEM(func) \
if (uMsg == WM_DRAWITEM) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPDRAWITEMSTRUCT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
#define MSG_WM_MEASUREITEM(func) \
if (uMsg == WM_MEASUREITEM) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPMEASUREITEMSTRUCT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDeleteItem(int nIDCtl, LPDELETEITEMSTRUCT lpDeleteItemStruct)
#define MSG_WM_DELETEITEM(func) \
if (uMsg == WM_DELETEITEM) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPDELETEITEMSTRUCT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
//int OnCharToItem(UINT nChar, UINT nIndex, CListBox listBox)
#define MSG_WM_CHARTOITEM(func) \
if (uMsg == WM_CHARTOITEM) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnVKeyToItem(UINT nKey, UINT nIndex, CListBox listBox)
#define MSG_WM_VKEYTOITEM(func) \
if (uMsg == WM_VKEYTOITEM) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HCURSOR OnQueryDragIcon()
#define MSG_WM_QUERYDRAGICON(func) \
if (uMsg == WM_QUERYDRAGICON) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func(); \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnCompareItem(int nIDCtl, LPCOMPAREITEMSTRUCT lpCompareItemStruct)
#define MSG_WM_COMPAREITEM(func) \
if (uMsg == WM_COMPAREITEM) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)wParam, (LPCOMPAREITEMSTRUCT)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCompacting(UINT nCpuTime)
#define MSG_WM_COMPACTING(func) \
if (uMsg == WM_COMPACTING) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct)
#define MSG_WM_NCCREATE(func) \
if (uMsg == WM_NCCREATE) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((LPCREATESTRUCT)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcDestroy()
#define MSG_WM_NCDESTROY(func) \
if (uMsg == WM_NCDESTROY) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnNcCalcSize(BOOL bCalcValidRects, LPARAM lParam)
#define MSG_WM_NCCALCSIZE(func) \
if (uMsg == WM_NCCALCSIZE) \
{ \
SetMsgHandled(TRUE); \
lResult = func((BOOL)wParam, lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// UINT OnNcHitTest(CPoint point)
#define MSG_WM_NCHITTEST(func) \
if (uMsg == WM_NCHITTEST) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func(_WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcPaint(CRgnHandle rgn)
#define MSG_WM_NCPAINT(func) \
if (uMsg == WM_NCPAINT) \
{ \
SetMsgHandled(TRUE); \
func((HRGN)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnNcActivate(BOOL bActive)
#define MSG_WM_NCACTIVATE(func) \
if (uMsg == WM_NCACTIVATE) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((BOOL)wParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// UINT OnGetDlgCode(LPMSG lpMsg)
#define MSG_WM_GETDLGCODE(func) \
if (uMsg == WM_GETDLGCODE) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((LPMSG)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcMouseMove(UINT nHitTest, CPoint point)
#define MSG_WM_NCMOUSEMOVE(func) \
if (uMsg == WM_NCMOUSEMOVE) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcLButtonDown(UINT nHitTest, CPoint point)
#define MSG_WM_NCLBUTTONDOWN(func) \
if (uMsg == WM_NCLBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcLButtonUp(UINT nHitTest, CPoint point)
#define MSG_WM_NCLBUTTONUP(func) \
if (uMsg == WM_NCLBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcLButtonDblClk(UINT nHitTest, CPoint point)
#define MSG_WM_NCLBUTTONDBLCLK(func) \
if (uMsg == WM_NCLBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcRButtonDown(UINT nHitTest, CPoint point)
#define MSG_WM_NCRBUTTONDOWN(func) \
if (uMsg == WM_NCRBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcRButtonUp(UINT nHitTest, CPoint point)
#define MSG_WM_NCRBUTTONUP(func) \
if (uMsg == WM_NCRBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcRButtonDblClk(UINT nHitTest, CPoint point)
#define MSG_WM_NCRBUTTONDBLCLK(func) \
if (uMsg == WM_NCRBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcMButtonDown(UINT nHitTest, CPoint point)
#define MSG_WM_NCMBUTTONDOWN(func) \
if (uMsg == WM_NCMBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcMButtonUp(UINT nHitTest, CPoint point)
#define MSG_WM_NCMBUTTONUP(func) \
if (uMsg == WM_NCMBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNcMButtonDblClk(UINT nHitTest, CPoint point)
#define MSG_WM_NCMBUTTONDBLCLK(func) \
if (uMsg == WM_NCMBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_KEYDOWN(func) \
if (uMsg == WM_KEYDOWN) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_KEYUP(func) \
if (uMsg == WM_KEYUP) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_CHAR(func) \
if (uMsg == WM_CHAR) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_DEADCHAR(func) \
if (uMsg == WM_DEADCHAR) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_SYSKEYDOWN(func) \
if (uMsg == WM_SYSKEYDOWN) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_SYSKEYUP(func) \
if (uMsg == WM_SYSKEYUP) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSysChar(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_SYSCHAR(func) \
if (uMsg == WM_SYSCHAR) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSysDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_SYSDEADCHAR(func) \
if (uMsg == WM_SYSDEADCHAR) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSysCommand(UINT nID, CPoint point)
#define MSG_WM_SYSCOMMAND(func) \
if (uMsg == WM_SYSCOMMAND) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnTCard(UINT idAction, DWORD dwActionData)
#define MSG_WM_TCARD(func) \
if (uMsg == WM_TCARD) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (DWORD)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnTimer(UINT_PTR nIDEvent)
#define MSG_WM_TIMER(func) \
if (uMsg == WM_TIMER) \
{ \
SetMsgHandled(TRUE); \
func((UINT_PTR)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
#define MSG_WM_HSCROLL(func) \
if (uMsg == WM_HSCROLL) \
{ \
SetMsgHandled(TRUE); \
func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
#define MSG_WM_VSCROLL(func) \
if (uMsg == WM_VSCROLL) \
{ \
SetMsgHandled(TRUE); \
func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnInitMenu(CMenuHandle menu)
#define MSG_WM_INITMENU(func) \
if (uMsg == WM_INITMENU) \
{ \
SetMsgHandled(TRUE); \
func((HMENU)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnInitMenuPopup(CMenuHandle menuPopup, UINT nIndex, BOOL bSysMenu)
#define MSG_WM_INITMENUPOPUP(func) \
if (uMsg == WM_INITMENUPOPUP) \
{ \
SetMsgHandled(TRUE); \
func((HMENU)wParam, (UINT)LOWORD(lParam), (BOOL)HIWORD(lParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMenuSelect(UINT nItemID, UINT nFlags, CMenuHandle menu)
#define MSG_WM_MENUSELECT(func) \
if (uMsg == WM_MENUSELECT) \
{ \
SetMsgHandled(TRUE); \
func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HMENU)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenuHandle menu)
#define MSG_WM_MENUCHAR(func) \
if (uMsg == WM_MENUCHAR) \
{ \
SetMsgHandled(TRUE); \
lResult = func((TCHAR)LOWORD(wParam), (UINT)HIWORD(wParam), (HMENU)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnNotify(int idCtrl, LPNMHDR pnmh)
#define MSG_WM_NOTIFY(func) \
if (uMsg == WM_NOTIFY) \
{ \
SetMsgHandled(TRUE); \
lResult = func((int)wParam, (LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnEnterIdle(UINT nWhy, CWindow wndWho)
#define MSG_WM_ENTERIDLE(func) \
if (uMsg == WM_ENTERIDLE) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMouseMove(UINT nFlags, CPoint point)
#define MSG_WM_MOUSEMOVE(func) \
if (uMsg == WM_MOUSEMOVE) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
#define MSG_WM_MOUSEWHEEL(func) \
if (uMsg == WM_MOUSEWHEEL) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)LOWORD(wParam), (short)HIWORD(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnLButtonDown(UINT nFlags, CPoint point)
#define MSG_WM_LBUTTONDOWN(func) \
if (uMsg == WM_LBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnLButtonUp(UINT nFlags, CPoint point)
#define MSG_WM_LBUTTONUP(func) \
if (uMsg == WM_LBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnLButtonDblClk(UINT nFlags, CPoint point)
#define MSG_WM_LBUTTONDBLCLK(func) \
if (uMsg == WM_LBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnRButtonDown(UINT nFlags, CPoint point)
#define MSG_WM_RBUTTONDOWN(func) \
if (uMsg == WM_RBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnRButtonUp(UINT nFlags, CPoint point)
#define MSG_WM_RBUTTONUP(func) \
if (uMsg == WM_RBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnRButtonDblClk(UINT nFlags, CPoint point)
#define MSG_WM_RBUTTONDBLCLK(func) \
if (uMsg == WM_RBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMButtonDown(UINT nFlags, CPoint point)
#define MSG_WM_MBUTTONDOWN(func) \
if (uMsg == WM_MBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMButtonUp(UINT nFlags, CPoint point)
#define MSG_WM_MBUTTONUP(func) \
if (uMsg == WM_MBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMButtonDblClk(UINT nFlags, CPoint point)
#define MSG_WM_MBUTTONDBLCLK(func) \
if (uMsg == WM_MBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnParentNotify(UINT message, UINT nChildID, LPARAM lParam)
#define MSG_WM_PARENTNOTIFY(func) \
if (uMsg == WM_PARENTNOTIFY) \
{ \
SetMsgHandled(TRUE); \
func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMDIActivate(CWindow wndActivate, CWindow wndDeactivate)
#define MSG_WM_MDIACTIVATE(func) \
if (uMsg == WM_MDIACTIVATE) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam, (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnRenderFormat(UINT nFormat)
#define MSG_WM_RENDERFORMAT(func) \
if (uMsg == WM_RENDERFORMAT) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnRenderAllFormats()
#define MSG_WM_RENDERALLFORMATS(func) \
if (uMsg == WM_RENDERALLFORMATS) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDestroyClipboard()
#define MSG_WM_DESTROYCLIPBOARD(func) \
if (uMsg == WM_DESTROYCLIPBOARD) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDrawClipboard()
#define MSG_WM_DRAWCLIPBOARD(func) \
if (uMsg == WM_DRAWCLIPBOARD) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnPaintClipboard(CWindow wndViewer, const LPPAINTSTRUCT lpPaintStruct)
#define MSG_WM_PAINTCLIPBOARD(func) \
if (uMsg == WM_PAINTCLIPBOARD) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam, (const LPPAINTSTRUCT)::GlobalLock((HGLOBAL)lParam)); \
::GlobalUnlock((HGLOBAL)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnVScrollClipboard(CWindow wndViewer, UINT nSBCode, UINT nPos)
#define MSG_WM_VSCROLLCLIPBOARD(func) \
if (uMsg == WM_VSCROLLCLIPBOARD) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnContextMenu(CWindow wnd, CPoint point)
#define MSG_WM_CONTEXTMENU(func) \
if (uMsg == WM_CONTEXTMENU) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSizeClipboard(CWindow wndViewer, const LPRECT lpRect)
#define MSG_WM_SIZECLIPBOARD(func) \
if (uMsg == WM_SIZECLIPBOARD) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam, (const LPRECT)::GlobalLock((HGLOBAL)lParam)); \
::GlobalUnlock((HGLOBAL)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnAskCbFormatName(UINT nMaxCount, LPTSTR lpszString)
#define MSG_WM_ASKCBFORMATNAME(func) \
if (uMsg == WM_ASKCBFORMATNAME) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPTSTR)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnChangeCbChain(CWindow wndRemove, CWindow wndAfter)
#define MSG_WM_CHANGECBCHAIN(func) \
if (uMsg == WM_CHANGECBCHAIN) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam, (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnHScrollClipboard(CWindow wndViewer, UINT nSBCode, UINT nPos)
#define MSG_WM_HSCROLLCLIPBOARD(func) \
if (uMsg == WM_HSCROLLCLIPBOARD) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnQueryNewPalette()
#define MSG_WM_QUERYNEWPALETTE(func) \
if (uMsg == WM_QUERYNEWPALETTE) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func(); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnPaletteChanged(CWindow wndFocus)
#define MSG_WM_PALETTECHANGED(func) \
if (uMsg == WM_PALETTECHANGED) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnPaletteIsChanging(CWindow wndPalChg)
#define MSG_WM_PALETTEISCHANGING(func) \
if (uMsg == WM_PALETTEISCHANGING) \
{ \
SetMsgHandled(TRUE); \
func((HWND)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDropFiles(HDROP hDropInfo)
#define MSG_WM_DROPFILES(func) \
if (uMsg == WM_DROPFILES) \
{ \
SetMsgHandled(TRUE); \
func((HDROP)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnWindowPosChanging(LPWINDOWPOS lpWndPos)
#define MSG_WM_WINDOWPOSCHANGING(func) \
if (uMsg == WM_WINDOWPOSCHANGING) \
{ \
SetMsgHandled(TRUE); \
func((LPWINDOWPOS)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnWindowPosChanged(LPWINDOWPOS lpWndPos)
#define MSG_WM_WINDOWPOSCHANGED(func) \
if (uMsg == WM_WINDOWPOSCHANGED) \
{ \
SetMsgHandled(TRUE); \
func((LPWINDOWPOS)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnExitMenuLoop(BOOL fIsTrackPopupMenu)
#define MSG_WM_EXITMENULOOP(func) \
if (uMsg == WM_EXITMENULOOP) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnEnterMenuLoop(BOOL fIsTrackPopupMenu)
#define MSG_WM_ENTERMENULOOP(func) \
if (uMsg == WM_ENTERMENULOOP) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct)
#define MSG_WM_STYLECHANGED(func) \
if (uMsg == WM_STYLECHANGED) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPSTYLESTRUCT)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnStyleChanging(int nStyleType, LPSTYLESTRUCT lpStyleStruct)
#define MSG_WM_STYLECHANGING(func) \
if (uMsg == WM_STYLECHANGING) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPSTYLESTRUCT)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSizing(UINT fwSide, LPRECT pRect)
#define MSG_WM_SIZING(func) \
if (uMsg == WM_SIZING) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPRECT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMoving(UINT fwSide, LPRECT pRect)
#define MSG_WM_MOVING(func) \
if (uMsg == WM_MOVING) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPRECT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCaptureChanged(CWindow wnd)
#define MSG_WM_CAPTURECHANGED(func) \
if (uMsg == WM_CAPTURECHANGED) \
{ \
SetMsgHandled(TRUE); \
func((HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnDeviceChange(UINT nEventType, DWORD_PTR dwData)
#define MSG_WM_DEVICECHANGE(func) \
if (uMsg == WM_DEVICECHANGE) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)wParam, (DWORD_PTR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCommand(UINT uNotifyCode, int nID, CWindow wndCtl)
#define MSG_WM_COMMAND(func) \
if (uMsg == WM_COMMAND) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDisplayChange(UINT uBitsPerPixel, CSize sizeScreen)
#define MSG_WM_DISPLAYCHANGE(func) \
if (uMsg == WM_DISPLAYCHANGE) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, _WTYPES_NS::CSize(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnEnterSizeMove()
#define MSG_WM_ENTERSIZEMOVE(func) \
if (uMsg == WM_ENTERSIZEMOVE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnExitSizeMove()
#define MSG_WM_EXITSIZEMOVE(func) \
if (uMsg == WM_EXITSIZEMOVE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// HFONT OnGetFont()
#define MSG_WM_GETFONT(func) \
if (uMsg == WM_GETFONT) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func(); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnGetHotKey()
#define MSG_WM_GETHOTKEY(func) \
if (uMsg == WM_GETHOTKEY) \
{ \
SetMsgHandled(TRUE); \
lResult = func(); \
if(IsMsgHandled()) \
return TRUE; \
}
// HICON OnGetIcon()
#define MSG_WM_GETICON(func) \
if (uMsg == WM_GETICON) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)wParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnGetText(int cchTextMax, LPTSTR lpszText)
#define MSG_WM_GETTEXT(func) \
if (uMsg == WM_GETTEXT) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((int)wParam, (LPTSTR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnGetTextLength()
#define MSG_WM_GETTEXTLENGTH(func) \
if (uMsg == WM_GETTEXTLENGTH) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func(); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnHelp(LPHELPINFO lpHelpInfo)
#define MSG_WM_HELP(func) \
if (uMsg == WM_HELP) \
{ \
SetMsgHandled(TRUE); \
func((LPHELPINFO)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnHotKey(int nHotKeyID, UINT uModifiers, UINT uVirtKey)
#define MSG_WM_HOTKEY(func) \
if (uMsg == WM_HOTKEY) \
{ \
SetMsgHandled(TRUE); \
func((int)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnInputLangChange(DWORD dwCharSet, HKL hKbdLayout)
#define MSG_WM_INPUTLANGCHANGE(func) \
if (uMsg == WM_INPUTLANGCHANGE) \
{ \
SetMsgHandled(TRUE); \
func((DWORD)wParam, (HKL)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnInputLangChangeRequest(BOOL bSysCharSet, HKL hKbdLayout)
#define MSG_WM_INPUTLANGCHANGEREQUEST(func) \
if (uMsg == WM_INPUTLANGCHANGEREQUEST) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam, (HKL)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNextDlgCtl(BOOL bHandle, WPARAM wCtlFocus)
#define MSG_WM_NEXTDLGCTL(func) \
if (uMsg == WM_NEXTDLGCTL) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)LOWORD(lParam), wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNextMenu(int nVirtKey, LPMDINEXTMENU lpMdiNextMenu)
#define MSG_WM_NEXTMENU(func) \
if (uMsg == WM_NEXTMENU) \
{ \
SetMsgHandled(TRUE); \
func((int)wParam, (LPMDINEXTMENU)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnNotifyFormat(CWindow wndFrom, int nCommand)
#define MSG_WM_NOTIFYFORMAT(func) \
if (uMsg == WM_NOTIFYFORMAT) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HWND)wParam, (int)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// BOOL OnPowerBroadcast(DWORD dwPowerEvent, DWORD_PTR dwData)
#define MSG_WM_POWERBROADCAST(func) \
if (uMsg == WM_POWERBROADCAST) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((DWORD)wParam, (DWORD_PTR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnPrint(CDCHandle dc, UINT uFlags)
#define MSG_WM_PRINT(func) \
if (uMsg == WM_PRINT) \
{ \
SetMsgHandled(TRUE); \
func((HDC)wParam, (UINT)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnPrintClient(CDCHandle dc, UINT uFlags)
#define MSG_WM_PRINTCLIENT(func) \
if (uMsg == WM_PRINTCLIENT) \
{ \
SetMsgHandled(TRUE); \
func((HDC)wParam, (UINT)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnRasDialEvent(RASCONNSTATE rasconnstate, DWORD dwError)
#define MSG_WM_RASDIALEVENT(func) \
if (uMsg == WM_RASDIALEVENT) \
{ \
SetMsgHandled(TRUE); \
func((RASCONNSTATE)wParam, (DWORD)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSetFont(CFontHandle font, BOOL bRedraw)
#define MSG_WM_SETFONT(func) \
if (uMsg == WM_SETFONT) \
{ \
SetMsgHandled(TRUE); \
func((HFONT)wParam, (BOOL)LOWORD(lParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnSetHotKey(int nVirtKey, UINT uFlags)
#define MSG_WM_SETHOTKEY(func) \
if (uMsg == WM_SETHOTKEY) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((int)LOBYTE(LOWORD(wParam)), (UINT)HIBYTE(LOWORD(wParam))); \
if(IsMsgHandled()) \
return TRUE; \
}
// HICON OnSetIcon(UINT uType, HICON hIcon)
#define MSG_WM_SETICON(func) \
if (uMsg == WM_SETICON) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)wParam, (HICON)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnSetRedraw(BOOL bRedraw)
#define MSG_WM_SETREDRAW(func) \
if (uMsg == WM_SETREDRAW) \
{ \
SetMsgHandled(TRUE); \
func((BOOL)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnSetText(LPCTSTR lpstrText)
#define MSG_WM_SETTEXT(func) \
if (uMsg == WM_SETTEXT) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((LPCTSTR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnUserChanged()
#define MSG_WM_USERCHANGED(func) \
if (uMsg == WM_USERCHANGED) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
///////////////////////////////////////////////////////////////////////////////
// New NT4 & NT5 messages
#if (_WIN32_WINNT >= 0x0400)
// void OnMouseHover(WPARAM wParam, CPoint ptPos)
#define MSG_WM_MOUSEHOVER(func) \
if (uMsg == WM_MOUSEHOVER) \
{ \
SetMsgHandled(TRUE); \
func(wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMouseLeave()
#define MSG_WM_MOUSELEAVE(func) \
if (uMsg == WM_MOUSELEAVE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
#endif // _WIN32_WINNT >= 0x0400
#if (WINVER >= 0x0500)
// void OnMenuRButtonUp(WPARAM wParam, CMenuHandle menu)
#define MSG_WM_MENURBUTTONUP(func) \
if (uMsg == WM_MENURBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func(wParam, (HMENU)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnMenuDrag(WPARAM wParam, CMenuHandle menu)
#define MSG_WM_MENUDRAG(func) \
if (uMsg == WM_MENUDRAG) \
{ \
SetMsgHandled(TRUE); \
lResult = func(wParam, (HMENU)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnMenuGetObject(PMENUGETOBJECTINFO info)
#define MSG_WM_MENUGETOBJECT(func) \
if (uMsg == WM_MENUGETOBJECT) \
{ \
SetMsgHandled(TRUE); \
lResult = func((PMENUGETOBJECTINFO)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnUnInitMenuPopup(UINT nID, CMenuHandle menu)
#define MSG_WM_UNINITMENUPOPUP(func) \
if (uMsg == WM_UNINITMENUPOPUP) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(lParam), (HMENU)wParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnMenuCommand(WPARAM nIndex, CMenuHandle menu)
#define MSG_WM_MENUCOMMAND(func) \
if (uMsg == WM_MENUCOMMAND) \
{ \
SetMsgHandled(TRUE); \
func(wParam, (HMENU)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
#endif // WINVER >= 0x0500
#if (_WIN32_WINNT >= 0x0500)
// BOOL OnAppCommand(CWindow wndFocus, short cmd, WORD uDevice, int dwKeys)
#define MSG_WM_APPCOMMAND(func) \
if (uMsg == WM_APPCOMMAND) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HWND)wParam, GET_APPCOMMAND_LPARAM(lParam), GET_DEVICE_LPARAM(lParam), GET_KEYSTATE_LPARAM(lParam)); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNCXButtonDown(int fwButton, short nHittest, CPoint ptPos)
#define MSG_WM_NCXBUTTONDOWN(func) \
if (uMsg == WM_NCXBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNCXButtonUp(int fwButton, short nHittest, CPoint ptPos)
#define MSG_WM_NCXBUTTONUP(func) \
if (uMsg == WM_NCXBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnNCXButtonDblClk(int fwButton, short nHittest, CPoint ptPos)
#define MSG_WM_NCXBUTTONDBLCLK(func) \
if (uMsg == WM_NCXBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnXButtonDown(int fwButton, int dwKeys, CPoint ptPos)
#define MSG_WM_XBUTTONDOWN(func) \
if (uMsg == WM_XBUTTONDOWN) \
{ \
SetMsgHandled(TRUE); \
func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnXButtonUp(int fwButton, int dwKeys, CPoint ptPos)
#define MSG_WM_XBUTTONUP(func) \
if (uMsg == WM_XBUTTONUP) \
{ \
SetMsgHandled(TRUE); \
func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnXButtonDblClk(int fwButton, int dwKeys, CPoint ptPos)
#define MSG_WM_XBUTTONDBLCLK(func) \
if (uMsg == WM_XBUTTONDBLCLK) \
{ \
SetMsgHandled(TRUE); \
func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnChangeUIState(WORD nAction, WORD nState)
#define MSG_WM_CHANGEUISTATE(func) \
if (uMsg == WM_CHANGEUISTATE) \
{ \
SetMsgHandled(TRUE); \
func(LOWORD(wParam), HIWORD(wParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnUpdateUIState(WORD nAction, WORD nState)
#define MSG_WM_UPDATEUISTATE(func) \
if (uMsg == WM_UPDATEUISTATE) \
{ \
SetMsgHandled(TRUE); \
func(LOWORD(wParam), HIWORD(wParam)); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnQueryUIState()
#define MSG_WM_QUERYUISTATE(func) \
if (uMsg == WM_QUERYUISTATE) \
{ \
SetMsgHandled(TRUE); \
lResult = func(); \
if(IsMsgHandled()) \
return TRUE; \
}
#endif // (_WIN32_WINNT >= 0x0500)
#if(_WIN32_WINNT >= 0x0501)
// void OnInput(WPARAM RawInputCode, HRAWINPUT hRawInput)
#define MSG_WM_INPUT(func) \
if (uMsg == WM_INPUT) \
{ \
SetMsgHandled(TRUE); \
func(GET_RAWINPUT_CODE_WPARAM(wParam), (HRAWINPUT)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnUniChar(TCHAR nChar, UINT nRepCnt, UINT nFlags)
#define MSG_WM_UNICHAR(func) \
if (uMsg == WM_UNICHAR) \
{ \
SetMsgHandled(TRUE); \
func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
if(IsMsgHandled()) \
{ \
lResult = (wParam == UNICODE_NOCHAR) ? TRUE : FALSE; \
return TRUE; \
} \
}
// void OnWTSSessionChange(WPARAM nStatusCode, PWTSSESSION_NOTIFICATION nSessionID)
#define MSG_WM_WTSSESSION_CHANGE(func) \
if (uMsg == WM_WTSSESSION_CHANGE) \
{ \
SetMsgHandled(TRUE); \
func(wParam, (PWTSSESSION_NOTIFICATION)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnThemeChanged()
#define MSG_WM_THEMECHANGED(func) \
if (uMsg == WM_THEMECHANGED) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
#endif // _WIN32_WINNT >= 0x0501
#if (_WIN32_WINNT >= 0x0600)
// BOOL OnMouseHWheel(UINT nFlags, short zDelta, CPoint pt)
#define MSG_WM_MOUSEHWHEEL(func) \
if (uMsg == WM_MOUSEHWHEEL) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)LOWORD(wParam), (short)HIWORD(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
if(IsMsgHandled()) \
return TRUE; \
}
#endif // (_WIN32_WINNT >= 0x0600)
///////////////////////////////////////////////////////////////////////////////
// ATL defined messages
// BOOL OnForwardMsg(LPMSG Msg, DWORD nUserData)
#define MSG_WM_FORWARDMSG(func) \
if (uMsg == WM_FORWARDMSG) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((LPMSG)lParam, (DWORD)wParam); \
if(IsMsgHandled()) \
return TRUE; \
}
///////////////////////////////////////////////////////////////////////////////
// Dialog specific messages
// LRESULT OnDMGetDefID()
#define MSG_DM_GETDEFID(func) \
if (uMsg == DM_GETDEFID) \
{ \
SetMsgHandled(TRUE); \
lResult = func(); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDMSetDefID(UINT DefID)
#define MSG_DM_SETDEFID(func) \
if (uMsg == DM_SETDEFID) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnDMReposition()
#define MSG_DM_REPOSITION(func) \
if (uMsg == DM_REPOSITION) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
///////////////////////////////////////////////////////////////////////////////
// Reflected messages
// void OnReflectedCommand(UINT uNotifyCode, int nID, CWindow wndCtl)
#define MSG_OCM_COMMAND(func) \
if (uMsg == OCM_COMMAND) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedNotify(int idCtrl, LPNMHDR pnmh)
#define MSG_OCM_NOTIFY(func) \
if (uMsg == OCM_NOTIFY) \
{ \
SetMsgHandled(TRUE); \
lResult = func((int)wParam, (LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedParentNotify(UINT message, UINT nChildID, LPARAM lParam)
#define MSG_OCM_PARENTNOTIFY(func) \
if (uMsg == OCM_PARENTNOTIFY) \
{ \
SetMsgHandled(TRUE); \
func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
#define MSG_OCM_DRAWITEM(func) \
if (uMsg == OCM_DRAWITEM) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPDRAWITEMSTRUCT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
#define MSG_OCM_MEASUREITEM(func) \
if (uMsg == OCM_MEASUREITEM) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPMEASUREITEMSTRUCT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnReflectedCompareItem(int nIDCtl, LPCOMPAREITEMSTRUCT lpCompareItemStruct)
#define MSG_OCM_COMPAREITEM(func) \
if (uMsg == OCM_COMPAREITEM) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)wParam, (LPCOMPAREITEMSTRUCT)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedDeleteItem(int nIDCtl, LPDELETEITEMSTRUCT lpDeleteItemStruct)
#define MSG_OCM_DELETEITEM(func) \
if (uMsg == OCM_DELETEITEM) \
{ \
SetMsgHandled(TRUE); \
func((UINT)wParam, (LPDELETEITEMSTRUCT)lParam); \
lResult = TRUE; \
if(IsMsgHandled()) \
return TRUE; \
}
// int OnReflectedVKeyToItem(UINT nKey, UINT nIndex, CListBox listBox)
#define MSG_OCM_VKEYTOITEM(func) \
if (uMsg == OCM_VKEYTOITEM) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
//int OnReflectedCharToItem(UINT nChar, UINT nIndex, CListBox listBox)
#define MSG_OCM_CHARTOITEM(func) \
if (uMsg == OCM_CHARTOITEM) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedHScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
#define MSG_OCM_HSCROLL(func) \
if (uMsg == OCM_HSCROLL) \
{ \
SetMsgHandled(TRUE); \
func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedVScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
#define MSG_OCM_VSCROLL(func) \
if (uMsg == OCM_VSCROLL) \
{ \
SetMsgHandled(TRUE); \
func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnReflectedCtlColorEdit(CDCHandle dc, CEdit edit)
#define MSG_OCM_CTLCOLOREDIT(func) \
if (uMsg == OCM_CTLCOLOREDIT) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnReflectedCtlColorListBox(CDCHandle dc, CListBox listBox)
#define MSG_OCM_CTLCOLORLISTBOX(func) \
if (uMsg == OCM_CTLCOLORLISTBOX) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnReflectedCtlColorBtn(CDCHandle dc, CButton button)
#define MSG_OCM_CTLCOLORBTN(func) \
if (uMsg == OCM_CTLCOLORBTN) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnReflectedCtlColorDlg(CDCHandle dc, CWindow wnd)
#define MSG_OCM_CTLCOLORDLG(func) \
if (uMsg == OCM_CTLCOLORDLG) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnReflectedCtlColorScrollBar(CDCHandle dc, CScrollBar scrollBar)
#define MSG_OCM_CTLCOLORSCROLLBAR(func) \
if (uMsg == OCM_CTLCOLORSCROLLBAR) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// HBRUSH OnReflectedCtlColorStatic(CDCHandle dc, CStatic wndStatic)
#define MSG_OCM_CTLCOLORSTATIC(func) \
if (uMsg == OCM_CTLCOLORSTATIC) \
{ \
SetMsgHandled(TRUE); \
lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
///////////////////////////////////////////////////////////////////////////////
// Edit specific messages
// void OnClear()
#define MSG_WM_CLEAR(func) \
if (uMsg == WM_CLEAR) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCopy()
#define MSG_WM_COPY(func) \
if (uMsg == WM_COPY) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCut()
#define MSG_WM_CUT(func) \
if (uMsg == WM_CUT) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnPaste()
#define MSG_WM_PASTE(func) \
if (uMsg == WM_PASTE) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnUndo()
#define MSG_WM_UNDO(func) \
if (uMsg == WM_UNDO) \
{ \
SetMsgHandled(TRUE); \
func(); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
///////////////////////////////////////////////////////////////////////////////
// Generic message handlers
// LRESULT OnMessageHandlerEX(UINT uMsg, WPARAM wParam, LPARAM lParam)
#define MESSAGE_HANDLER_EX(msg, func) \
if(uMsg == msg) \
{ \
SetMsgHandled(TRUE); \
lResult = func(uMsg, wParam, lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnMessageRangeHandlerEX(UINT uMsg, WPARAM wParam, LPARAM lParam)
#define MESSAGE_RANGE_HANDLER_EX(msgFirst, msgLast, func) \
if(uMsg >= msgFirst && uMsg <= msgLast) \
{ \
SetMsgHandled(TRUE); \
lResult = func(uMsg, wParam, lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
///////////////////////////////////////////////////////////////////////////////
// Commands and notifications
// void OnCommandHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define COMMAND_HANDLER_EX(id, code, func) \
if (uMsg == WM_COMMAND && code == HIWORD(wParam) && id == LOWORD(wParam)) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCommandIDHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define COMMAND_ID_HANDLER_EX(id, func) \
if (uMsg == WM_COMMAND && id == LOWORD(wParam)) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCommandCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define COMMAND_CODE_HANDLER_EX(code, func) \
if (uMsg == WM_COMMAND && code == HIWORD(wParam)) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnNotifyHandlerEX(LPNMHDR pnmh)
#define NOTIFY_HANDLER_EX(id, cd, func) \
if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && id == ((LPNMHDR)lParam)->idFrom) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnNotifyIDHandlerEX(LPNMHDR pnmh)
#define NOTIFY_ID_HANDLER_EX(id, func) \
if (uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnNotifyCodeHandlerEX(LPNMHDR pnmh)
#define NOTIFY_CODE_HANDLER_EX(cd, func) \
if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCommandRangeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define COMMAND_RANGE_HANDLER_EX(idFirst, idLast, func) \
if(uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnCommandRangeCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define COMMAND_RANGE_CODE_HANDLER_EX(idFirst, idLast, code, func) \
if(uMsg == WM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnNotifyRangeHandlerEX(LPNMHDR pnmh)
#define NOTIFY_RANGE_HANDLER_EX(idFirst, idLast, func) \
if(uMsg == WM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnNotifyRangeCodeHandlerEX(LPNMHDR pnmh)
#define NOTIFY_RANGE_CODE_HANDLER_EX(idFirst, idLast, cd, func) \
if(uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedCommandHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define REFLECTED_COMMAND_HANDLER_EX(id, code, func) \
if (uMsg == OCM_COMMAND && code == HIWORD(wParam) && id == LOWORD(wParam)) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedCommandIDHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define REFLECTED_COMMAND_ID_HANDLER_EX(id, func) \
if (uMsg == OCM_COMMAND && id == LOWORD(wParam)) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedCommandCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define REFLECTED_COMMAND_CODE_HANDLER_EX(code, func) \
if (uMsg == OCM_COMMAND && code == HIWORD(wParam)) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedNotifyHandlerEX(LPNMHDR pnmh)
#define REFLECTED_NOTIFY_HANDLER_EX(id, cd, func) \
if (uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && id == ((LPNMHDR)lParam)->idFrom) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedNotifyIDHandlerEX(LPNMHDR pnmh)
#define REFLECTED_NOTIFY_ID_HANDLER_EX(id, func) \
if (uMsg == OCM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedNotifyCodeHandlerEX(LPNMHDR pnmh)
#define REFLECTED_NOTIFY_CODE_HANDLER_EX(cd, func) \
if (uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedCommandRangeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define REFLECTED_COMMAND_RANGE_HANDLER_EX(idFirst, idLast, func) \
if(uMsg == OCM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// void OnReflectedCommandRangeCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
#define REFLECTED_COMMAND_RANGE_CODE_HANDLER_EX(idFirst, idLast, code, func) \
if(uMsg == OCM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
{ \
SetMsgHandled(TRUE); \
func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
lResult = 0; \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedNotifyRangeHandlerEX(LPNMHDR pnmh)
#define REFLECTED_NOTIFY_RANGE_HANDLER_EX(idFirst, idLast, func) \
if(uMsg == OCM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
// LRESULT OnReflectedNotifyRangeCodeHandlerEX(LPNMHDR pnmh)
#define REFLECTED_NOTIFY_RANGE_CODE_HANDLER_EX(idFirst, idLast, cd, func) \
if(uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
{ \
SetMsgHandled(TRUE); \
lResult = func((LPNMHDR)lParam); \
if(IsMsgHandled()) \
return TRUE; \
}
#endif // __ATLCRACK_H__
================================================
FILE: WTL/atlctrls.h
================================================
// Windows Template Library - WTL version 9.10
// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.
//
// This file is a part of the Windows Template Library.
// The use and distribution terms for this software are covered by the
// Microsoft Public License (http://opensource.org/licenses/MS-PL)
// which can be found in the file MS-PL.txt at the root folder.
#ifndef __ATLCTRLS_H__
#define __ATLCTRLS_H__
#pragma once
#ifndef __ATLAPP_H__
#error atlctrls.h requires atlapp.h to be included first
#endif
#ifndef __ATLWIN_H__
#error atlctrls.h requires atlwin.h to be included first
#endif
#ifndef _WIN32_WCE
#include <richedit.h>
#include <richole.h>
#elif defined(WIN32_PLATFORM_WFSP) && !defined(_WINUSERM_H_)
#include <winuserm.h>
#endif // !_WIN32_WCE
// protect template members from windowsx.h macros
#ifdef _INC_WINDOWSX
#undef GetNextSibling
#undef GetPrevSibling
#endif // _INC_WINDOWSX
///////////////////////////////////////////////////////////////////////////////
// Classes in this file:
//
// CStaticT<TBase> - CStatic
// CButtonT<TBase> - CButton
// CListBoxT<TBase> - CListBox
// CComboBoxT<TBase> - CComboBox
// CEditT<TBase> - CEdit
// CEditCommands<T>
// CScrollBarT<TBase> - CScrollBar
//
// CImageListT<t_bManaged> - CImageList, CImageListManaged
// CListViewCtrlT<TBase> - CListViewCtrl
// CTreeViewCtrlT<TBase> - CTreeViewCtrl
// CTreeItemT<TBase> - CTreeItem
// CTreeViewCtrlExT<TBase> - CTreeViewCtrlEx
// CHeaderCtrlT<TBase> - CHeaderCtrl
// CToolBarCtrlT<TBase> - CToolBarCtrl
// CStatusBarCtrlT<TBase> - CStatusBarCtrl
// CTabCtrlT<TBase> - CTabCtrl
// CToolInfo
// CToolTipCtrlT<TBase> - CToolTipCtrl
// CTrackBarCtrlT<TBase> - CTrackBarCtrl
// CUpDownCtrlT<TBase> - CUpDownCtrl
// CProgressBarCtrlT<TBase> - CProgressBarCtrl
// CHotKeyCtrlT<TBase> - CHotKeyCtrl
// CAnimateCtrlT<TBase> - CAnimateCtrl
// CRichEditCtrlT<TBase> - CRichEditCtrl
// CRichEditCommands<T>
// CDragListBoxT<TBase> - CDragListBox
// CDragListNotifyImpl<T>
// CReBarCtrlT<TBase> - CReBarCtrl
// CComboBoxExT<TBase> - CComboBoxEx
// CDateTimePickerCtrlT<TBase> - CDateTimePickerCtrl
// CMonthCalendarCtrlT<TBase> - CMonthCalendarCtrl
// CFlatScrollBarImpl<T>
// CFlatScrollBarT<TBase> - CFlatScrollBar
// CIPAddressCtrlT<TBase> - CIPAddressCtrl
// CPagerCtrlT<TBase> - CPagerCtrl
// CLinkCtrlT<TBase> - CLinkCtrl
//
// CCustomDraw<T>
//
// CCECommandBarCtrlT<TBase> - CCECommandBarCtrl
// CCECommandBandsCtrlT<TBase> - CCECommandBandsCtrl
namespace WTL
{
// These are wrapper classes for Windows standard and common controls.
// To implement a window based on a control, use following:
// Example: Implementing a window based on a list box
//
// class CMyListBox : CWindowImpl<CMyListBox, CListBox>
// {
// public:
// BEGIN_MSG_MAP(CMyListBox)
// // put your message handler entries here
// END_MSG_MAP()
// };
// --- Standard Windows controls ---
///////////////////////////////////////////////////////////////////////////////
// CStatic - client side for a Windows STATIC control
template <class TBase>
class CStaticT : public TBase
{
public:
// Constructors
CStaticT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CStaticT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return _T("STATIC");
}
#ifndef _WIN32_WCE
HICON GetIcon() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (HICON)::SendMessage(m_hWnd, STM_GETICON, 0, 0L);
}
HICON SetIcon(HICON hIcon)
{
ATLASSERT(::IsWindow(m_hWnd));
return (HICON)::SendMessage(m_hWnd, STM_SETICON, (WPARAM)hIcon, 0L);
}
HENHMETAFILE GetEnhMetaFile() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (HENHMETAFILE)::SendMessage(m_hWnd, STM_GETIMAGE, IMAGE_ENHMETAFILE, 0L);
}
HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile)
{
ATLASSERT(::IsWindow(m_hWnd));
return (HENHMETAFILE)::SendMessage(m_hWnd, STM_SETIMAGE, IMAGE_ENHMETAFILE, (LPARAM)hMetaFile);
}
#else // CE specific
HICON GetIcon() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (HICON)::SendMessage(m_hWnd, STM_GETIMAGE, IMAGE_ICON, 0L);
}
HICON SetIcon(HICON hIcon)
{
ATLASSERT(::IsWindow(m_hWnd));
return (HICON)::SendMessage(m_hWnd, STM_SETIMAGE, IMAGE_ICON, (LPARAM)hIcon);
}
#endif // _WIN32_WCE
CBitmapHandle GetBitmap() const
{
ATLASSERT(::IsWindow(m_hWnd));
return CBitmapHandle((HBITMAP)::SendMessage(m_hWnd, STM_GETIMAGE, IMAGE_BITMAP, 0L));
}
CBitmapHandle SetBitmap(HBITMAP hBitmap)
{
ATLASSERT(::IsWindow(m_hWnd));
return CBitmapHandle((HBITMAP)::SendMessage(m_hWnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap));
}
HCURSOR GetCursor() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (HCURSOR)::SendMessage(m_hWnd, STM_GETIMAGE, IMAGE_CURSOR, 0L);
}
HCURSOR SetCursor(HCURSOR hCursor)
{
ATLASSERT(::IsWindow(m_hWnd));
return (HCURSOR)::SendMessage(m_hWnd, STM_SETIMAGE, IMAGE_CURSOR, (LPARAM)hCursor);
}
};
typedef CStaticT<ATL::CWindow> CStatic;
///////////////////////////////////////////////////////////////////////////////
// CButton - client side for a Windows BUTTON control
template <class TBase>
class CButtonT : public TBase
{
public:
// Constructors
CButtonT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CButtonT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return _T("BUTTON");
}
UINT GetState() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (UINT)::SendMessage(m_hWnd, BM_GETSTATE, 0, 0L);
}
void SetState(BOOL bHighlight)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, BM_SETSTATE, bHighlight, 0L);
}
int GetCheck() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, BM_GETCHECK, 0, 0L);
}
void SetCheck(int nCheck)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, BM_SETCHECK, nCheck, 0L);
}
UINT GetButtonStyle() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (UINT)::GetWindowLong(m_hWnd, GWL_STYLE) & 0xFFFF;
}
void SetButtonStyle(UINT nStyle, BOOL bRedraw = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, BM_SETSTYLE, nStyle, (LPARAM)bRedraw);
}
#ifndef _WIN32_WCE
HICON GetIcon() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (HICON)::SendMessage(m_hWnd, BM_GETIMAGE, IMAGE_ICON, 0L);
}
HICON SetIcon(HICON hIcon)
{
ATLASSERT(::IsWindow(m_hWnd));
return (HICON)::SendMessage(m_hWnd, BM_SETIMAGE, IMAGE_ICON, (LPARAM)hIcon);
}
CBitmapHandle GetBitmap() const
{
ATLASSERT(::IsWindow(m_hWnd));
return CBitmapHandle((HBITMAP)::SendMessage(m_hWnd, BM_GETIMAGE, IMAGE_BITMAP, 0L));
}
CBitmapHandle SetBitmap(HBITMAP hBitmap)
{
ATLASSERT(::IsWindow(m_hWnd));
return CBitmapHandle((HBITMAP)::SendMessage(m_hWnd, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap));
}
#endif // !_WIN32_WCE
#if (_WIN32_WINNT >= 0x0501)
BOOL GetIdealSize(LPSIZE lpSize) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, BCM_GETIDEALSIZE, 0, (LPARAM)lpSize);
}
BOOL GetImageList(PBUTTON_IMAGELIST pButtonImagelist) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, BCM_GETIMAGELIST, 0, (LPARAM)pButtonImagelist);
}
BOOL SetImageList(PBUTTON_IMAGELIST pButtonImagelist)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, BCM_SETIMAGELIST, 0, (LPARAM)pButtonImagelist);
}
BOOL GetTextMargin(LPRECT lpRect) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, BCM_GETTEXTMARGIN, 0, (LPARAM)lpRect);
}
BOOL SetTextMargin(LPRECT lpRect)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, BCM_SETTEXTMARGIN, 0, (LPARAM)lpRect);
}
#endif // (_WIN32_WINNT >= 0x0501)
#if (WINVER >= 0x0600)
void SetDontClick(BOOL bDontClick)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, BM_SETDONTCLICK, (WPARAM)bDontClick, 0L);
}
#endif // (WINVER >= 0x0600)
#if (_WIN32_WINNT >= 0x0600)
BOOL SetDropDownState(BOOL bDropDown)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (BS_SPLITBUTTON | BS_DEFSPLITBUTTON)) != 0);
return (BOOL)::SendMessage(m_hWnd, BCM_SETDROPDOWNSTATE, (WPARAM)bDropDown, 0L);
}
BOOL GetSplitInfo(PBUTTON_SPLITINFO pSplitInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (BS_SPLITBUTTON | BS_DEFSPLITBUTTON)) != 0);
return (BOOL)::SendMessage(m_hWnd, BCM_GETSPLITINFO, 0, (LPARAM)pSplitInfo);
}
BOOL SetSplitInfo(PBUTTON_SPLITINFO pSplitInfo)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (BS_SPLITBUTTON | BS_DEFSPLITBUTTON)) != 0);
return (BOOL)::SendMessage(m_hWnd, BCM_SETSPLITINFO, 0, (LPARAM)pSplitInfo);
}
int GetNoteLength() const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (BS_COMMANDLINK | BS_DEFCOMMANDLINK)) != 0);
return (int)::SendMessage(m_hWnd, BCM_GETNOTELENGTH, 0, 0L);
}
BOOL GetNote(LPWSTR lpstrNoteText, int cchNoteText) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (BS_COMMANDLINK | BS_DEFCOMMANDLINK)) != 0);
return (BOOL)::SendMessage(m_hWnd, BCM_GETNOTE, cchNoteText, (LPARAM)lpstrNoteText);
}
BOOL SetNote(LPCWSTR lpstrNoteText)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (BS_COMMANDLINK | BS_DEFCOMMANDLINK)) != 0);
return (BOOL)::SendMessage(m_hWnd, BCM_SETNOTE, 0, (LPARAM)lpstrNoteText);
}
LRESULT SetElevationRequiredState(BOOL bSet)
{
ATLASSERT(::IsWindow(m_hWnd));
return ::SendMessage(m_hWnd, BCM_SETSHIELD, 0, (LPARAM)bSet);
}
#endif // (_WIN32_WINNT >= 0x0600)
// Operations
void Click()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, BM_CLICK, 0, 0L);
}
};
typedef CButtonT<ATL::CWindow> CButton;
///////////////////////////////////////////////////////////////////////////////
// CListBox - client side for a Windows LISTBOX control
template <class TBase>
class CListBoxT : public TBase
{
public:
// Constructors
CListBoxT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CListBoxT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return _T("LISTBOX");
}
// for entire listbox
int GetCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETCOUNT, 0, 0L);
}
#ifndef _WIN32_WCE
int SetCount(int cItems)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(((GetStyle() & LBS_NODATA) != 0) && ((GetStyle() & LBS_HASSTRINGS) == 0));
return (int)::SendMessage(m_hWnd, LB_SETCOUNT, cItems, 0L);
}
#endif // !_WIN32_WCE
int GetHorizontalExtent() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETHORIZONTALEXTENT, 0, 0L);
}
void SetHorizontalExtent(int cxExtent)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, LB_SETHORIZONTALEXTENT, cxExtent, 0L);
}
int GetTopIndex() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETTOPINDEX, 0, 0L);
}
int SetTopIndex(int nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_SETTOPINDEX, nIndex, 0L);
}
LCID GetLocale() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (LCID)::SendMessage(m_hWnd, LB_GETLOCALE, 0, 0L);
}
LCID SetLocale(LCID nNewLocale)
{
ATLASSERT(::IsWindow(m_hWnd));
return (LCID)::SendMessage(m_hWnd, LB_SETLOCALE, (WPARAM)nNewLocale, 0L);
}
#if (WINVER >= 0x0500) && !defined(_WIN32_WCE)
DWORD GetListBoxInfo() const
{
ATLASSERT(::IsWindow(m_hWnd));
#if (_WIN32_WINNT >= 0x0501)
return (DWORD)::SendMessage(m_hWnd, LB_GETLISTBOXINFO, 0, 0L);
#else // !(_WIN32_WINNT >= 0x0501)
return ::GetListBoxInfo(m_hWnd);
#endif // !(_WIN32_WINNT >= 0x0501)
}
#endif // (WINVER >= 0x0500) && !defined(_WIN32_WCE)
// for single-selection listboxes
int GetCurSel() const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) == 0);
return (int)::SendMessage(m_hWnd, LB_GETCURSEL, 0, 0L);
}
int SetCurSel(int nSelect)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) == 0);
return (int)::SendMessage(m_hWnd, LB_SETCURSEL, nSelect, 0L);
}
// for multiple-selection listboxes
int GetSel(int nIndex) const // also works for single-selection
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETSEL, nIndex, 0L);
}
int SetSel(int nIndex, BOOL bSelect = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
return (int)::SendMessage(m_hWnd, LB_SETSEL, bSelect, nIndex);
}
int GetSelCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
return (int)::SendMessage(m_hWnd, LB_GETSELCOUNT, 0, 0L);
}
int GetSelItems(int nMaxItems, LPINT rgIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
return (int)::SendMessage(m_hWnd, LB_GETSELITEMS, nMaxItems, (LPARAM)rgIndex);
}
int GetAnchorIndex() const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
return (int)::SendMessage(m_hWnd, LB_GETANCHORINDEX, 0, 0L);
}
void SetAnchorIndex(int nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
::SendMessage(m_hWnd, LB_SETANCHORINDEX, nIndex, 0L);
}
int GetCaretIndex() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETCARETINDEX, 0, 0);
}
int SetCaretIndex(int nIndex, BOOL bScroll = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_SETCARETINDEX, nIndex, MAKELONG(bScroll, 0));
}
// for listbox items
DWORD_PTR GetItemData(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (DWORD_PTR)::SendMessage(m_hWnd, LB_GETITEMDATA, nIndex, 0L);
}
int SetItemData(int nIndex, DWORD_PTR dwItemData)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_SETITEMDATA, nIndex, (LPARAM)dwItemData);
}
void* GetItemDataPtr(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (void*)::SendMessage(m_hWnd, LB_GETITEMDATA, nIndex, 0L);
}
int SetItemDataPtr(int nIndex, void* pData)
{
ATLASSERT(::IsWindow(m_hWnd));
return SetItemData(nIndex, (DWORD_PTR)pData);
}
int GetItemRect(int nIndex, LPRECT lpRect) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETITEMRECT, nIndex, (LPARAM)lpRect);
}
int GetText(int nIndex, LPTSTR lpszBuffer) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETTEXT, nIndex, (LPARAM)lpszBuffer);
}
#ifndef _ATL_NO_COM
#ifdef _OLEAUTO_H_
BOOL GetTextBSTR(int nIndex, BSTR& bstrText) const
{
USES_CONVERSION;
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(bstrText == NULL);
int nLen = GetTextLen(nIndex);
if(nLen == LB_ERR)
return FALSE;
CTempBuffer<TCHAR, _WTL_STACK_ALLOC_THRESHOLD> buff;
LPTSTR lpstrText = buff.Allocate(nLen + 1);
if(lpstrText == NULL)
return FALSE;
if(GetText(nIndex, lpstrText) == LB_ERR)
return FALSE;
bstrText = ::SysAllocString(T2OLE(lpstrText));
return (bstrText != NULL) ? TRUE : FALSE;
}
#endif // _OLEAUTO_H_
#endif // !_ATL_NO_COM
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
int GetText(int nIndex, _CSTRING_NS::CString& strText) const
{
ATLASSERT(::IsWindow(m_hWnd));
int cchLen = GetTextLen(nIndex);
if(cchLen == LB_ERR)
return LB_ERR;
int nRet = LB_ERR;
LPTSTR lpstr = strText.GetBufferSetLength(cchLen);
if(lpstr != NULL)
{
nRet = GetText(nIndex, lpstr);
strText.ReleaseBuffer();
}
return nRet;
}
#endif // defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
int GetTextLen(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETTEXTLEN, nIndex, 0L);
}
int GetItemHeight(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_GETITEMHEIGHT, nIndex, 0L);
}
int SetItemHeight(int nIndex, UINT cyItemHeight)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_SETITEMHEIGHT, nIndex, MAKELONG(cyItemHeight, 0));
}
// Settable only attributes
void SetColumnWidth(int cxWidth)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, LB_SETCOLUMNWIDTH, cxWidth, 0L);
}
BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & LBS_USETABSTOPS) != 0);
return (BOOL)::SendMessage(m_hWnd, LB_SETTABSTOPS, nTabStops, (LPARAM)rgTabStops);
}
BOOL SetTabStops()
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & LBS_USETABSTOPS) != 0);
return (BOOL)::SendMessage(m_hWnd, LB_SETTABSTOPS, 0, 0L);
}
BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & LBS_USETABSTOPS) != 0);
return (BOOL)::SendMessage(m_hWnd, LB_SETTABSTOPS, 1, (LPARAM)(LPINT)&cxEachStop);
}
// Operations
int InitStorage(int nItems, UINT nBytes)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_INITSTORAGE, (WPARAM)nItems, nBytes);
}
void ResetContent()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, LB_RESETCONTENT, 0, 0L);
}
UINT ItemFromPoint(POINT pt, BOOL& bOutside) const
{
ATLASSERT(::IsWindow(m_hWnd));
DWORD dw = (DWORD)::SendMessage(m_hWnd, LB_ITEMFROMPOINT, 0, MAKELPARAM(pt.x, pt.y));
bOutside = (BOOL)HIWORD(dw);
return (UINT)LOWORD(dw);
}
// manipulating listbox items
int AddString(LPCTSTR lpszItem)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_ADDSTRING, 0, (LPARAM)lpszItem);
}
int DeleteString(UINT nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_DELETESTRING, nIndex, 0L);
}
int InsertString(int nIndex, LPCTSTR lpszItem)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_INSERTSTRING, nIndex, (LPARAM)lpszItem);
}
#ifndef _WIN32_WCE
int Dir(UINT attr, LPCTSTR lpszWildCard)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_DIR, attr, (LPARAM)lpszWildCard);
}
int AddFile(LPCTSTR lpstrFileName)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_ADDFILE, 0, (LPARAM)lpstrFileName);
}
#endif // !_WIN32_WCE
// selection helpers
int FindString(int nStartAfter, LPCTSTR lpszItem) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_FINDSTRING, nStartAfter, (LPARAM)lpszItem);
}
int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_FINDSTRINGEXACT, nIndexStart, (LPARAM)lpszFind);
}
int SelectString(int nStartAfter, LPCTSTR lpszItem)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LB_SELECTSTRING, nStartAfter, (LPARAM)lpszItem);
}
int SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & (LBS_MULTIPLESEL | LBS_EXTENDEDSEL)) != 0);
ATLASSERT(nFirstItem <= nLastItem);
return bSelect ? (int)::SendMessage(m_hWnd, LB_SELITEMRANGEEX, nFirstItem, nLastItem) : (int)::SendMessage(m_hWnd, LB_SELITEMRANGEEX, nLastItem, nFirstItem);
}
#ifdef WIN32_PLATFORM_WFSP // SmartPhone only messages
DWORD GetInputMode(BOOL bCurrentMode = TRUE)
{
return SendMessage(LB_GETINPUTMODE, 0, (LPARAM)bCurrentMode);
}
BOOL SetInputMode(DWORD dwMode)
{
return SendMessage(LB_SETINPUTMODE, 0, (LPARAM)dwMode);
}
#endif // WIN32_PLATFORM_WFSP
};
typedef CListBoxT<ATL::CWindow> CListBox;
///////////////////////////////////////////////////////////////////////////////
// CComboBox - client side for a Windows COMBOBOX control
#ifndef WIN32_PLATFORM_WFSP // No COMBOBOX on SmartPhones
template <class TBase>
class CComboBoxT : public TBase
{
public:
// Constructors
CComboBoxT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CComboBoxT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return _T("COMBOBOX");
}
// for entire combo box
int GetCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETCOUNT, 0, 0L);
}
int GetCurSel() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETCURSEL, 0, 0L);
}
int SetCurSel(int nSelect)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_SETCURSEL, nSelect, 0L);
}
LCID GetLocale() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (LCID)::SendMessage(m_hWnd, CB_GETLOCALE, 0, 0L);
}
LCID SetLocale(LCID nNewLocale)
{
ATLASSERT(::IsWindow(m_hWnd));
return (LCID)::SendMessage(m_hWnd, CB_SETLOCALE, (WPARAM)nNewLocale, 0L);
}
int GetTopIndex() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETTOPINDEX, 0, 0L);
}
int SetTopIndex(int nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_SETTOPINDEX, nIndex, 0L);
}
UINT GetHorizontalExtent() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (UINT)::SendMessage(m_hWnd, CB_GETHORIZONTALEXTENT, 0, 0L);
}
void SetHorizontalExtent(UINT nExtent)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, CB_SETHORIZONTALEXTENT, nExtent, 0L);
}
int GetDroppedWidth() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETDROPPEDWIDTH, 0, 0L);
}
int SetDroppedWidth(UINT nWidth)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_SETDROPPEDWIDTH, nWidth, 0L);
}
#if ((WINVER >= 0x0500) && !defined(_WIN32_WCE)) || (defined(_WIN32_WCE) && (_WIN32_WCE >= 420))
BOOL GetComboBoxInfo(PCOMBOBOXINFO pComboBoxInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
#if ((_WIN32_WINNT >= 0x0501) && !defined(_WIN32_WCE)) || (defined(_WIN32_WCE) && (_WIN32_WCE >= 420))
return (BOOL)::SendMessage(m_hWnd, CB_GETCOMBOBOXINFO, 0, (LPARAM)pComboBoxInfo);
#else // !((_WIN32_WINNT >= 0x0501) && !defined(_WIN32_WCE)) || (defined(_WIN32_WCE) && (_WIN32_WCE >= 420))
return ::GetComboBoxInfo(m_hWnd, pComboBoxInfo);
#endif // !((_WIN32_WINNT >= 0x0501) && !defined(_WIN32_WCE)) || (defined(_WIN32_WCE) && (_WIN32_WCE >= 420))
}
#endif // ((WINVER >= 0x0500) && !defined(_WIN32_WCE)) || (defined(_WIN32_WCE) && (_WIN32_WCE >= 420))
// for edit control
DWORD GetEditSel() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (DWORD)::SendMessage(m_hWnd, CB_GETEDITSEL, 0, 0L);
}
BOOL SetEditSel(int nStartChar, int nEndChar)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, CB_SETEDITSEL, 0, MAKELONG(nStartChar, nEndChar));
}
// for combobox item
DWORD_PTR GetItemData(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (DWORD_PTR)::SendMessage(m_hWnd, CB_GETITEMDATA, nIndex, 0L);
}
int SetItemData(int nIndex, DWORD_PTR dwItemData)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_SETITEMDATA, nIndex, (LPARAM)dwItemData);
}
void* GetItemDataPtr(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (void*)GetItemData(nIndex);
}
int SetItemDataPtr(int nIndex, void* pData)
{
ATLASSERT(::IsWindow(m_hWnd));
return SetItemData(nIndex, (DWORD_PTR)pData);
}
int GetLBText(int nIndex, LPTSTR lpszText) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETLBTEXT, nIndex, (LPARAM)lpszText);
}
#ifndef _ATL_NO_COM
BOOL GetLBTextBSTR(int nIndex, BSTR& bstrText) const
{
USES_CONVERSION;
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(bstrText == NULL);
int nLen = GetLBTextLen(nIndex);
if(nLen == CB_ERR)
return FALSE;
CTempBuffer<TCHAR, _WTL_STACK_ALLOC_THRESHOLD> buff;
LPTSTR lpstrText = buff.Allocate(nLen + 1);
if(lpstrText == NULL)
return FALSE;
if(GetLBText(nIndex, lpstrText) == CB_ERR)
return FALSE;
bstrText = ::SysAllocString(T2OLE(lpstrText));
return (bstrText != NULL) ? TRUE : FALSE;
}
#endif // !_ATL_NO_COM
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
int GetLBText(int nIndex, _CSTRING_NS::CString& strText) const
{
ATLASSERT(::IsWindow(m_hWnd));
int cchLen = GetLBTextLen(nIndex);
if(cchLen == CB_ERR)
return CB_ERR;
int nRet = CB_ERR;
LPTSTR lpstr = strText.GetBufferSetLength(cchLen);
if(lpstr != NULL)
{
nRet = GetLBText(nIndex, lpstr);
strText.ReleaseBuffer();
}
return nRet;
}
#endif // defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
int GetLBTextLen(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETLBTEXTLEN, nIndex, 0L);
}
int GetItemHeight(int nIndex) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETITEMHEIGHT, nIndex, 0L);
}
int SetItemHeight(int nIndex, UINT cyItemHeight)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_SETITEMHEIGHT, nIndex, MAKELONG(cyItemHeight, 0));
}
BOOL GetExtendedUI() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, CB_GETEXTENDEDUI, 0, 0L);
}
int SetExtendedUI(BOOL bExtended = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_SETEXTENDEDUI, bExtended, 0L);
}
void GetDroppedControlRect(LPRECT lprect) const
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, CB_GETDROPPEDCONTROLRECT, 0, (LPARAM)lprect);
}
BOOL GetDroppedState() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, CB_GETDROPPEDSTATE, 0, 0L);
}
#if (_WIN32_WINNT >= 0x0501)
int GetMinVisible() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_GETMINVISIBLE, 0, 0L);
}
BOOL SetMinVisible(int nMinVisible)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, CB_SETMINVISIBLE, nMinVisible, 0L);
}
// Vista only
BOOL GetCueBannerText(LPWSTR lpwText, int cchText) const
{
#ifndef CB_GETCUEBANNER
const UINT CB_GETCUEBANNER = (CBM_FIRST + 4);
#endif
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, CB_GETCUEBANNER, (WPARAM)lpwText, cchText);
}
// Vista only
BOOL SetCueBannerText(LPCWSTR lpcwText)
{
#ifndef CB_SETCUEBANNER
const UINT CB_SETCUEBANNER = (CBM_FIRST + 3);
#endif
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, CB_SETCUEBANNER, 0, (LPARAM)lpcwText);
}
#endif // (_WIN32_WINNT >= 0x0501)
// Operations
int InitStorage(int nItems, UINT nBytes)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_INITSTORAGE, (WPARAM)nItems, nBytes);
}
void ResetContent()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, CB_RESETCONTENT, 0, 0L);
}
// for edit control
BOOL LimitText(int nMaxChars)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, CB_LIMITTEXT, nMaxChars, 0L);
}
// for drop-down combo boxes
void ShowDropDown(BOOL bShowIt = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, CB_SHOWDROPDOWN, bShowIt, 0L);
}
// manipulating listbox items
int AddString(LPCTSTR lpszString)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_ADDSTRING, 0, (LPARAM)lpszString);
}
int DeleteString(UINT nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_DELETESTRING, nIndex, 0L);
}
int InsertString(int nIndex, LPCTSTR lpszString)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_INSERTSTRING, nIndex, (LPARAM)lpszString);
}
#ifndef _WIN32_WCE
int Dir(UINT attr, LPCTSTR lpszWildCard)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_DIR, attr, (LPARAM)lpszWildCard);
}
#endif // !_WIN32_WCE
// selection helpers
int FindString(int nStartAfter, LPCTSTR lpszString) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_FINDSTRING, nStartAfter, (LPARAM)lpszString);
}
int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_FINDSTRINGEXACT, nIndexStart, (LPARAM)lpszFind);
}
int SelectString(int nStartAfter, LPCTSTR lpszString)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, CB_SELECTSTRING, nStartAfter, (LPARAM)lpszString);
}
// Clipboard operations
void Clear()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_CLEAR, 0, 0L);
}
void Copy()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_COPY, 0, 0L);
}
void Cut()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_CUT, 0, 0L);
}
void Paste()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_PASTE, 0, 0L);
}
};
typedef CComboBoxT<ATL::CWindow> CComboBox;
#endif // !WIN32_PLATFORM_WFSP
///////////////////////////////////////////////////////////////////////////////
// CEdit - client side for a Windows EDIT control
template <class TBase>
class CEditT : public TBase
{
public:
// Constructors
CEditT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CEditT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return _T("EDIT");
}
BOOL CanUndo() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_CANUNDO, 0, 0L);
}
int GetLineCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, EM_GETLINECOUNT, 0, 0L);
}
BOOL GetModify() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_GETMODIFY, 0, 0L);
}
void SetModify(BOOL bModified = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETMODIFY, bModified, 0L);
}
void GetRect(LPRECT lpRect) const
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_GETRECT, 0, (LPARAM)lpRect);
}
DWORD GetSel() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (DWORD)::SendMessage(m_hWnd, EM_GETSEL, 0, 0L);
}
void GetSel(int& nStartChar, int& nEndChar) const
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_GETSEL, (WPARAM)&nStartChar, (LPARAM)&nEndChar);
}
#ifndef _WIN32_WCE
HLOCAL GetHandle() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (HLOCAL)::SendMessage(m_hWnd, EM_GETHANDLE, 0, 0L);
}
void SetHandle(HLOCAL hBuffer)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETHANDLE, (WPARAM)hBuffer, 0L);
}
#endif // !_WIN32_WCE
DWORD GetMargins() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (DWORD)::SendMessage(m_hWnd, EM_GETMARGINS, 0, 0L);
}
void GetMargins(UINT& nLeft, UINT& nRight) const
{
ATLASSERT(::IsWindow(m_hWnd));
DWORD dwRet = (DWORD)::SendMessage(m_hWnd, EM_GETMARGINS, 0, 0L);
nLeft = LOWORD(dwRet);
nRight = HIWORD(dwRet);
}
void SetMargins(UINT nLeft, UINT nRight, WORD wFlags = EC_LEFTMARGIN | EC_RIGHTMARGIN)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETMARGINS, wFlags, MAKELONG(nLeft, nRight));
}
UINT GetLimitText() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (UINT)::SendMessage(m_hWnd, EM_GETLIMITTEXT, 0, 0L);
}
void SetLimitText(UINT nMax)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETLIMITTEXT, nMax, 0L);
}
POINT PosFromChar(UINT nChar) const
{
ATLASSERT(::IsWindow(m_hWnd));
DWORD dwRet = (DWORD)::SendMessage(m_hWnd, EM_POSFROMCHAR, nChar, 0);
POINT point = { GET_X_LPARAM(dwRet), GET_Y_LPARAM(dwRet) };
return point;
}
int CharFromPos(POINT pt, int* pLine = NULL) const
{
ATLASSERT(::IsWindow(m_hWnd));
DWORD dwRet = (DWORD)::SendMessage(m_hWnd, EM_CHARFROMPOS, 0, MAKELPARAM(pt.x, pt.y));
if(pLine != NULL)
*pLine = (int)(short)HIWORD(dwRet);
return (int)(short)LOWORD(dwRet);
}
// NOTE: first word in lpszBuffer must contain the size of the buffer!
int GetLine(int nIndex, LPTSTR lpszBuffer) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer);
}
int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const
{
ATLASSERT(::IsWindow(m_hWnd));
*(LPWORD)lpszBuffer = (WORD)nMaxLength;
return (int)::SendMessage(m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer);
}
TCHAR GetPasswordChar() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (TCHAR)::SendMessage(m_hWnd, EM_GETPASSWORDCHAR, 0, 0L);
}
void SetPasswordChar(TCHAR ch)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETPASSWORDCHAR, ch, 0L);
}
#ifndef _WIN32_WCE
EDITWORDBREAKPROC GetWordBreakProc() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (EDITWORDBREAKPROC)::SendMessage(m_hWnd, EM_GETWORDBREAKPROC, 0, 0L);
}
void SetWordBreakProc(EDITWORDBREAKPROC ewbprc)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETWORDBREAKPROC, 0, (LPARAM)ewbprc);
}
#endif // !_WIN32_WCE
int GetFirstVisibleLine() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, EM_GETFIRSTVISIBLELINE, 0, 0L);
}
#ifndef _WIN32_WCE
int GetThumb() const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & ES_MULTILINE) != 0);
return (int)::SendMessage(m_hWnd, EM_GETTHUMB, 0, 0L);
}
#endif // !_WIN32_WCE
BOOL SetReadOnly(BOOL bReadOnly = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_SETREADONLY, bReadOnly, 0L);
}
#if (WINVER >= 0x0500) && !defined(_WIN32_WCE)
UINT GetImeStatus(UINT uStatus) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (UINT)::SendMessage(m_hWnd, EM_GETIMESTATUS, uStatus, 0L);
}
UINT SetImeStatus(UINT uStatus, UINT uData)
{
ATLASSERT(::IsWindow(m_hWnd));
return (UINT)::SendMessage(m_hWnd, EM_SETIMESTATUS, uStatus, uData);
}
#endif // (WINVER >= 0x0500) && !defined(_WIN32_WCE)
#if (_WIN32_WINNT >= 0x0501)
BOOL GetCueBannerText(LPCWSTR lpstrText, int cchText) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_GETCUEBANNER, (WPARAM)lpstrText, cchText);
}
// bKeepWithFocus - Vista only
BOOL SetCueBannerText(LPCWSTR lpstrText, BOOL bKeepWithFocus = FALSE)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_SETCUEBANNER, (WPARAM)bKeepWithFocus, (LPARAM)(lpstrText));
}
#endif // (_WIN32_WINNT >= 0x0501)
// Operations
void EmptyUndoBuffer()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_EMPTYUNDOBUFFER, 0, 0L);
}
BOOL FmtLines(BOOL bAddEOL)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_FMTLINES, bAddEOL, 0L);
}
void LimitText(int nChars = 0)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_LIMITTEXT, nChars, 0L);
}
int LineFromChar(int nIndex = -1) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, EM_LINEFROMCHAR, nIndex, 0L);
}
int LineIndex(int nLine = -1) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, EM_LINEINDEX, nLine, 0L);
}
int LineLength(int nLine = -1) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, EM_LINELENGTH, nLine, 0L);
}
void LineScroll(int nLines, int nChars = 0)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_LINESCROLL, nChars, nLines);
}
void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_REPLACESEL, (WPARAM) bCanUndo, (LPARAM)lpszNewText);
}
void SetRect(LPCRECT lpRect)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETRECT, 0, (LPARAM)lpRect);
}
void SetRectNP(LPCRECT lpRect)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETRECTNP, 0, (LPARAM)lpRect);
}
void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETSEL, LOWORD(dwSelection), HIWORD(dwSelection));
if(!bNoScroll)
::SendMessage(m_hWnd, EM_SCROLLCARET, 0, 0L);
}
void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll = FALSE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETSEL, nStartChar, nEndChar);
if(!bNoScroll)
::SendMessage(m_hWnd, EM_SCROLLCARET, 0, 0L);
}
void SetSelAll(BOOL bNoScroll = FALSE)
{
SetSel(0, -1, bNoScroll);
}
void SetSelNone(BOOL bNoScroll = FALSE)
{
SetSel(-1, 0, bNoScroll);
}
BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_SETTABSTOPS, nTabStops, (LPARAM)rgTabStops);
}
BOOL SetTabStops()
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_SETTABSTOPS, 0, 0L);
}
BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_SETTABSTOPS, 1, (LPARAM)(LPINT)&cxEachStop);
}
void ScrollCaret()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SCROLLCARET, 0, 0L);
}
int Scroll(int nScrollAction)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & ES_MULTILINE) != 0);
LRESULT lRet = ::SendMessage(m_hWnd, EM_SCROLL, nScrollAction, 0L);
if(!(BOOL)HIWORD(lRet))
return -1; // failed
return (int)(short)LOWORD(lRet);
}
void InsertText(int nInsertAfterChar, LPCTSTR lpstrText, BOOL bNoScroll = FALSE, BOOL bCanUndo = FALSE)
{
SetSel(nInsertAfterChar, nInsertAfterChar, bNoScroll);
ReplaceSel(lpstrText, bCanUndo);
}
void AppendText(LPCTSTR lpstrText, BOOL bNoScroll = FALSE, BOOL bCanUndo = FALSE)
{
InsertText(GetWindowTextLength(), lpstrText, bNoScroll, bCanUndo);
}
#if (_WIN32_WINNT >= 0x0501)
BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBaloonTip)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_SHOWBALLOONTIP, 0, (LPARAM)pEditBaloonTip);
}
BOOL HideBalloonTip()
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_HIDEBALLOONTIP, 0, 0L);
}
#endif // (_WIN32_WINNT >= 0x0501)
#if (_WIN32_WINNT >= 0x0600)
DWORD GetHilite() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (DWORD)::SendMessage(m_hWnd, EM_GETHILITE, 0, 0L);
}
void GetHilite(int& nStartChar, int& nEndChar) const
{
ATLASSERT(::IsWindow(m_hWnd));
DWORD dwRet = (DWORD)::SendMessage(m_hWnd, EM_GETHILITE, 0, 0L);
nStartChar = (int)(short)LOWORD(dwRet);
nEndChar = (int)(short)HIWORD(dwRet);
}
void SetHilite(int nStartChar, int nEndChar)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, EM_SETHILITE, nStartChar, nEndChar);
}
#endif // (_WIN32_WINNT >= 0x0600)
// Clipboard operations
BOOL Undo()
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, EM_UNDO, 0, 0L);
}
void Clear()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_CLEAR, 0, 0L);
}
void Copy()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_COPY, 0, 0L);
}
void Cut()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_CUT, 0, 0L);
}
void Paste()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, WM_PASTE, 0, 0L);
}
#ifdef WIN32_PLATFORM_WFSP // SmartPhone only messages
DWORD GetExtendedStyle()
{
return SendMessage(EM_GETEXTENDEDSTYLE);
}
DWORD SetExtendedStyle(DWORD dwMask, DWORD dwExStyle)
{
return SendMessage(EM_SETEXTENDEDSTYLE, (WPARAM)dwMask, (LPARAM)dwExStyle);
}
DWORD GetInputMode(BOOL bCurrentMode = TRUE)
{
return SendMessage(EM_GETINPUTMODE, 0, (LPARAM)bCurrentMode);
}
BOOL SetInputMode(DWORD dwMode)
{
return SendMessage(EM_SETINPUTMODE, 0, (LPARAM)dwMode);
}
BOOL SetSymbols(LPCTSTR szSymbols)
{
return SendMessage(EM_SETSYMBOLS, 0, (LPARAM)szSymbols);
}
BOOL ResetSymbols()
{
return SendMessage(EM_SETSYMBOLS);
}
#endif // WIN32_PLATFORM_WFSP
};
typedef CEditT<ATL::CWindow> CEdit;
///////////////////////////////////////////////////////////////////////////////
// CEditCommands - message handlers for standard EDIT commands
// Chain to CEditCommands message map. Your class must also derive from CEdit.
// Example:
// class CMyEdit : public CWindowImpl<CMyEdit, CEdit>,
// public CEditCommands<CMyEdit>
// {
// public:
// BEGIN_MSG_MAP(CMyEdit)
// // your handlers...
// CHAIN_MSG_MAP_ALT(CEditCommands<CMyEdit>, 1)
// END_MSG_MAP()
// // other stuff...
// };
template <class T>
class CEditCommands
{
public:
BEGIN_MSG_MAP(CEditCommands< T >)
ALT_MSG_MAP(1)
COMMAND_ID_HANDLER(ID_EDIT_CLEAR, OnEditClear)
COMMAND_ID_HANDLER(ID_EDIT_CLEAR_ALL, OnEditClearAll)
COMMAND_ID_HANDLER(ID_EDIT_COPY, OnEditCopy)
COMMAND_ID_HANDLER(ID_EDIT_CUT, OnEditCut)
COMMAND_ID_HANDLER(ID_EDIT_PASTE, OnEditPaste)
COMMAND_ID_HANDLER(ID_EDIT_SELECT_ALL, OnEditSelectAll)
COMMAND_ID_HANDLER(ID_EDIT_UNDO, OnEditUndo)
END_MSG_MAP()
LRESULT OnEditClear(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast<T*>(this);
pT->Clear();
return 0;
}
LRESULT OnEditClearAll(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast<T*>(this);
pT->SetSel(0, -1);
pT->Clear();
return 0;
}
LRESULT OnEditCopy(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast<T*>(this);
pT->Copy();
return 0;
}
LRESULT OnEditCut(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast<T*>(this);
pT->Cut();
return 0;
}
LRESULT OnEditPaste(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast<T*>(this);
pT->Paste();
return 0;
}
LRESULT OnEditSelectAll(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast<T*>(this);
pT->SetSel(0, -1);
return 0;
}
LRESULT OnEditUndo(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast<T*>(this);
pT->Undo();
return 0;
}
// State (update UI) helpers
BOOL CanCut() const
{ return HasSelection(); }
BOOL CanCopy() const
{ return HasSelection(); }
BOOL CanClear() const
{ return HasSelection(); }
BOOL CanSelectAll() const
{ return HasText(); }
BOOL CanFind() const
{ return HasText(); }
BOOL CanRepeat() const
{ return HasText(); }
BOOL CanReplace() const
{ return HasText(); }
BOOL CanClearAll() const
{ return HasText(); }
// Implementation
BOOL HasSelection() const
{
const T* pT = static_cast<const T*>(this);
int nMin = 0, nMax = 0;
::SendMessage(pT->m_hWnd, EM_GETSEL, (WPARAM)&nMin, (LPARAM)&nMax);
return (nMin != nMax);
}
BOOL HasText() const
{
const T* pT = static_cast<const T*>(this);
return (pT->GetWindowTextLength() > 0);
}
};
///////////////////////////////////////////////////////////////////////////////
// CScrollBar - client side for a Windows SCROLLBAR control
template <class TBase>
class CScrollBarT : public TBase
{
public:
// Constructors
CScrollBarT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CScrollBarT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return _T("SCROLLBAR");
}
#ifndef _WIN32_WCE
int GetScrollPos() const
{
ATLASSERT(::IsWindow(m_hWnd));
return ::GetScrollPos(m_hWnd, SB_CTL);
}
#endif // !_WIN32_WCE
int SetScrollPos(int nPos, BOOL bRedraw = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
return ::SetScrollPos(m_hWnd, SB_CTL, nPos, bRedraw);
}
#ifndef _WIN32_WCE
void GetScrollRange(LPINT lpMinPos, LPINT lpMaxPos) const
{
ATLASSERT(::IsWindow(m_hWnd));
::GetScrollRange(m_hWnd, SB_CTL, lpMinPos, lpMaxPos);
}
#endif // !_WIN32_WCE
void SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
::SetScrollRange(m_hWnd, SB_CTL, nMinPos, nMaxPos, bRedraw);
}
BOOL GetScrollInfo(LPSCROLLINFO lpScrollInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
return ::GetScrollInfo(m_hWnd, SB_CTL, lpScrollInfo);
}
int SetScrollInfo(LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
return ::SetScrollInfo(m_hWnd, SB_CTL, lpScrollInfo, bRedraw);
}
#ifndef _WIN32_WCE
int GetScrollLimit() const
{
SCROLLINFO info = { sizeof(SCROLLINFO), SIF_RANGE | SIF_PAGE };
::GetScrollInfo(m_hWnd, SB_CTL, &info);
if(info.nPage > 1)
info.nMax -= info.nPage - 1;
return info.nMax;
}
#if (WINVER >= 0x0500)
BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollBarInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
#if (_WIN32_WINNT >= 0x0501)
return (BOOL)::SendMessage(m_hWnd, SBM_GETSCROLLBARINFO, 0, (LPARAM)pScrollBarInfo);
#else // !(_WIN32_WINNT >= 0x0501)
return ::GetScrollBarInfo(m_hWnd, OBJID_CLIENT, pScrollBarInfo);
#endif // !(_WIN32_WINNT >= 0x0501)
}
#endif // (WINVER >= 0x0500)
// Operations
void ShowScrollBar(BOOL bShow = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
::ShowScrollBar(m_hWnd, SB_CTL, bShow);
}
BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH)
{
ATLASSERT(::IsWindow(m_hWnd));
return ::EnableScrollBar(m_hWnd, SB_CTL, nArrowFlags);
}
#endif // !_WIN32_WCE
};
typedef CScrollBarT<ATL::CWindow> CScrollBar;
// --- Windows Common Controls ---
///////////////////////////////////////////////////////////////////////////////
// CImageList
// forward declarations
template <bool t_bManaged> class CImageListT;
typedef CImageListT<false> CImageList;
typedef CImageListT<true> CImageListManaged;
template <bool t_bManaged>
class CImageListT
{
public:
// Data members
HIMAGELIST m_hImageList;
// Constructor/destructor/operators
CImageListT(HIMAGELIST hImageList = NULL) : m_hImageList(hImageList)
{ }
~CImageListT()
{
if(t_bManaged && (m_hImageList != NULL))
Destroy();
}
CImageListT<t_bManaged>& operator =(HIMAGELIST hImageList)
{
Attach(hImageList);
return *this;
}
void Attach(HIMAGELIST hImageList)
{
if(t_bManaged && (m_hImageList != NULL) && (m_hImageList != hImageList))
ImageList_Destroy(m_hImageList);
m_hImageList = hImageList;
}
HIMAGELIST Detach()
{
HIMAGELIST hImageList = m_hImageList;
m_hImageList = NULL;
return hImageList;
}
operator HIMAGELIST() const { return m_hImageList; }
bool IsNull() const { return (m_hImageList == NULL); }
// Attributes
int GetImageCount() const
{
ATLASSERT(m_hImageList != NULL);
return ImageList_GetImageCount(m_hImageList);
}
COLORREF GetBkColor() const
{
ATLASSERT(m_hImageList != NULL);
return ImageList_GetBkColor(m_hImageList);
}
COLORREF SetBkColor(COLORREF cr)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_SetBkColor(m_hImageList, cr);
}
BOOL GetImageInfo(int nImage, IMAGEINFO* pImageInfo) const
{
ATLASSERT(m_hImageList != NULL);
return ImageList_GetImageInfo(m_hImageList, nImage, pImageInfo);
}
HICON GetIcon(int nIndex, UINT uFlags = ILD_NORMAL) const
{
ATLASSERT(m_hImageList != NULL);
return ImageList_GetIcon(m_hImageList, nIndex, uFlags);
}
BOOL GetIconSize(int& cx, int& cy) const
{
ATLASSERT(m_hImageList != NULL);
return ImageList_GetIconSize(m_hImageList, &cx, &cy);
}
BOOL GetIconSize(SIZE& size) const
{
ATLASSERT(m_hImageList != NULL);
return ImageList_GetIconSize(m_hImageList, (int*)&size.cx, (int*)&size.cy);
}
BOOL SetIconSize(int cx, int cy)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_SetIconSize(m_hImageList, cx, cy);
}
BOOL SetIconSize(SIZE size)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_SetIconSize(m_hImageList, size.cx, size.cy);
}
BOOL SetImageCount(UINT uNewCount)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_SetImageCount(m_hImageList, uNewCount);
}
BOOL SetOverlayImage(int nImage, int nOverlay)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_SetOverlayImage(m_hImageList, nImage, nOverlay);
}
// Operations
BOOL Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow)
{
ATLASSERT(m_hImageList == NULL);
m_hImageList = ImageList_Create(cx, cy, nFlags, nInitial, nGrow);
return (m_hImageList != NULL) ? TRUE : FALSE;
}
BOOL Create(ATL::_U_STRINGorID bitmap, int cx, int nGrow, COLORREF crMask)
{
ATLASSERT(m_hImageList == NULL);
m_hImageList = ImageList_LoadBitmap(ModuleHelper::GetResourceInstance(), bitmap.m_lpstr, cx, nGrow, crMask);
return (m_hImageList != NULL) ? TRUE : FALSE;
}
BOOL CreateFromImage(ATL::_U_STRINGorID image, int cx, int nGrow, COLORREF crMask, UINT uType, UINT uFlags = LR_DEFAULTCOLOR | LR_DEFAULTSIZE)
{
ATLASSERT(m_hImageList == NULL);
m_hImageList = ImageList_LoadImage(ModuleHelper::GetResourceInstance(), image.m_lpstr, cx, nGrow, crMask, uType, uFlags);
return (m_hImageList != NULL) ? TRUE : FALSE;
}
BOOL Merge(HIMAGELIST hImageList1, int nImage1, HIMAGELIST hImageList2, int nImage2, int dx, int dy)
{
ATLASSERT(m_hImageList == NULL);
m_hImageList = ImageList_Merge(hImageList1, nImage1, hImageList2, nImage2, dx, dy);
return (m_hImageList != NULL) ? TRUE : FALSE;
}
#ifndef _WIN32_WCE
#ifdef __IStream_INTERFACE_DEFINED__
BOOL CreateFromStream(LPSTREAM lpStream)
{
ATLASSERT(m_hImageList == NULL);
m_hImageList = ImageList_Read(lpStream);
return (m_hImageList != NULL) ? TRUE : FALSE;
}
#endif // __IStream_INTERFACE_DEFINED__
#endif // !_WIN32_WCE
BOOL Destroy()
{
if (m_hImageList == NULL)
return FALSE;
BOOL bRet = ImageList_Destroy(m_hImageList);
if(bRet)
m_hImageList = NULL;
return bRet;
}
int Add(HBITMAP hBitmap, HBITMAP hBitmapMask = NULL)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_Add(m_hImageList, hBitmap, hBitmapMask);
}
int Add(HBITMAP hBitmap, COLORREF crMask)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_AddMasked(m_hImageList, hBitmap, crMask);
}
BOOL Remove(int nImage)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_Remove(m_hImageList, nImage);
}
BOOL RemoveAll()
{
ATLASSERT(m_hImageList != NULL);
return ImageList_RemoveAll(m_hImageList);
}
BOOL Replace(int nImage, HBITMAP hBitmap, HBITMAP hBitmapMask)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_Replace(m_hImageList, nImage, hBitmap, hBitmapMask);
}
int AddIcon(HICON hIcon)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_AddIcon(m_hImageList, hIcon);
}
int ReplaceIcon(int nImage, HICON hIcon)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_ReplaceIcon(m_hImageList, nImage, hIcon);
}
HICON ExtractIcon(int nImage)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_ExtractIcon(NULL, m_hImageList, nImage);
}
BOOL Draw(HDC hDC, int nImage, int x, int y, UINT nStyle)
{
ATLASSERT(m_hImageList != NULL);
ATLASSERT(hDC != NULL);
return ImageList_Draw(m_hImageList, nImage, hDC, x, y, nStyle);
}
BOOL Draw(HDC hDC, int nImage, POINT pt, UINT nStyle)
{
ATLASSERT(m_hImageList != NULL);
ATLASSERT(hDC != NULL);
return ImageList_Draw(m_hImageList, nImage, hDC, pt.x, pt.y, nStyle);
}
BOOL DrawEx(int nImage, HDC hDC, int x, int y, int dx, int dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle)
{
ATLASSERT(m_hImageList != NULL);
ATLASSERT(hDC != NULL);
return ImageList_DrawEx(m_hImageList, nImage, hDC, x, y, dx, dy, rgbBk, rgbFg, fStyle);
}
BOOL DrawEx(int nImage, HDC hDC, RECT& rect, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle)
{
ATLASSERT(m_hImageList != NULL);
ATLASSERT(hDC != NULL);
return ImageList_DrawEx(m_hImageList, nImage, hDC, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, rgbBk, rgbFg, fStyle);
}
static BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp)
{
return ImageList_DrawIndirect(pimldp);
}
BOOL Copy(int nSrc, int nDst, UINT uFlags = ILCF_MOVE)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_Copy(m_hImageList, nDst, m_hImageList, nSrc, uFlags);
}
#ifdef __IStream_INTERFACE_DEFINED__
#ifndef _WIN32_WCE
static HIMAGELIST Read(LPSTREAM lpStream)
{
return ImageList_Read(lpStream);
}
BOOL Write(LPSTREAM lpStream)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_Write(m_hImageList, lpStream);
}
#endif // !_WIN32_WCE
#if (_WIN32_WINNT >= 0x0501)
static HRESULT ReadEx(DWORD dwFlags, LPSTREAM lpStream, REFIID riid, PVOID* ppv)
{
return ImageList_ReadEx(dwFlags, lpStream, riid, ppv);
}
HRESULT WriteEx(DWORD dwFlags, LPSTREAM lpStream)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_WriteEx(m_hImageList, dwFlags, lpStream);
}
#endif // (_WIN32_WINNT >= 0x0501)
#endif // __IStream_INTERFACE_DEFINED__
// Drag operations
BOOL BeginDrag(int nImage, POINT ptHotSpot)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_BeginDrag(m_hImageList, nImage, ptHotSpot.x, ptHotSpot.y);
}
BOOL BeginDrag(int nImage, int xHotSpot, int yHotSpot)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_BeginDrag(m_hImageList, nImage, xHotSpot, yHotSpot);
}
static void EndDrag()
{
ImageList_EndDrag();
}
static BOOL DragMove(POINT pt)
{
return ImageList_DragMove(pt.x, pt.y);
}
static BOOL DragMove(int x, int y)
{
return ImageList_DragMove(x, y);
}
BOOL SetDragCursorImage(int nDrag, POINT ptHotSpot)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_SetDragCursorImage(m_hImageList, nDrag, ptHotSpot.x, ptHotSpot.y);
}
BOOL SetDragCursorImage(int nDrag, int xHotSpot, int yHotSpot)
{
ATLASSERT(m_hImageList != NULL);
return ImageList_SetDragCursorImage(m_hImageList, nDrag, xHotSpot, yHotSpot);
}
static BOOL DragShowNolock(BOOL bShow = TRUE)
{
return ImageList_DragShowNolock(bShow);
}
static CImageList GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot)
{
return CImageList(ImageList_GetDragImage(lpPoint, lpPointHotSpot));
}
static BOOL DragEnter(HWND hWnd, POINT point)
{
return ImageList_DragEnter(hWnd, point.x, point.y);
}
static BOOL DragEnter(HWND hWnd, int x, int y)
{
return ImageList_DragEnter(hWnd, x, y);
}
static BOOL DragLeave(HWND hWnd)
{
return ImageList_DragLeave(hWnd);
}
#if (_WIN32_IE >= 0x0400)
CImageList Duplicate() const
{
ATLASSERT(m_hImageList != NULL);
return CImageList(ImageList_Duplicate(m_hImageList));
}
static CImageList Duplicate(HIMAGELIST hImageList)
{
ATLASSERT(hImageList != NULL);
return CImageList(ImageList_Duplicate(hImageList));
}
#endif // (_WIN32_IE >= 0x0400)
};
///////////////////////////////////////////////////////////////////////////////
// CToolTipCtrl
#ifndef _WIN32_WCE
class CToolInfo : public TOOLINFO
{
public:
CToolInfo(UINT nFlags, HWND hWnd, UINT_PTR nIDTool = 0, LPRECT lpRect = NULL, LPTSTR lpstrText = LPSTR_TEXTCALLBACK, LPARAM lUserParam = NULL)
{
Init(nFlags, hWnd, nIDTool, lpRect, lpstrText, lUserParam);
}
operator LPTOOLINFO() { return this; }
operator LPARAM() { return (LPARAM)this; }
void Init(UINT nFlags, HWND hWnd, UINT_PTR nIDTool = 0, LPRECT lpRect = NULL, LPTSTR lpstrText = LPSTR_TEXTCALLBACK, LPARAM lUserParam = NULL)
{
ATLASSERT(::IsWindow(hWnd));
memset(this, 0, sizeof(TOOLINFO));
cbSize = RunTimeHelper::SizeOf_TOOLINFO();
uFlags = nFlags;
if(nIDTool == 0)
{
hwnd = ::GetParent(hWnd);
uFlags |= TTF_IDISHWND;
uId = (UINT_PTR)hWnd;
}
else
{
hwnd = hWnd;
uId = nIDTool;
}
if(lpRect != NULL)
rect = *lpRect;
hinst = ModuleHelper::GetResourceInstance();
lpszText = lpstrText;
lParam = lUserParam;
}
};
template <class TBase>
class CToolTipCtrlT : public TBase
{
public:
// Constructors
CToolTipCtrlT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CToolTipCtrlT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return TOOLTIPS_CLASS;
}
void GetText(LPTOOLINFO lpToolInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_GETTEXT, 0, (LPARAM)&lpToolInfo);
}
void GetText(LPTSTR lpstrText, HWND hWnd, UINT_PTR nIDTool = 0) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
CToolInfo ti(0, hWnd, nIDTool, NULL, lpstrText);
::SendMessage(m_hWnd, TTM_GETTEXT, 0, ti);
}
BOOL GetToolInfo(LPTOOLINFO lpToolInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_GETTOOLINFO, 0, (LPARAM)lpToolInfo);
}
BOOL GetToolInfo(HWND hWnd, UINT_PTR nIDTool, UINT* puFlags, LPRECT lpRect, LPTSTR lpstrText) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
ATLASSERT(puFlags != NULL);
ATLASSERT(lpRect != NULL);
CToolInfo ti(0, hWnd, nIDTool, NULL, lpstrText);
BOOL bRet = (BOOL)::SendMessage(m_hWnd, TTM_GETTOOLINFO, 0, ti);
if(bRet != FALSE)
{
*puFlags = ti.uFlags;
*lpRect = ti.rect;
}
return bRet;
}
void SetToolInfo(LPTOOLINFO lpToolInfo)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_SETTOOLINFO, 0, (LPARAM)lpToolInfo);
}
void SetToolRect(LPTOOLINFO lpToolInfo)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_NEWTOOLRECT, 0, (LPARAM)lpToolInfo);
}
void SetToolRect(HWND hWnd, UINT_PTR nIDTool, LPCRECT lpRect)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
ATLASSERT(nIDTool != 0);
CToolInfo ti(0, hWnd, nIDTool, (LPRECT)lpRect, NULL);
::SendMessage(m_hWnd, TTM_NEWTOOLRECT, 0, ti);
}
int GetToolCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, TTM_GETTOOLCOUNT, 0, 0L);
}
int GetDelayTime(DWORD dwType) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, TTM_GETDELAYTIME, dwType, 0L);
}
void SetDelayTime(DWORD dwType, int nTime)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_SETDELAYTIME, dwType, MAKELPARAM(nTime, 0));
}
void GetMargin(LPRECT lpRect) const
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_GETMARGIN, 0, (LPARAM)lpRect);
}
void SetMargin(LPRECT lpRect)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_SETMARGIN, 0, (LPARAM)lpRect);
}
int GetMaxTipWidth() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, TTM_GETMAXTIPWIDTH, 0, 0L);
}
int SetMaxTipWidth(int nWidth)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, TTM_SETMAXTIPWIDTH, 0, nWidth);
}
COLORREF GetTipBkColor() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (COLORREF)::SendMessage(m_hWnd, TTM_GETTIPBKCOLOR, 0, 0L);
}
void SetTipBkColor(COLORREF clr)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_SETTIPBKCOLOR, (WPARAM)clr, 0L);
}
COLORREF GetTipTextColor() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (COLORREF)::SendMessage(m_hWnd, TTM_GETTIPTEXTCOLOR, 0, 0L);
}
void SetTipTextColor(COLORREF clr)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_SETTIPTEXTCOLOR, (WPARAM)clr, 0L);
}
BOOL GetCurrentTool(LPTOOLINFO lpToolInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_GETCURRENTTOOL, 0, (LPARAM)lpToolInfo);
}
#if (_WIN32_IE >= 0x0500)
SIZE GetBubbleSize(LPTOOLINFO lpToolInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
DWORD dwRet = (DWORD)::SendMessage(m_hWnd, TTM_GETBUBBLESIZE, 0, (LPARAM)lpToolInfo);
SIZE size = { GET_X_LPARAM(dwRet), GET_Y_LPARAM(dwRet) };
return size;
}
BOOL SetTitle(UINT_PTR uIcon, LPCTSTR lpstrTitle)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_SETTITLE, uIcon, (LPARAM)lpstrTitle);
}
BOOL SetTitle(HICON hIcon, LPCTSTR lpstrTitle)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_SETTITLE, (WPARAM)hIcon, (LPARAM)lpstrTitle);
}
#endif // (_WIN32_IE >= 0x0500)
#if (_WIN32_WINNT >= 0x0501)
void GetTitle(PTTGETTITLE pTTGetTitle) const
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_GETTITLE, 0, (LPARAM)pTTGetTitle);
}
void SetWindowTheme(LPCWSTR lpstrTheme)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_SETWINDOWTHEME, 0, (LPARAM)lpstrTheme);
}
#endif // (_WIN32_WINNT >= 0x0501)
// Operations
void Activate(BOOL bActivate)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_ACTIVATE, bActivate, 0L);
}
BOOL AddTool(LPTOOLINFO lpToolInfo)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_ADDTOOL, 0, (LPARAM)lpToolInfo);
}
BOOL AddTool(HWND hWnd, ATL::_U_STRINGorID text = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
// the toolrect and toolid must both be zero or both valid
ATLASSERT((lpRectTool != NULL && nIDTool != 0) || (lpRectTool == NULL && nIDTool == 0));
CToolInfo ti(0, hWnd, nIDTool, (LPRECT)lpRectTool, (LPTSTR)text.m_lpstr);
return (BOOL)::SendMessage(m_hWnd, TTM_ADDTOOL, 0, ti);
}
void DelTool(LPTOOLINFO lpToolInfo)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_DELTOOL, 0, (LPARAM)lpToolInfo);
}
void DelTool(HWND hWnd, UINT_PTR nIDTool = 0)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
CToolInfo ti(0, hWnd, nIDTool, NULL, NULL);
::SendMessage(m_hWnd, TTM_DELTOOL, 0, ti);
}
BOOL HitTest(LPTTHITTESTINFO lpHitTestInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_HITTEST, 0, (LPARAM)lpHitTestInfo);
}
BOOL HitTest(HWND hWnd, POINT pt, LPTOOLINFO lpToolInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
ATLASSERT(lpToolInfo != NULL);
TTHITTESTINFO hti = { 0 };
hti.ti.cbSize = RunTimeHelper::SizeOf_TOOLINFO();
hti.hwnd = hWnd;
hti.pt.x = pt.x;
hti.pt.y = pt.y;
if((BOOL)::SendMessage(m_hWnd, TTM_HITTEST, 0, (LPARAM)&hti) != FALSE)
{
*lpToolInfo = hti.ti;
return TRUE;
}
return FALSE;
}
void RelayEvent(LPMSG lpMsg)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_RELAYEVENT, 0, (LPARAM)lpMsg);
}
void UpdateTipText(LPTOOLINFO lpToolInfo)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_UPDATETIPTEXT, 0, (LPARAM)lpToolInfo);
}
void UpdateTipText(ATL::_U_STRINGorID text, HWND hWnd, UINT_PTR nIDTool = 0)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
CToolInfo ti(0, hWnd, nIDTool, NULL, (LPTSTR)text.m_lpstr);
::SendMessage(m_hWnd, TTM_UPDATETIPTEXT, 0, ti);
}
BOOL EnumTools(UINT_PTR nTool, LPTOOLINFO lpToolInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_ENUMTOOLS, nTool, (LPARAM)lpToolInfo);
}
void Pop()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_POP, 0, 0L);
}
void TrackActivate(LPTOOLINFO lpToolInfo, BOOL bActivate)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_TRACKACTIVATE, bActivate, (LPARAM)lpToolInfo);
}
void TrackActivate(HWND hWnd, UINT_PTR nIDTool, BOOL bActivate)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT(hWnd != NULL);
CToolInfo ti(0, hWnd, nIDTool);
::SendMessage(m_hWnd, TTM_TRACKACTIVATE, bActivate, ti);
}
void TrackPosition(int xPos, int yPos)
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_TRACKPOSITION, 0, MAKELPARAM(xPos, yPos));
}
#if (_WIN32_IE >= 0x0400)
void Update()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_UPDATE, 0, 0L);
}
#endif // (_WIN32_IE >= 0x0400)
#if (_WIN32_IE >= 0x0500)
BOOL AdjustRect(LPRECT lpRect, BOOL bLarger /*= TRUE*/)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, TTM_ADJUSTRECT, bLarger, (LPARAM)lpRect);
}
#endif // (_WIN32_IE >= 0x0500)
#if (_WIN32_WINNT >= 0x0501)
void Popup()
{
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, TTM_POPUP, 0, 0L);
}
#endif // (_WIN32_WINNT >= 0x0501)
};
typedef CToolTipCtrlT<ATL::CWindow> CToolTipCtrl;
#endif // !_WIN32_WCE
///////////////////////////////////////////////////////////////////////////////
// CHeaderCtrl
template <class TBase>
class CHeaderCtrlT : public TBase
{
public:
// Constructors
CHeaderCtrlT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CHeaderCtrlT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return WC_HEADER;
}
int GetItemCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_GETITEMCOUNT, 0, 0L);
}
BOOL GetItem(int nIndex, LPHDITEM pHeaderItem) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_GETITEM, nIndex, (LPARAM)pHeaderItem);
}
BOOL SetItem(int nIndex, LPHDITEM pHeaderItem)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_SETITEM, nIndex, (LPARAM)pHeaderItem);
}
CImageList GetImageList() const
{
ATLASSERT(::IsWindow(m_hWnd));
return CImageList((HIMAGELIST)::SendMessage(m_hWnd, HDM_GETIMAGELIST, 0, 0L));
}
CImageList SetImageList(HIMAGELIST hImageList)
{
ATLASSERT(::IsWindow(m_hWnd));
return CImageList((HIMAGELIST)::SendMessage(m_hWnd, HDM_SETIMAGELIST, 0, (LPARAM)hImageList));
}
BOOL GetOrderArray(int nSize, int* lpnArray) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_GETORDERARRAY, nSize, (LPARAM)lpnArray);
}
BOOL SetOrderArray(int nSize, int* lpnArray)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_SETORDERARRAY, nSize, (LPARAM)lpnArray);
}
BOOL GetItemRect(int nIndex, LPRECT lpItemRect) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_GETITEMRECT, nIndex, (LPARAM)lpItemRect);
}
int SetHotDivider(BOOL bPos, DWORD dwInputValue)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_SETHOTDIVIDER, bPos, dwInputValue);
}
#if (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
BOOL GetUnicodeFormat() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_GETUNICODEFORMAT, 0, 0L);
}
BOOL SetUnicodeFormat(BOOL bUnicode = TRUE)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_SETUNICODEFORMAT, bUnicode, 0L);
}
#endif // (_WIN32_IE >= 0x0400) && !defined(_WIN32_WCE)
#if (_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE)
int GetBitmapMargin() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_GETBITMAPMARGIN, 0, 0L);
}
int SetBitmapMargin(int nWidth)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_SETBITMAPMARGIN, nWidth, 0L);
}
int SetFilterChangeTimeout(DWORD dwTimeOut)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_SETFILTERCHANGETIMEOUT, 0, dwTimeOut);
}
#endif // (_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE)
#if (_WIN32_WINNT >= 0x0600)
BOOL GetItemDropDownRect(int nIndex, LPRECT lpRect) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_GETITEMDROPDOWNRECT, nIndex, (LPARAM)lpRect);
}
BOOL GetOverflowRect(LPRECT lpRect) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_GETOVERFLOWRECT, 0, (LPARAM)lpRect);
}
int GetFocusedItem() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_GETFOCUSEDITEM, 0, 0L);
}
BOOL SetFocusedItem(int nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_SETFOCUSEDITEM, 0, nIndex);
}
#endif // (_WIN32_WINNT >= 0x0600)
// Operations
int InsertItem(int nIndex, LPHDITEM phdi)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_INSERTITEM, nIndex, (LPARAM)phdi);
}
int AddItem(LPHDITEM phdi)
{
return InsertItem(GetItemCount(), phdi);
}
BOOL DeleteItem(int nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_DELETEITEM, nIndex, 0L);
}
BOOL Layout(HD_LAYOUT* pHeaderLayout)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, HDM_LAYOUT, 0, (LPARAM)pHeaderLayout);
}
int HitTest(LPHDHITTESTINFO lpHitTestInfo) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_HITTEST, 0, (LPARAM)lpHitTestInfo);
}
int OrderToIndex(int nOrder)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_ORDERTOINDEX, nOrder, 0L);
}
CImageList CreateDragImage(int nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
return CImageList((HIMAGELIST)::SendMessage(m_hWnd, HDM_CREATEDRAGIMAGE, nIndex, 0L));
}
#if (_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE)
int EditFilter(int nColumn, BOOL bDiscardChanges)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_EDITFILTER, nColumn, MAKELPARAM(bDiscardChanges, 0));
}
int ClearFilter(int nColumn)
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_CLEARFILTER, nColumn, 0L);
}
int ClearAllFilters()
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, HDM_CLEARFILTER, (WPARAM)-1, 0L);
}
#endif // (_WIN32_IE >= 0x0500) && !defined(_WIN32_WCE)
};
typedef CHeaderCtrlT<ATL::CWindow> CHeaderCtrl;
///////////////////////////////////////////////////////////////////////////////
// CListViewCtrl
template <class TBase>
class CListViewCtrlT : public TBase
{
public:
// Constructors
CListViewCtrlT(HWND hWnd = NULL) : TBase(hWnd)
{ }
CListViewCtrlT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
HWND Create(HWND hWndParent, ATL::_U_RECT rect = NULL, LPCTSTR szWindowName = NULL,
DWORD dwStyle = 0, DWORD dwExStyle = 0,
ATL::_U_MENUorID MenuOrID = 0U, LPVOID lpCreateParam = NULL)
{
return TBase::Create(GetWndClassName(), hWndParent, rect.m_lpRect, szWindowName, dwStyle, dwExStyle, MenuOrID.m_hMenu, lpCreateParam);
}
// Attributes
static LPCTSTR GetWndClassName()
{
return WC_LISTVIEW;
}
COLORREF GetBkColor() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (COLORREF)::SendMessage(m_hWnd, LVM_GETBKCOLOR, 0, 0L);
}
BOOL SetBkColor(COLORREF cr)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, LVM_SETBKCOLOR, 0, cr);
}
CImageList GetImageList(int nImageListType) const
{
ATLASSERT(::IsWindow(m_hWnd));
return CImageList((HIMAGELIST)::SendMessage(m_hWnd, LVM_GETIMAGELIST, nImageListType, 0L));
}
CImageList SetImageList(HIMAGELIST hImageList, int nImageList)
{
ATLASSERT(::IsWindow(m_hWnd));
return CImageList((HIMAGELIST)::SendMessage(m_hWnd, LVM_SETIMAGELIST, nImageList, (LPARAM)hImageList));
}
int GetItemCount() const
{
ATLASSERT(::IsWindow(m_hWnd));
return (int)::SendMessage(m_hWnd, LVM_GETITEMCOUNT, 0, 0L);
}
BOOL SetItemCount(int nItems)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, LVM_SETITEMCOUNT, nItems, 0L);
}
BOOL GetItem(LPLVITEM pItem) const
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, LVM_GETITEM, 0, (LPARAM)pItem);
}
BOOL SetItem(const LVITEM* pItem)
{
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, LVM_SETITEM, 0, (LPARAM)pItem);
}
BOOL SetItem(int nItem, int nSubItem, UINT nMask, LPCTSTR lpszItem,
int nImage, UINT nState, UINT nStateMask, LPARAM lParam)
{
ATLASSERT(::IsWindow(m_hWnd));
LVITEM lvi = { 0 };
lvi.mask = nMask;
lvi.iItem = nItem;
lvi.iSubItem = nSubItem;
lvi.stateMask = nStateMask;
lvi.state = nState;
lvi.pszText = (LPTSTR) lpszItem;
lvi.iImage = nImage;
lvi.lParam = lParam;
return (BOOL)::SendMessage(m_hWnd, LVM_SETITEM, 0, (LPARAM)&lvi);
}
UINT GetItemState(
gitextract_1xa6jjjt/
├── .gitignore
├── LICENSE
├── Microsoft_VC++2022.sln
├── README-zh.md
├── README.md
├── WTL/
│ ├── atlapp.h
│ ├── atlcrack.h
│ ├── atlctrls.h
│ ├── atlctrlw.h
│ ├── atlctrlx.h
│ ├── atlddx.h
│ ├── atldlgs.h
│ ├── atldwm.h
│ ├── atlfind.h
│ ├── atlframe.h
│ ├── atlgdi.h
│ ├── atlmisc.h
│ ├── atlprint.h
│ ├── atlres.h
│ ├── atlresce.h
│ ├── atlribbon.h
│ ├── atlscrl.h
│ ├── atlsplit.h
│ ├── atltheme.h
│ ├── atluser.h
│ ├── atlwince.h
│ └── atlwinx.h
├── bin/
│ └── upx-4.1.0-win32/
│ ├── COPYING
│ ├── LICENSE
│ ├── NEWS
│ ├── README
│ ├── THANKS.txt
│ ├── upx-doc.html
│ ├── upx-doc.txt
│ └── upx.1
├── common/
│ ├── jsoncpp/
│ │ ├── json/
│ │ │ ├── autolink.h
│ │ │ ├── config.h
│ │ │ ├── features.h
│ │ │ ├── forwards.h
│ │ │ ├── json.h
│ │ │ ├── reader.h
│ │ │ ├── value.h
│ │ │ └── writer.h
│ │ ├── json_batchallocator.h
│ │ ├── json_valueiterator.inl
│ │ ├── reader.cpp
│ │ ├── value.cpp
│ │ └── writer.cpp
│ ├── util/
│ │ ├── base.cpp
│ │ ├── base.h
│ │ ├── def.h
│ │ ├── md5.cpp
│ │ ├── md5.h
│ │ ├── system.cpp
│ │ ├── system.h
│ │ ├── util_tools.cpp
│ │ └── util_tools.h
│ ├── xml/
│ │ ├── tinystr.cpp
│ │ ├── tinystr.h
│ │ ├── tinyxml.cpp
│ │ ├── tinyxml.h
│ │ ├── tinyxmlerror.cpp
│ │ ├── tinyxmlparser.cpp
│ │ ├── xmlhelper.cpp
│ │ └── xmlhelper.h
│ └── xzip/
│ ├── XUnzip.cpp
│ └── XUnzip.h
└── src/
├── .gitignore
├── App.vcxproj
├── App.vcxproj.filters
├── DirectUI/
│ ├── DUIButton.cpp
│ ├── DUIButton.h
│ ├── DUICheckBox.cpp
│ ├── DUICheckBox.h
│ ├── DUIDef.h
│ ├── DUIElement.cpp
│ ├── DUIElement.h
│ ├── DUIElementsMgr.cpp
│ ├── DUIElementsMgr.h
│ ├── DUIGDIResource.cpp
│ ├── DUIGDIResource.h
│ ├── DUIHyperLink.cpp
│ ├── DUIHyperLink.h
│ ├── DUILayeredEdit.cpp
│ ├── DUILayeredEdit.h
│ ├── DUIOptionLine.cpp
│ ├── DUIOptionLine.h
│ ├── DUIPanel.cpp
│ ├── DUIPanel.h
│ ├── DUIProgress.cpp
│ ├── DUIProgress.h
│ ├── DUIRadioButton.cpp
│ ├── DUIRadioButton.h
│ ├── DUIStatic.cpp
│ ├── DUIStatic.h
│ ├── DUITab.cpp
│ ├── DUITab.h
│ ├── DUITabList.cpp
│ ├── DUITabList.h
│ ├── DUITransWindow.cpp
│ ├── DUITransWindow.h
│ ├── DUITransWindowEx.cpp
│ ├── DUITransWindowEx.h
│ ├── DUIWindowStyle.cpp
│ ├── DUIWindowStyle.h
│ ├── Draw.cpp
│ ├── Draw.h
│ ├── EventHandler.h
│ ├── UpdateWindowBase.cpp
│ ├── UpdateWindowBase.h
│ ├── UpdateWindowBaseEx.cpp
│ └── UpdateWindowBaseEx.h
├── DownLoader/
│ ├── DownloadDelegate.cpp
│ ├── DownloadDelegate.h
│ ├── fetcherurl.cpp
│ ├── fetcherurl.h
│ ├── fetchfile.cpp
│ └── fetchfile.h
├── Downloader.rc
├── Event/
│ ├── WaitableEvent.cc
│ └── WaitableEvent.h
├── Global.cpp
├── Global.h
├── Language/
│ ├── Language.cpp
│ └── Language.h
├── LogAssist/
│ ├── LogAssist.cpp
│ └── LogAssist.h
├── Main.cpp
├── StdAfx.cpp
├── StdAfx.h
├── UI/
│ ├── FrameShowState.cpp
│ ├── FrameShowState.h
│ ├── UIAgreement.cpp
│ ├── UIAgreement.h
│ ├── UICannotDown.cpp
│ ├── UICannotDown.h
│ ├── UIMainWindowEx.cpp
│ ├── UIMainWindowEx.h
│ ├── UtilityWindow.cpp
│ └── UtilityWindow.h
├── Util/
│ ├── UtilApi.cpp
│ └── UtilApi.h
├── base/
│ ├── FastDelegate.h
│ ├── FastDelegateImpl.h
│ ├── MessageLoop.cc
│ ├── MessageLoop.h
│ ├── MessagePump.h
│ ├── MessagePumpDefault.cc
│ ├── MessagePumpDefault.h
│ ├── MessagePumpWin.cc
│ ├── MessagePumpWin.h
│ ├── PendingTask.cpp
│ ├── PendingTask.h
│ ├── Thread.cc
│ ├── Thread.h
│ ├── WeakPtr.cc
│ ├── WeakPtr.h
│ ├── WrapperObj.h
│ ├── aligned_memory.h
│ ├── at_exist.cc
│ ├── at_exist.h
│ ├── common_threads.cc
│ ├── common_threads.h
│ ├── lazy_instance.cc
│ ├── lazy_instance.h
│ ├── macros.h
│ ├── notification_details.h
│ ├── notification_observer.h
│ ├── notification_registrar.cc
│ ├── notification_registrar.h
│ ├── notification_service.cc
│ ├── notification_service.h
│ ├── notification_source.h
│ ├── notification_types.h
│ ├── observer_list.h
│ ├── ref_counted.cc
│ ├── ref_counted.h
│ ├── scoped_handle.h
│ ├── string_util_win.h
│ ├── stringprintf.cc
│ ├── stringprintf.h
│ ├── thread_local.cc
│ └── thread_local.h
├── base.h
├── net/
│ ├── url_fetcher.cc
│ └── url_fetcher.h
├── res/
│ └── xml/
│ ├── EngUIAgreement.xml
│ ├── EngUICannotDown.xml
│ ├── EngUIContent.xml
│ ├── EngUIMainWindow.xml
│ ├── UIAgreement.xml
│ ├── UICannotDown.xml
│ ├── UIContent.xml
│ └── UIMainWindow.xml
├── resource.h
└── time/
├── time.cc
└── time.h
Showing preview only (272K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3377 symbols across 142 files)
FILE: WTL/atlapp.h
function BOOL (line 122) | inline BOOL IsMenu(HMENU hMenu)
function MulDiv (line 136) | inline int MulDiv(IN int nNumber, IN int nNumerator, IN int nDenominator)
function namespace (line 162) | namespace ATL
function lstrlenA (line 174) | inline int WINAPI lstrlenA(LPCSTR lpszString)
function LONG_PTR (line 183) | inline LONG_PTR tmp_SetWindowLongPtrW( HWND hWnd, int nIndex, LONG_PTR d...
function LONG_PTR (line 191) | inline LONG_PTR tmp_GetWindowLongPtrW( HWND hWnd, int nIndex )
function LPTSTR (line 216) | inline LPTSTR lstrcpyn(LPTSTR lpstrDest, LPCTSTR lpstrSrc, int nLength)
function LPWSTR (line 228) | inline LPWSTR lstrcpynW(LPWSTR lpstrDest, LPCWSTR lpstrSrc, int nLength)
function LPSTR (line 235) | inline LPSTR lstrcpynA(LPSTR lpstrDest, LPCSTR lpstrSrc, int nLength)
type LONG_PTR (line 379) | typedef long LONG_PTR;
type ULONG_PTR (line 380) | typedef unsigned long ULONG_PTR;
type ULONG_PTR (line 381) | typedef ULONG_PTR DWORD_PTR;
type errno_t (line 490) | typedef int errno_t;
type _IMAGELIST (line 527) | struct _IMAGELIST { }
type _TREEITEM (line 528) | struct _TREEITEM { }
type _PSP (line 529) | struct _PSP { }
function namespace (line 545) | namespace ATL { HRESULT AtlGetCommCtrlVersion(LPDWORD pdwMajor, LPDWORD ...
function namespace (line 553) | namespace WTL
function BOOL (line 627) | inline BOOL AtlInitCommonControls(DWORD dwFlags)
function namespace (line 676) | namespace RunTimeHelper
function namespace (line 835) | namespace ModuleHelper
function namespace (line 878) | namespace SecureHelper
function namespace (line 1079) | namespace MinCrtHelper
function namespace (line 1167) | namespace GenericWndClass
function class (line 1205) | class CMessageFilter
function class (line 1215) | class CIdleHandler
type CIdleHandler (line 1223) | typedef CIdleHandler CUpdateUIObject;
function class (line 1231) | class CMessageLoop
function class (line 1368) | class CStaticDataInitCriticalSectionLock
function class (line 1399) | class CWindowCreateCriticalSectionLock
function m_p (line 1462) | CTempBuffer(size_t nElements) : m_p(NULL)
function operator (line 1473) | operator T*() const
function T (line 1484) | T* Allocate(size_t nElements)
function T (line 1490) | T* AllocateBytes(size_t nBytes)
function class (line 1514) | class CAppModule : public ATL::CComModule
function Term (line 1539) | void Term()
function BOOL (line 1547) | BOOL AddMessageLoop(CMessageLoop* pMsgLoop)
function BOOL (line 1567) | BOOL RemoveMessageLoop()
function CMessageLoop (line 1584) | CMessageLoop* GetMessageLoop(DWORD dwThreadID = ::GetCurrentThreadId()) ...
function BOOL (line 1603) | BOOL InitSettingChangeNotify(DLGPROC pfnDlgProc = _SettingChangeDlgProc)
function TermSettingChangeNotify (line 1648) | void TermSettingChangeNotify()
function BOOL (line 1666) | BOOL AddSettingChangeNotify(HWND hWnd)
function BOOL (line 1686) | BOOL RemoveSettingChangeNotify(HWND hWnd)
function DLGTEMPLATE (line 1706) | struct _ATL_EMPTY_DLGTEMPLATE : DLGTEMPLATE
function BOOL (line 1719) | static BOOL CALLBACK _SettingChangeDlgProc(HWND hWnd, UINT uMsg, WPARAM ...
function class (line 1754) | class CServerAppModule : public CAppModule
function Term (line 1770) | void Term()
function LONG (line 1779) | LONG Unlock() throw()
function MonitorShutdown (line 1793) | void MonitorShutdown()
function StartMonitor (line 1822) | bool StartMonitor()
function DWORD (line 1839) | static DWORD WINAPI MonitorProc(void* pv)
function LPCTSTR (line 1848) | static LPCTSTR FindOneOf(LPCTSTR p1, LPCTSTR p2)
function class (line 1872) | class CRegKeyEx : public ATL::CRegKey
function LONG (line 1894) | LONG SetValue(LPCTSTR pszValueName, DWORD dwType, const void* pValue, UL...
function LONG (line 1900) | LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue)
function LONG (line 1916) | LONG SetBinaryValue(LPCTSTR pszValueName, const void* pValue, ULONG nBytes)
function LONG (line 1922) | LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue)
function LONG (line 1929) | LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue)
function LONG (line 1936) | LONG SetStringValue(LPCTSTR pszValueName, LPCTSTR pszValue, DWORD dwType...
function LONG (line 1949) | LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue)
function LONG (line 1971) | LONG QueryValue(LPCTSTR pszValueName, DWORD* pdwType, void* pData, ULONG...
function LONG (line 1977) | LONG QueryGUIDValue(LPCTSTR pszValueName, GUID& guidValue)
function LONG (line 2007) | LONG QueryBinaryValue(LPCTSTR pszValueName, void* pValue, ULONG* pnBytes)
function LONG (line 2022) | LONG QueryDWORDValue(LPCTSTR pszValueName, DWORD& dwValue)
function LONG (line 2038) | LONG QueryQWORDValue(LPCTSTR pszValueName, ULONGLONG& qwValue)
function LONG (line 2054) | LONG QueryStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG* pnCh...
function LONG (line 2092) | LONG QueryMultiStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG*...
type ATL (line 2119) | typedef ATL::CRegKey CRegKeyEx;
function namespace (line 2162) | namespace ATL
FILE: WTL/atlctrls.h
function namespace (line 83) | namespace WTL
function LPCTSTR (line 127) | static LPCTSTR GetWndClassName()
function HICON (line 133) | HICON GetIcon() const
function HENHMETAFILE (line 145) | HENHMETAFILE GetEnhMetaFile() const
function HICON (line 157) | HICON GetIcon() const
function CBitmapHandle (line 170) | CBitmapHandle GetBitmap() const
type CStaticT (line 195) | typedef CStaticT<ATL::CWindow> CStatic;
function LPCTSTR (line 223) | static LPCTSTR GetWndClassName()
function UINT (line 228) | UINT GetState() const
function GetCheck (line 240) | int GetCheck() const
function UINT (line 252) | UINT GetButtonStyle() const
function HICON (line 271) | HICON SetIcon(HICON hIcon)
function CBitmapHandle (line 277) | CBitmapHandle GetBitmap() const
function BOOL (line 345) | BOOL SetSplitInfo(PBUTTON_SPLITINFO pSplitInfo)
function GetNoteLength (line 352) | int GetNoteLength() const
function BOOL (line 366) | BOOL SetNote(LPCWSTR lpstrNoteText)
function LRESULT (line 373) | LRESULT SetElevationRequiredState(BOOL bSet)
function Click (line 381) | void Click()
type CButtonT (line 388) | typedef CButtonT<ATL::CWindow> CButton;
function LPCTSTR (line 416) | static LPCTSTR GetWndClassName()
function GetCount (line 422) | int GetCount() const
function SetHorizontalExtent (line 443) | void SetHorizontalExtent(int cxExtent)
function GetTopIndex (line 449) | int GetTopIndex() const
function LCID (line 461) | LCID GetLocale() const
function DWORD (line 474) | DWORD GetListBoxInfo() const
function SetCurSel (line 493) | int SetCurSel(int nSelect)
function GetSel (line 501) | int GetSel(int nIndex) const // also works for single-selection
function GetSelItems (line 521) | int GetSelItems(int nMaxItems, LPINT rgIndex) const
function GetAnchorIndex (line 528) | int GetAnchorIndex() const
function GetCaretIndex (line 542) | int GetCaretIndex() const
function SetItemData (line 561) | int SetItemData(int nIndex, DWORD_PTR dwItemData)
function SetItemDataPtr (line 573) | int SetItemDataPtr(int nIndex, void* pData)
function GetItemRect (line 579) | int GetItemRect(int nIndex, LPRECT lpRect) const
function GetText (line 585) | int GetText(int nIndex, LPTSTR lpszBuffer) const
function BOOL (line 593) | BOOL GetTextBSTR(int nIndex, BSTR& bstrText) const
function GetText (line 618) | int GetText(int nIndex, _CSTRING_NS::CString& strText) const
function GetTextLen (line 635) | int GetTextLen(int nIndex) const
function GetItemHeight (line 641) | int GetItemHeight(int nIndex) const
function SetItemHeight (line 647) | int SetItemHeight(int nIndex, UINT cyItemHeight)
function SetColumnWidth (line 654) | void SetColumnWidth(int cxWidth)
function BOOL (line 660) | BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
function BOOL (line 667) | BOOL SetTabStops()
function BOOL (line 674) | BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
function InitStorage (line 682) | int InitStorage(int nItems, UINT nBytes)
function ResetContent (line 688) | void ResetContent()
function UINT (line 694) | UINT ItemFromPoint(POINT pt, BOOL& bOutside) const
function AddString (line 703) | int AddString(LPCTSTR lpszItem)
function DeleteString (line 709) | int DeleteString(UINT nIndex)
function InsertString (line 715) | int InsertString(int nIndex, LPCTSTR lpszItem)
function Dir (line 722) | int Dir(UINT attr, LPCTSTR lpszWildCard)
function AddFile (line 728) | int AddFile(LPCTSTR lpstrFileName)
function FindString (line 736) | int FindString(int nStartAfter, LPCTSTR lpszItem) const
function FindStringExact (line 742) | int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
function SelectString (line 748) | int SelectString(int nStartAfter, LPCTSTR lpszItem)
function SelItemRange (line 754) | int SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem)
function BOOL (line 768) | BOOL SetInputMode(DWORD dwMode)
type CListBoxT (line 775) | typedef CListBoxT<ATL::CWindow> CListBox;
function LPCTSTR (line 805) | static LPCTSTR GetWndClassName()
function GetCount (line 811) | int GetCount() const
function SetCurSel (line 823) | int SetCurSel(int nSelect)
function LCID (line 829) | LCID GetLocale() const
function GetTopIndex (line 841) | int GetTopIndex() const
function UINT (line 853) | UINT GetHorizontalExtent() const
function GetDroppedWidth (line 865) | int GetDroppedWidth() const
function BOOL (line 878) | BOOL GetComboBoxInfo(PCOMBOBOXINFO pComboBoxInfo) const
function DWORD (line 890) | DWORD GetEditSel() const
function DWORD_PTR (line 903) | DWORD_PTR GetItemData(int nIndex) const
function SetItemData (line 909) | int SetItemData(int nIndex, DWORD_PTR dwItemData)
function SetItemDataPtr (line 921) | int SetItemDataPtr(int nIndex, void* pData)
function GetLBText (line 927) | int GetLBText(int nIndex, LPTSTR lpszText) const
function BOOL (line 934) | BOOL GetLBTextBSTR(int nIndex, BSTR& bstrText) const
function GetLBText (line 958) | int GetLBText(int nIndex, _CSTRING_NS::CString& strText) const
function GetLBTextLen (line 975) | int GetLBTextLen(int nIndex) const
function GetItemHeight (line 981) | int GetItemHeight(int nIndex) const
function SetItemHeight (line 987) | int SetItemHeight(int nIndex, UINT cyItemHeight)
function BOOL (line 993) | BOOL GetExtendedUI() const
function BOOL (line 1011) | BOOL GetDroppedState() const
function BOOL (line 1024) | BOOL SetMinVisible(int nMinVisible)
function BOOL (line 1031) | BOOL GetCueBannerText(LPWSTR lpwText, int cchText) const
function BOOL (line 1041) | BOOL SetCueBannerText(LPCWSTR lpcwText)
function InitStorage (line 1052) | int InitStorage(int nItems, UINT nBytes)
function ResetContent (line 1058) | void ResetContent()
function BOOL (line 1065) | BOOL LimitText(int nMaxChars)
function AddString (line 1079) | int AddString(LPCTSTR lpszString)
function DeleteString (line 1085) | int DeleteString(UINT nIndex)
function InsertString (line 1091) | int InsertString(int nIndex, LPCTSTR lpszString)
function Dir (line 1098) | int Dir(UINT attr, LPCTSTR lpszWildCard)
function FindString (line 1106) | int FindString(int nStartAfter, LPCTSTR lpszString) const
function FindStringExact (line 1112) | int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
function SelectString (line 1118) | int SelectString(int nStartAfter, LPCTSTR lpszString)
function Clear (line 1125) | void Clear()
function Copy (line 1131) | void Copy()
function Cut (line 1137) | void Cut()
function Paste (line 1143) | void Paste()
type CComboBoxT (line 1150) | typedef CComboBoxT<ATL::CWindow> CComboBox;
function LPCTSTR (line 1179) | static LPCTSTR GetWndClassName()
function BOOL (line 1184) | BOOL CanUndo() const
function BOOL (line 1196) | BOOL GetModify() const
function DWORD (line 1214) | DWORD GetSel() const
function HLOCAL (line 1227) | HLOCAL GetHandle() const
function DWORD (line 1240) | DWORD GetMargins() const
function UINT (line 1260) | UINT GetLimitText() const
function POINT (line 1272) | POINT PosFromChar(UINT nChar) const
function GetLine (line 1290) | int GetLine(int nIndex, LPTSTR lpszBuffer) const
function GetLine (line 1296) | int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const
function TCHAR (line 1303) | TCHAR GetPasswordChar() const
function EDITWORDBREAKPROC (line 1316) | EDITWORDBREAKPROC GetWordBreakProc() const
function GetFirstVisibleLine (line 1329) | int GetFirstVisibleLine() const
function BOOL (line 1365) | BOOL GetCueBannerText(LPCWSTR lpstrText, int cchText) const
function EmptyUndoBuffer (line 1380) | void EmptyUndoBuffer()
function BOOL (line 1386) | BOOL FmtLines(BOOL bAddEOL)
function SetRect (line 1428) | void SetRect(LPCRECT lpRect)
function SetRectNP (line 1434) | void SetRectNP(LPCRECT lpRect)
function BOOL (line 1466) | BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
function BOOL (line 1472) | BOOL SetTabStops()
function BOOL (line 1478) | BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
function ScrollCaret (line 1484) | void ScrollCaret()
function Scroll (line 1490) | int Scroll(int nScrollAction)
function BOOL (line 1513) | BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBaloonTip)
function BOOL (line 1519) | BOOL HideBalloonTip()
function DWORD (line 1527) | DWORD GetHilite() const
function SetHilite (line 1541) | void SetHilite(int nStartChar, int nEndChar)
function BOOL (line 1549) | BOOL Undo()
function Clear (line 1555) | void Clear()
function Copy (line 1561) | void Copy()
function Cut (line 1567) | void Cut()
function Paste (line 1573) | void Paste()
function DWORD (line 1580) | DWORD GetExtendedStyle()
function DWORD (line 1585) | DWORD SetExtendedStyle(DWORD dwMask, DWORD dwExStyle)
function BOOL (line 1595) | BOOL SetInputMode(DWORD dwMode)
function BOOL (line 1600) | BOOL SetSymbols(LPCTSTR szSymbols)
function BOOL (line 1605) | BOOL ResetSymbols()
type CEditT (line 1612) | typedef CEditT<ATL::CWindow> CEdit;
function BOOL (line 1722) | BOOL HasSelection() const
function LPCTSTR (line 1763) | static LPCTSTR GetWndClassName()
function GetScrollPos (line 1769) | int GetScrollPos() const
function GetScrollLimit (line 1809) | int GetScrollLimit() const
type CScrollBarT (line 1846) | typedef CScrollBarT<ATL::CWindow> CScrollBar;
type CImageListT (line 1856) | typedef CImageListT<false> CImageList;
type CImageListT (line 1857) | typedef CImageListT<true> CImageListManaged;
function Attach (line 1883) | void Attach(HIMAGELIST hImageList)
function HIMAGELIST (line 1890) | HIMAGELIST Detach()
function COLORREF (line 1914) | COLORREF SetBkColor(COLORREF cr)
function BOOL (line 1920) | BOOL GetImageInfo(int nImage, IMAGEINFO* pImageInfo) const
function HICON (line 1926) | HICON GetIcon(int nIndex, UINT uFlags = ILD_NORMAL) const
function BOOL (line 1932) | BOOL GetIconSize(int& cx, int& cy) const
function BOOL (line 1938) | BOOL GetIconSize(SIZE& size) const
function BOOL (line 1944) | BOOL SetIconSize(int cx, int cy)
function BOOL (line 1950) | BOOL SetIconSize(SIZE size)
function BOOL (line 1956) | BOOL SetImageCount(UINT uNewCount)
function BOOL (line 1962) | BOOL SetOverlayImage(int nImage, int nOverlay)
function BOOL (line 1969) | BOOL Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow)
function BOOL (line 1976) | BOOL Create(ATL::_U_STRINGorID bitmap, int cx, int nGrow, COLORREF crMask)
function BOOL (line 1990) | BOOL Merge(HIMAGELIST hImageList1, int nImage1, HIMAGELIST hImageList2, ...
function BOOL (line 1999) | BOOL CreateFromStream(LPSTREAM lpStream)
function BOOL (line 2008) | BOOL Destroy()
function Add (line 2024) | int Add(HBITMAP hBitmap, COLORREF crMask)
function BOOL (line 2030) | BOOL Remove(int nImage)
function BOOL (line 2036) | BOOL RemoveAll()
function BOOL (line 2042) | BOOL Replace(int nImage, HBITMAP hBitmap, HBITMAP hBitmapMask)
function AddIcon (line 2048) | int AddIcon(HICON hIcon)
function ReplaceIcon (line 2054) | int ReplaceIcon(int nImage, HICON hIcon)
function HICON (line 2060) | HICON ExtractIcon(int nImage)
function BOOL (line 2066) | BOOL Draw(HDC hDC, int nImage, int x, int y, UINT nStyle)
function BOOL (line 2073) | BOOL Draw(HDC hDC, int nImage, POINT pt, UINT nStyle)
function BOOL (line 2080) | BOOL DrawEx(int nImage, HDC hDC, int x, int y, int dx, int dy, COLORREF ...
function BOOL (line 2087) | BOOL DrawEx(int nImage, HDC hDC, RECT& rect, COLORREF rgbBk, COLORREF rg...
function BOOL (line 2094) | static BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp)
function BOOL (line 2099) | BOOL Copy(int nSrc, int nDst, UINT uFlags = ILCF_MOVE)
function HIMAGELIST (line 2107) | static HIMAGELIST Read(LPSTREAM lpStream)
function BOOL (line 2112) | BOOL Write(LPSTREAM lpStream)
function HRESULT (line 2120) | static HRESULT ReadEx(DWORD dwFlags, LPSTREAM lpStream, REFIID riid, PVO...
function HRESULT (line 2125) | HRESULT WriteEx(DWORD dwFlags, LPSTREAM lpStream)
function BOOL (line 2134) | BOOL BeginDrag(int nImage, POINT ptHotSpot)
function BOOL (line 2140) | BOOL BeginDrag(int nImage, int xHotSpot, int yHotSpot)
function EndDrag (line 2146) | static void EndDrag()
function BOOL (line 2151) | static BOOL DragMove(POINT pt)
function BOOL (line 2156) | static BOOL DragMove(int x, int y)
function BOOL (line 2161) | BOOL SetDragCursorImage(int nDrag, POINT ptHotSpot)
function BOOL (line 2167) | BOOL SetDragCursorImage(int nDrag, int xHotSpot, int yHotSpot)
function CImageList (line 2178) | static CImageList GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot)
function BOOL (line 2183) | static BOOL DragEnter(HWND hWnd, POINT point)
function BOOL (line 2188) | static BOOL DragEnter(HWND hWnd, int x, int y)
function BOOL (line 2193) | static BOOL DragLeave(HWND hWnd)
function CImageList (line 2205) | static CImageList Duplicate(HIMAGELIST hImageList)
function class (line 2219) | class CToolInfo : public TOOLINFO
function operator (line 2227) | operator LPTOOLINFO() { return this; }
function operator (line 2229) | operator LPARAM() { return (LPARAM)this; }
function LPCTSTR (line 2278) | static LPCTSTR GetWndClassName()
function GetText (line 2283) | void GetText(LPTOOLINFO lpToolInfo) const
function BOOL (line 2297) | BOOL GetToolInfo(LPTOOLINFO lpToolInfo) const
function BOOL (line 2303) | BOOL GetToolInfo(HWND hWnd, UINT_PTR nIDTool, UINT* puFlags, LPRECT lpRe...
function SetToolInfo (line 2319) | void SetToolInfo(LPTOOLINFO lpToolInfo)
function SetToolRect (line 2325) | void SetToolRect(LPTOOLINFO lpToolInfo)
function SetToolRect (line 2331) | void SetToolRect(HWND hWnd, UINT_PTR nIDTool, LPCRECT lpRect)
function GetToolCount (line 2341) | int GetToolCount() const
function SetDelayTime (line 2353) | void SetDelayTime(DWORD dwType, int nTime)
function GetMargin (line 2359) | void GetMargin(LPRECT lpRect) const
function SetMargin (line 2365) | void SetMargin(LPRECT lpRect)
function GetMaxTipWidth (line 2371) | int GetMaxTipWidth() const
function COLORREF (line 2383) | COLORREF GetTipBkColor() const
function COLORREF (line 2395) | COLORREF GetTipTextColor() const
function BOOL (line 2407) | BOOL GetCurrentTool(LPTOOLINFO lpToolInfo) const
function SIZE (line 2414) | SIZE GetBubbleSize(LPTOOLINFO lpToolInfo) const
function BOOL (line 2422) | BOOL SetTitle(UINT_PTR uIcon, LPCTSTR lpstrTitle)
function BOOL (line 2428) | BOOL SetTitle(HICON hIcon, LPCTSTR lpstrTitle)
function GetTitle (line 2436) | void GetTitle(PTTGETTITLE pTTGetTitle) const
function SetWindowTheme (line 2442) | void SetWindowTheme(LPCWSTR lpstrTheme)
function Activate (line 2450) | void Activate(BOOL bActivate)
function BOOL (line 2456) | BOOL AddTool(LPTOOLINFO lpToolInfo)
function DelTool (line 2473) | void DelTool(LPTOOLINFO lpToolInfo)
function BOOL (line 2488) | BOOL HitTest(LPTTHITTESTINFO lpHitTestInfo) const
function BOOL (line 2494) | BOOL HitTest(HWND hWnd, POINT pt, LPTOOLINFO lpToolInfo) const
function RelayEvent (line 2513) | void RelayEvent(LPMSG lpMsg)
function UpdateTipText (line 2519) | void UpdateTipText(LPTOOLINFO lpToolInfo)
function BOOL (line 2534) | BOOL EnumTools(UINT_PTR nTool, LPTOOLINFO lpToolInfo) const
function Pop (line 2540) | void Pop()
function TrackActivate (line 2546) | void TrackActivate(LPTOOLINFO lpToolInfo, BOOL bActivate)
function TrackActivate (line 2552) | void TrackActivate(HWND hWnd, UINT_PTR nIDTool, BOOL bActivate)
function TrackPosition (line 2561) | void TrackPosition(int xPos, int yPos)
function Update (line 2568) | void Update()
function BOOL (line 2576) | BOOL AdjustRect(LPRECT lpRect, BOOL bLarger /*= TRUE*/)
function Popup (line 2584) | void Popup()
type CToolTipCtrlT (line 2592) | typedef CToolTipCtrlT<ATL::CWindow> CToolTipCtrl;
function LPCTSTR (line 2622) | static LPCTSTR GetWndClassName()
function GetItemCount (line 2627) | int GetItemCount() const
function BOOL (line 2639) | BOOL SetItem(int nIndex, LPHDITEM pHeaderItem)
function CImageList (line 2645) | CImageList GetImageList() const
function BOOL (line 2669) | BOOL GetItemRect(int nIndex, LPRECT lpItemRect) const
function SetHotDivider (line 2675) | int SetHotDivider(BOOL bPos, DWORD dwInputValue)
function BOOL (line 2682) | BOOL GetUnicodeFormat() const
function SetBitmapMargin (line 2702) | int SetBitmapMargin(int nWidth)
function SetFilterChangeTimeout (line 2708) | int SetFilterChangeTimeout(DWORD dwTimeOut)
function BOOL (line 2716) | BOOL GetItemDropDownRect(int nIndex, LPRECT lpRect) const
function BOOL (line 2722) | BOOL GetOverflowRect(LPRECT lpRect) const
function GetFocusedItem (line 2728) | int GetFocusedItem() const
function InsertItem (line 2742) | int InsertItem(int nIndex, LPHDITEM phdi)
function AddItem (line 2748) | int AddItem(LPHDITEM phdi)
function BOOL (line 2753) | BOOL DeleteItem(int nIndex)
function BOOL (line 2759) | BOOL Layout(HD_LAYOUT* pHeaderLayout)
function HitTest (line 2765) | int HitTest(LPHDHITTESTINFO lpHitTestInfo) const
function OrderToIndex (line 2771) | int OrderToIndex(int nOrder)
function CImageList (line 2777) | CImageList CreateDragImage(int nIndex)
function EditFilter (line 2784) | int EditFilter(int nColumn, BOOL bDiscardChanges)
function ClearFilter (line 2790) | int ClearFilter(int nColumn)
function ClearAllFilters (line 2796) | int ClearAllFilters()
type CHeaderCtrlT (line 2804) | typedef CHeaderCtrlT<ATL::CWindow> CHeaderCtrl;
function LPCTSTR (line 2832) | static LPCTSTR GetWndClassName()
function COLORREF (line 2837) | COLORREF GetBkColor() const
function CImageList (line 2849) | CImageList GetImageList(int nImageListType) const
function CImageList (line 2855) | CImageList SetImageList(HIMAGELIST hImageList, int nImageList)
function GetItemCount (line 2861) | int GetItemCount() const
function BOOL (line 2873) | BOOL GetItem(LPLVITEM pItem) const
function BOOL (line 2879) | BOOL SetItem(const LVITEM* pItem)
function BOOL (line 2885) | BOOL SetItem(int nItem, int nSubItem, UINT nMask, LPCTSTR lpszItem,
function UINT (line 2901) | UINT GetItemState(int nItem, UINT nMask) const
function BOOL (line 2907) | BOOL SetItemState(int nItem, UINT nState, UINT nStateMask)
function BOOL (line 2916) | BOOL SetItemState(int nItem, LPLVITEM pItem)
function BOOL (line 2923) | BOOL GetItemText(int nItem, int nSubItem, BSTR& bstrText) const
function GetItemText (line 2960) | int GetItemText(int nItem, int nSubItem, _CSTRING_NS::CString& strText) ...
function GetItemText (line 2986) | int GetItemText(int nItem, int nSubItem, LPTSTR lpszText, int nLen) const
function BOOL (line 2996) | BOOL SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
function DWORD_PTR (line 3002) | DWORD_PTR GetItemData(int nItem) const
function BOOL (line 3012) | BOOL SetItemData(int nItem, DWORD_PTR dwData)
function UINT (line 3018) | UINT GetCallbackMask() const
function BOOL (line 3030) | BOOL GetItemPosition(int nItem, LPPOINT lpPoint) const
function BOOL (line 3036) | BOOL SetItemPosition(int nItem, POINT pt)
function BOOL (line 3043) | BOOL SetItemPosition(int nItem, int x, int y)
function GetStringWidth (line 3051) | int GetStringWidth(LPCTSTR lpsz) const
function CEdit (line 3057) | CEdit GetEditControl() const
function GetColumnWidth (line 3075) | int GetColumnWidth(int nCol) const
function BOOL (line 3081) | BOOL SetColumnWidth(int nCol, int cx)
function BOOL (line 3087) | BOOL GetViewRect(LPRECT lpRect) const
function COLORREF (line 3093) | COLORREF GetTextColor() const
function COLORREF (line 3105) | COLORREF GetTextBkColor() const
function GetTopIndex (line 3117) | int GetTopIndex() const
function BOOL (line 3129) | BOOL GetOrigin(LPPOINT lpPoint) const
function UINT (line 3135) | UINT GetSelectedCount() const
function HCURSOR (line 3149) | HCURSOR GetHotCursor() const
function GetHotItem (line 3161) | int GetHotItem() const
function BOOL (line 3174) | BOOL GetColumnOrderArray(int nCount, int* lpnArray) const
function BOOL (line 3180) | BOOL SetColumnOrderArray(int nCount, int* lpnArray)
function CHeaderCtrl (line 3186) | CHeaderCtrl GetHeader() const
function GetISearchString (line 3209) | int GetISearchString(LPTSTR lpstr) const
function SetItemSpacing (line 3224) | void SetItemSpacing(INT cySpacing)
function GetSelectedIndex (line 3232) | int GetSelectedIndex() const
function DWORD (line 3251) | DWORD GetExtendedListViewStyle() const
function BOOL (line 3273) | BOOL SetCheckState(int nItem, BOOL bCheck)
function DWORD (line 3280) | DWORD GetViewType() const
function BOOL (line 3298) | BOOL GetBkImage(LPLVBKIMAGE plvbki) const
function BOOL (line 3304) | BOOL SetBkImage(LPLVBKIMAGE plvbki)
function GetSelectionMark (line 3311) | int GetSelectionMark() const
function BOOL (line 3324) | BOOL GetWorkAreas(int nWorkAreas, LPRECT lpRect) const
function BOOL (line 3330) | BOOL SetWorkAreas(int nWorkAreas, LPRECT lpRect)
function DWORD (line 3336) | DWORD GetHoverTime() const
function BOOL (line 3350) | BOOL GetNumberOfWorkAreas(int* pnWorkAreas) const
function BOOL (line 3357) | BOOL SetItemCountEx(int nItems, DWORD dwFlags)
function CToolTipCtrl (line 3365) | CToolTipCtrl GetToolTips() const
function SetSelectedColumn (line 3398) | void SetSelectedColumn(int nColumn)
function DWORD (line 3404) | DWORD GetView() const
function BOOL (line 3416) | BOOL IsGroupViewEnabled() const
function SetGroupInfo (line 3428) | int SetGroupInfo(int nGroupID, PLVGROUP pGroup)
function GetGroupMetrics (line 3434) | void GetGroupMetrics(PLVGROUPMETRICS pGroupMetrics) const
function SetGroupMetrics (line 3440) | void SetGroupMetrics(PLVGROUPMETRICS pGroupMetrics)
function GetTileViewInfo (line 3446) | void GetTileViewInfo(PLVTILEVIEWINFO pTileViewInfo) const
function BOOL (line 3452) | BOOL SetTileViewInfo(PLVTILEVIEWINFO pTileViewInfo)
function GetTileInfo (line 3458) | void GetTileInfo(PLVTILEINFO pTileInfo) const
function BOOL (line 3464) | BOOL SetTileInfo(PLVTILEINFO pTileInfo)
function BOOL (line 3470) | BOOL GetInsertMark(LPLVINSERTMARK pInsertMark) const
function BOOL (line 3476) | BOOL SetInsertMark(LPLVINSERTMARK pInsertMark)
function GetInsertMarkRect (line 3482) | int GetInsertMarkRect(LPRECT lpRect) const
function COLORREF (line 3488) | COLORREF GetInsertMarkColor() const
function COLORREF (line 3500) | COLORREF GetOutlineColor() const
function GetGroupCount (line 3514) | int GetGroupCount() const
function BOOL (line 3526) | BOOL GetGroupRect(int nGroupID, int nType, LPRECT lpRect) const
function UINT (line 3535) | UINT GetGroupState(int nGroupID, UINT uMask) const
function GetFocusedGroup (line 3541) | int GetFocusedGroup() const
function BOOL (line 3553) | BOOL GetFooterRect(LPRECT lpRect) const
function BOOL (line 3559) | BOOL GetFooterInfo(LPLVFOOTERINFO lpFooterInfo) const
function BOOL (line 3565) | BOOL GetFooterItemRect(int nItem, LPRECT lpRect) const
function BOOL (line 3571) | BOOL GetFooterItem(int nItem, LPLVFOOTERITEM lpFooterItem) const
function BOOL (line 3577) | BOOL GetItemIndexRect(PLVITEMINDEX pItemIndex, int nSubItem, int nType, ...
function BOOL (line 3590) | BOOL SetItemIndexState(PLVITEMINDEX pItemIndex, UINT uState, UINT dwMask)
function BOOL (line 3599) | BOOL GetNextItemIndex(PLVITEMINDEX pItemIndex, WORD wFlags) const
function InsertColumn (line 3607) | int InsertColumn(int nCol, const LVCOLUMN* pColumn)
function BOOL (line 3643) | BOOL DeleteColumn(int nCol)
function InsertItem (line 3649) | int InsertItem(UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UIN...
function InsertItem (line 3664) | int InsertItem(const LVITEM* pItem)
function InsertItem (line 3670) | int InsertItem(int nItem, LPCTSTR lpszItem)
function InsertItem (line 3676) | int InsertItem(int nItem, LPCTSTR lpszItem, int nImage)
function GetNextItem (line 3682) | int GetNextItem(int nItem, int nFlags) const
function BOOL (line 3688) | BOOL DeleteItem(int nItem)
function BOOL (line 3694) | BOOL DeleteAllItems()
function HitTest (line 3715) | int HitTest(LVHITTESTINFO* pHitTestInfo) const
function HitTest (line 3721) | int HitTest(POINT pt, UINT* pFlags) const
function BOOL (line 3732) | BOOL EnsureVisible(int nItem, BOOL bPartialOK)
function BOOL (line 3738) | BOOL Scroll(SIZE size)
function BOOL (line 3744) | BOOL RedrawItems(int nFirst, int nLast)
function BOOL (line 3750) | BOOL Arrange(UINT nCode)
function CEdit (line 3756) | CEdit EditLabel(int nItem)
function BOOL (line 3762) | BOOL Update(int nItem)
function BOOL (line 3768) | BOOL SortItems(PFNLVCOMPARE pfnCompare, LPARAM lParamSort)
function CImageList (line 3774) | CImageList RemoveImageList(int nImageList)
function CImageList (line 3780) | CImageList CreateDragImage(int nItem, LPPOINT lpPoint)
function SubItemHitTest (line 3792) | int SubItemHitTest(LPLVHITTESTINFO lpInfo) const
function BOOL (line 3833) | BOOL SortItemsEx(PFNLVCOMPARE pfnCompare, LPARAM lParamSort)
function InsertGroup (line 3841) | int InsertGroup(int nItem, PLVGROUP pGroup)
function AddGroup (line 3847) | int AddGroup(PLVGROUP pGroup)
function RemoveGroup (line 3852) | int RemoveGroup(int nGroupID)
function MoveGroup (line 3858) | void MoveGroup(int nGroupID, int nItem)
function MoveItemToGroup (line 3864) | void MoveItemToGroup(int nItem, int nGroupID)
function EnableGroupView (line 3870) | int EnableGroupView(BOOL bEnable)
function InsertGroupSorted (line 3882) | void InsertGroupSorted(PLVINSERTGROUPSORTED pInsertGroupSorted)
function RemoveAllGroups (line 3888) | void RemoveAllGroups()
function BOOL (line 3894) | BOOL HasGroup(int nGroupID)
function BOOL (line 3900) | BOOL InsertMarkHitTest(LPPOINT lpPoint, LPLVINSERTMARK pInsertMark) const
function BOOL (line 3906) | BOOL SetInfoTip(PLVSETINFOTIP pSetInfoTip)
function CancelEditLabel (line 3912) | void CancelEditLabel()
function UINT (line 3918) | UINT MapIndexToID(int nIndex) const
function MapIDToIndex (line 3924) | int MapIDToIndex(UINT uID) const
function HitTestEx (line 3932) | int HitTestEx(LPLVHITTESTINFO lpHitTestInfo) const
function HitTestEx (line 3938) | int HitTestEx(POINT pt, UINT* pFlags) const
function SubItemHitTestEx (line 3949) | int SubItemHitTestEx(LPLVHITTESTINFO lpHitTestInfo) const
function BOOL (line 3957) | BOOL SelectItem(int nIndex)
type CListViewCtrlT (line 3973) | typedef CListViewCtrlT<ATL::CWindow> CListViewCtrl;
function LPCTSTR (line 4001) | static LPCTSTR GetWndClassName()
function UINT (line 4006) | UINT GetCount() const
function SetIndent (line 4018) | void SetIndent(UINT nIndent)
function CImageList (line 4024) | CImageList GetImageList(int nImageListType = TVSIL_NORMAL) const
function CImageList (line 4030) | CImageList SetImageList(HIMAGELIST hImageList, int nImageListType = TVSI...
function BOOL (line 4036) | BOOL GetItem(LPTVITEM pItem) const
function BOOL (line 4042) | BOOL SetItem(LPTVITEM pItem)
function BOOL (line 4048) | BOOL SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR lpszItem, int nImage,
function BOOL (line 4064) | BOOL GetItemText(HTREEITEM hItem, LPTSTR lpstrText, int nLen) const
function BOOL (line 4079) | BOOL GetItemText(HTREEITEM hItem, BSTR& bstrText) const
function BOOL (line 4117) | BOOL GetItemText(HTREEITEM hItem, _CSTRING_NS::CString& strText) const
function BOOL (line 4144) | BOOL SetItemText(HTREEITEM hItem, LPCTSTR lpszItem)
function BOOL (line 4150) | BOOL GetItemImage(HTREEITEM hItem, int& nImage, int& nSelectedImage) const
function BOOL (line 4165) | BOOL SetItemImage(HTREEITEM hItem, int nImage, int nSelectedImage)
function UINT (line 4171) | UINT GetItemState(HTREEITEM hItem, UINT nStateMask) const
function BOOL (line 4187) | BOOL SetItemState(HTREEITEM hItem, UINT nState, UINT nStateMask)
function DWORD_PTR (line 4193) | DWORD_PTR GetItemData(HTREEITEM hItem) const
function BOOL (line 4203) | BOOL SetItemData(HTREEITEM hItem, DWORD_PTR dwData)
function CEdit (line 4209) | CEdit GetEditControl() const
function BOOL (line 4228) | BOOL ItemHasChildren(HTREEITEM hItem) const
function CToolTipCtrl (line 4239) | CToolTipCtrl GetToolTips() const
function BOOL (line 4259) | BOOL GetCheckState(HTREEITEM hItem) const
function BOOL (line 4267) | BOOL SetCheckState(HTREEITEM hItem, BOOL bCheck)
function COLORREF (line 4274) | COLORREF GetBkColor() const
function COLORREF (line 4286) | COLORREF GetInsertMarkColor() const
function GetItemHeight (line 4298) | int GetItemHeight() const
function GetScrollTime (line 4310) | int GetScrollTime() const
function COLORREF (line 4322) | COLORREF GetTextColor() const
function BOOL (line 4334) | BOOL GetUnicodeFormat() const
function BOOL (line 4362) | BOOL GetItem(LPTVITEMEX pItem) const
function BOOL (line 4368) | BOOL SetItem(LPTVITEMEX pItem)
function DWORD (line 4384) | DWORD SetExtendedStyle(DWORD dwStyle, DWORD dwMask)
function BOOL (line 4394) | BOOL SetAutoScrollInfo(UINT uPixPerSec, UINT uUpdateTime)
function DWORD (line 4400) | DWORD GetSelectedCount() const
function HTREEITEM (line 4415) | HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct)
function HTREEITEM (line 4421) | HTREEITEM InsertItem(LPCTSTR lpszItem, int nImage,
function HTREEITEM (line 4428) | HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent, HTREEITEM hIns...
function HTREEITEM (line 4434) | HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,
function BOOL (line 4452) | BOOL DeleteItem(HTREEITEM hItem)
function BOOL (line 4458) | BOOL DeleteAllItems()
function BOOL (line 4464) | BOOL Expand(HTREEITEM hItem, UINT nCode = TVE_EXPAND)
function HTREEITEM (line 4470) | HTREEITEM GetNextItem(HTREEITEM hItem, UINT nCode) const
function HTREEITEM (line 4476) | HTREEITEM GetChildItem(HTREEITEM hItem) const
function HTREEITEM (line 4482) | HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const
function HTREEITEM (line 4488) | HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const
function HTREEITEM (line 4494) | HTREEITEM GetParentItem(HTREEITEM hItem) const
function HTREEITEM (line 4500) | HTREEITEM GetFirstVisibleItem() const
function HTREEITEM (line 4512) | HTREEITEM GetPrevVisibleItem(HTREEITEM hItem) const
function HTREEITEM (line 4518) | HTREEITEM GetSelectedItem() const
function BOOL (line 4555) | BOOL Select(HTREEITEM hItem, UINT nCode)
function BOOL (line 4561) | BOOL SelectItem(HTREEITEM hItem)
function BOOL (line 4567) | BOOL SelectDropTarget(HTREEITEM hItem)
function BOOL (line 4573) | BOOL SelectSetFirstVisible(HTREEITEM hItem)
function CEdit (line 4579) | CEdit EditLabel(HTREEITEM hItem)
function BOOL (line 4585) | BOOL EndEditLabelNow(BOOL bCancel)
function HTREEITEM (line 4591) | HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const
function HTREEITEM (line 4597) | HTREEITEM HitTest(POINT pt, UINT* pFlags) const
function BOOL (line 4614) | BOOL EnsureVisible(HTREEITEM hItem)
function CImageList (line 4626) | CImageList RemoveImageList(int nImageList)
function CImageList (line 4632) | CImageList CreateDragImage(HTREEITEM hItem)
function BOOL (line 4639) | BOOL SetInsertMark(HTREEITEM hTreeItem, BOOL bAfter)
function BOOL (line 4645) | BOOL RemoveInsertMark()
function HTREEITEM (line 4653) | HTREEITEM MapAccIDToHTREEITEM(UINT uID) const
function UINT (line 4659) | UINT MapHTREEITEMToAccID(HTREEITEM hTreeItem) const
function ShowInfoTip (line 4667) | void ShowInfoTip(HTREEITEM hItem)
type CTreeViewCtrlT (line 4675) | typedef CTreeViewCtrlT<ATL::CWindow> CTreeViewCtrl;
function operator (line 4701) | operator HTREEITEM() { return m_hTreeItem; }
function DWORD_PTR (line 4730) | DWORD_PTR GetData() const;
function BOOL (line 4767) | BOOL HasChildren() const;
type CTreeViewCtrlExT (line 4975) | typedef CTreeViewCtrlExT<ATL::CWindow> CTreeViewCtrlEx;
function LPCTSTR (line 5331) | static LPCTSTR GetWndClassName()
function BOOL (line 5336) | BOOL IsButtonEnabled(int nID) const
function BOOL (line 5342) | BOOL IsButtonChecked(int nID) const
function BOOL (line 5348) | BOOL IsButtonPressed(int nID) const
function BOOL (line 5354) | BOOL IsButtonHidden(int nID) const
function BOOL (line 5360) | BOOL IsButtonIndeterminate(int nID) const
function GetState (line 5366) | int GetState(int nID) const
function BOOL (line 5372) | BOOL SetState(int nID, UINT nState)
function BOOL (line 5378) | BOOL GetButton(int nIndex, LPTBBUTTON lpButton) const
function GetButtonCount (line 5384) | int GetButtonCount() const
function BOOL (line 5402) | BOOL SetButtonSize(SIZE size)
function BOOL (line 5408) | BOOL SetButtonSize(int cx, int cy)
function BOOL (line 5414) | BOOL SetBitmapSize(SIZE size)
function BOOL (line 5420) | BOOL SetBitmapSize(int cx, int cy)
function CToolTipCtrl (line 5427) | CToolTipCtrl GetToolTips() const
function SetNotifyWnd (line 5440) | void SetNotifyWnd(HWND hWnd)
function GetRows (line 5446) | int GetRows() const
function BOOL (line 5458) | BOOL SetCmdID(int nIndex, UINT nID)
function DWORD (line 5464) | DWORD GetBitmapFlags() const
function GetButtonText (line 5476) | int GetButtonText(int nID, LPTSTR lpstrText) const
function DWORD (line 5526) | DWORD GetStyle() const
function DWORD (line 5538) | DWORD GetButtonSize() const
function BOOL (line 5552) | BOOL GetRect(int nID, LPRECT lpRect) const
function GetTextRows (line 5558) | int GetTextRows() const
function BOOL (line 5570) | BOOL SetIndent(int nIndent)
function BOOL (line 5576) | BOOL SetMaxTextRows(int nMaxTextRows)
function BOOL (line 5584) | BOOL GetAnchorHighlight() const
function BOOL (line 5603) | BOOL SetButtonInfo(int nID, LPTBBUTTONINFO lptbbi)
function BOOL (line 5609) | BOOL SetButtonInfo(int nID, DWORD dwMask, BYTE Style, BYTE State, LPCTST...
function GetHotItem (line 5627) | int GetHotItem() const
function BOOL (line 5640) | BOOL IsButtonHighlighted(int nButtonID) const
function DWORD (line 5646) | DWORD SetDrawTextFlags(DWORD dwMask, DWORD dwFlags)
function BOOL (line 5653) | BOOL GetColorScheme(LPCOLORSCHEME lpcs) const
function SetColorScheme (line 5659) | void SetColorScheme(LPCOLORSCHEME lpcs)
function DWORD (line 5665) | DWORD GetExtendedStyle() const
function GetInsertMark (line 5677) | void GetInsertMark(LPTBINSERTMARK lptbim) const
function SetInsertMark (line 5683) | void SetInsertMark(LPTBINSERTMARK lptbim)
function COLORREF (line 5689) | COLORREF GetInsertMarkColor() const
function BOOL (line 5701) | BOOL GetMaxSize(LPSIZE lpSize) const
function GetPadding (line 5707) | void GetPadding(LPSIZE lpSizePadding) const
function GetString (line 5742) | int GetString(int nString, LPTSTR lpstrString, int cchMaxLen) const
function GetStringBSTR (line 5748) | int GetStringBSTR(int nString, BSTR& bstrString) const
function GetString (line 5774) | int GetString(int nString, _CSTRING_NS::CString& str) const
function GetMetrics (line 5793) | void GetMetrics(LPTBMETRICS lptbm) const
function SetMetrics (line 5799) | void SetMetrics(LPTBMETRICS lptbm)
function SetWindowTheme (line 5805) | void SetWindowTheme(LPCWSTR lpstrTheme)
function GetItemDropDownRect (line 5825) | void GetItemDropDownRect(int nIndex, LPRECT lpRect) const
function AddBitmap (line 5868) | int AddBitmap(int nNumButtons, UINT nBitmapID)
function AddBitmap (line 5878) | int AddBitmap(int nNumButtons, HBITMAP hBitmap)
function BOOL (line 5887) | BOOL AddButtons(int nNumButtons, LPTBBUTTON lpButtons)
function BOOL (line 5893) | BOOL InsertButton(int nIndex, LPTBBUTTON lpButton)
function BOOL (line 5899) | BOOL InsertButton(int nIndex, int iCommand, BYTE Style, BYTE State, int ...
function BOOL (line 5913) | BOOL InsertButton(int nIndex, int iCommand, BYTE Style, BYTE State, int ...
function BOOL (line 5919) | BOOL AddButton(LPTBBUTTON lpButton)
function BOOL (line 5924) | BOOL AddButton(int iCommand, BYTE Style, BYTE State, int iBitmap, INT_PT...
function BOOL (line 5929) | BOOL AddButton(int iCommand, BYTE Style, BYTE State, int iBitmap, LPCTST...
function BOOL (line 5934) | BOOL DeleteButton(int nIndex)
function CommandToIndex (line 5950) | int CommandToIndex(UINT nID) const
function SaveState (line 5957) | void SaveState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName)
function RestoreState (line 5967) | void RestoreState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName)
function Customize (line 5977) | void Customize()
function AddString (line 5984) | int AddString(UINT nStringID)
function AddStrings (line 5990) | int AddStrings(LPCTSTR lpszStrings)
function AutoSize (line 5996) | void AutoSize()
function BOOL (line 6002) | BOOL ChangeBitmap(int nID, int nBitmap)
function LoadImages (line 6008) | int LoadImages(int nBitmapID)
function LoadStdImages (line 6014) | int LoadStdImages(int nBitmapID)
function BOOL (line 6020) | BOOL ReplaceBitmap(LPTBREPLACEBITMAP ptbrb)
function HitTest (line 6027) | int HitTest(LPPOINT lpPoint) const
function BOOL (line 6034) | BOOL InsertMarkHitTest(LPPOINT lpPoint, LPTBINSERTMARK lptbim) const
function BOOL (line 6040) | BOOL InsertMarkHitTest(int x, int y, LPTBINSERTMARK lptbim) const
function BOOL (line 6047) | BOOL MapAccelerator(TCHAR chAccel, int& nID) const
function BOOL (line 6059) | BOOL MoveButton(int nOldPos, int nNewPos)
function HRESULT (line 6065) | HRESULT GetObject(REFIID iid, LPVOID* ppvObject)
type CToolBarCtrlT (line 6074) | typedef CToolBarCtrlT<ATL::CWindow> CToolBarCtrl;
function LPCTSTR (line 6102) | static LPCTSTR GetWndClassName()
function GetParts (line 6107) | int GetParts(int nParts, int* pParts) const
function BOOL (line 6113) | BOOL SetParts(int nParts, int* pWidths)
function BOOL (line 6186) | BOOL GetRect(int nPane, LPRECT lpRect) const
function BOOL (line 6193) | BOOL GetBorders(int* pBorders) const
function BOOL (line 6199) | BOOL GetBorders(int& nHorz, int& nVert, int& nSpacing) const
function SetMinHeight (line 6213) | void SetMinHeight(int nMin)
function BOOL (line 6232) | BOOL GetUnicodeFormat() const
function SetTipText (line 6251) | void SetTipText(int nPane, LPCTSTR lpstrText)
function COLORREF (line 6260) | COLORREF SetBkColor(COLORREF clrBk)
function HICON (line 6266) | HICON GetIcon(int nPane) const
function BOOL (line 6273) | BOOL SetIcon(int nPane, HICON hIcon)
type CStatusBarCtrlT (line 6282) | typedef CStatusBarCtrlT<ATL::CWindow> CStatusBarCtrl;
function LPCTSTR (line 6310) | static LPCTSTR GetWndClassName()
function CImageList (line 6315) | CImageList GetImageList() const
function BOOL (line 6333) | BOOL GetItem(int nItem, LPTCITEM pTabCtrlItem) const
function BOOL (line 6339) | BOOL SetItem(int nItem, LPTCITEM pTabCtrlItem)
function SetItem (line 6345) | int SetItem(int nItem, UINT mask, LPCTSTR lpszItem, DWORD dwState, DWORD...
function BOOL (line 6358) | BOOL GetItemRect(int nItem, LPRECT lpRect) const
function GetCurSel (line 6364) | int GetCurSel() const
function SIZE (line 6376) | SIZE SetItemSize(SIZE size)
function SetItemSize (line 6384) | void SetItemSize(int cx, int cy)
function SetPadding (line 6390) | void SetPadding(SIZE size)
function GetRowCount (line 6396) | int GetRowCount() const
function SetTooltips (line 6419) | void SetTooltips(HWND hWndToolTip) { SetToolTips(hWndToolTip); }
function GetCurFocus (line 6423) | int GetCurFocus() const
function BOOL (line 6435) | BOOL SetItemExtra(int cbExtra)
function DWORD (line 6449) | DWORD GetExtendedStyle() const
function BOOL (line 6462) | BOOL GetUnicodeFormat() const
function InsertItem (line 6483) | int InsertItem(int nItem, UINT mask, LPCTSTR lpszItem, int iImage, LPARA...
function InsertItem (line 6494) | int InsertItem(int nItem, LPCTSTR lpszItem)
function AddItem (line 6503) | int AddItem(LPTCITEM pTabCtrlItem)
function AddItem (line 6508) | int AddItem(UINT mask, LPCTSTR lpszItem, int iImage, LPARAM lParam)
function AddItem (line 6513) | int AddItem(LPCTSTR lpszItem)
function BOOL (line 6518) | BOOL DeleteItem(int nItem)
function BOOL (line 6524) | BOOL DeleteAllItems()
function AdjustRect (line 6530) | void AdjustRect(BOOL bLarger, LPRECT lpRect)
function RemoveImage (line 6536) | void RemoveImage(int nImage)
function HitTest (line 6542) | int HitTest(TC_HITTESTINFO* pHitTestInfo) const
type CTabCtrlT (line 6563) | typedef CTabCtrlT<ATL::CWindow> CTabCtrl;
function LPCTSTR (line 6591) | static LPCTSTR GetWndClassName()
function GetLineSize (line 6596) | int GetLineSize() const
function GetPageSize (line 6608) | int GetPageSize() const
function GetRangeMin (line 6620) | int GetRangeMin() const
function GetRange (line 6644) | void GetRange(int& nMin, int& nMax) const
function GetSelStart (line 6656) | int GetSelStart() const
function GetSelection (line 6680) | void GetSelection(int& nMin, int& nMax) const
function GetChannelRect (line 6692) | void GetChannelRect(LPRECT lprc) const
function GetThumbRect (line 6698) | void GetThumbRect(LPRECT lprc) const
function GetPos (line 6704) | int GetPos() const
function UINT (line 6716) | UINT GetNumTics() const
function GetTic (line 6728) | int GetTic(int nTic) const
function BOOL (line 6734) | BOOL SetTic(int nTic)
function GetTicPos (line 6740) | int GetTicPos(int nTic) const
function SetTicFreq (line 6746) | void SetTicFreq(int nFreq)
function GetThumbLength (line 6752) | int GetThumbLength() const
function CToolTipCtrl (line 6784) | CToolTipCtrl GetToolTips() const
function SetTipSide (line 6796) | int SetTipSide(int nSide)
function BOOL (line 6804) | BOOL GetUnicodeFormat() const
type CTrackBarCtrlT (line 6837) | typedef CTrackBarCtrlT<ATL::CWindow> CTrackBarCtrl;
function LPCTSTR (line 6865) | static LPCTSTR GetWndClassName()
function UINT (line 6870) | UINT GetAccel(int nAccel, UDACCEL* pAccel) const
function BOOL (line 6876) | BOOL SetAccel(int nAccel, UDACCEL* pAccel)
function UINT (line 6882) | UINT GetBase() const
function SetPos (line 6917) | int SetPos(int nPos)
function DWORD (line 6923) | DWORD GetRange() const
function SetRange (line 6937) | void SetRange(int nLower, int nUpper)
function SetRange32 (line 6944) | void SetRange32(int nLower, int nUpper)
function GetRange32 (line 6950) | void GetRange32(int& nLower, int& nUpper) const
function BOOL (line 6957) | BOOL GetUnicodeFormat() const
function SetPos32 (line 6980) | int SetPos32(int nPos)
type CUpDownCtrlT (line 6988) | typedef CUpDownCtrlT<ATL::CWindow> CUpDownCtrl;
function LPCTSTR (line 7016) | static LPCTSTR GetWndClassName()
function DWORD (line 7021) | DWORD SetRange(int nLower, int nUpper)
function SetPos (line 7027) | int SetPos(int nPos)
function OffsetPos (line 7033) | int OffsetPos(int nPos)
function SetStep (line 7039) | int SetStep(int nStep)
function UINT (line 7045) | UINT GetPos() const
function GetRange (line 7058) | void GetRange(int& nLower, int& nUpper) const
function GetRangeLimit (line 7067) | int GetRangeLimit(BOOL bLowLimit) const
function DWORD (line 7073) | DWORD SetRange32(int nMin, int nMax)
function COLORREF (line 7080) | COLORREF SetBarColor(COLORREF clr)
function COLORREF (line 7086) | COLORREF SetBkColor(COLORREF clr)
function GetStep (line 7102) | int GetStep() const
function COLORREF (line 7114) | COLORREF GetBarColor() const
function SetState (line 7126) | int SetState(int nState)
function StepIt (line 7134) | int StepIt()
type CProgressBarCtrlT (line 7141) | typedef CProgressBarCtrlT<ATL::CWindow> CProgressBarCtrl;
function LPCTSTR (line 7171) | static LPCTSTR GetWndClassName()
function DWORD (line 7176) | DWORD GetHotKey() const
function SetHotKey (line 7190) | void SetHotKey(WORD wVirtualKeyCode, WORD wModifiers)
function SetRules (line 7196) | void SetRules(WORD wInvalidComb, WORD wModifiers)
type CHotKeyCtrlT (line 7203) | typedef CHotKeyCtrlT<ATL::CWindow> CHotKeyCtrl;
function LPCTSTR (line 7235) | static LPCTSTR GetWndClassName()
function BOOL (line 7241) | BOOL Open(ATL::_U_STRINGorID FileName)
function BOOL (line 7247) | BOOL Play(UINT nFrom, UINT nTo, UINT nRep)
function BOOL (line 7253) | BOOL Stop()
function BOOL (line 7259) | BOOL Close()
function BOOL (line 7265) | BOOL Seek(UINT nTo)
type CAnimateCtrlT (line 7282) | typedef CAnimateCtrlT<ATL::CWindow> CAnimateCtrl;
function LPCTSTR (line 7324) | static LPCTSTR GetWndClassName()
function LPCTSTR (line 7333) | static LPCTSTR GetLibraryName()
function GetLineCount (line 7344) | int GetLineCount() const
function GetRect (line 7362) | void GetRect(LPRECT lpRect) const
function DWORD (line 7368) | DWORD GetOptions() const
function GetLine (line 7381) | int GetLine(int nIndex, LPTSTR lpszBuffer) const
function GetLine (line 7387) | int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const
function BOOL (line 7394) | BOOL CanUndo() const
function GetSel (line 7406) | void GetSel(LONG& nStartChar, LONG& nEndChar) const
function GetSel (line 7415) | void GetSel(CHARRANGE &cr) const
function SetSel (line 7421) | int SetSel(LONG nStartChar, LONG nEndChar)
function SetSel (line 7428) | int SetSel(CHARRANGE &cr)
function SetSelAll (line 7434) | int SetSelAll()
function SetSelNone (line 7439) | int SetSelNone()
function DWORD (line 7444) | DWORD GetDefaultCharFormat(CHARFORMAT& cf) const
function DWORD (line 7451) | DWORD GetSelectionCharFormat(CHARFORMAT& cf) const
function DWORD (line 7458) | DWORD GetEventMask() const
function DWORD (line 7470) | DWORD GetParaFormat(PARAFORMAT& pf) const
function LONG (line 7478) | LONG GetSelText(LPTSTR lpstrBuff) const
function LONG (line 7485) | LONG GetSelText(LPSTR lpstrBuff) const
function BOOL (line 7493) | BOOL GetSelTextBSTR(BSTR& bstrText) const
function LONG (line 7527) | LONG GetSelText(_CSTRING_NS::CString& strText) const
function WORD (line 7559) | WORD GetSelectionType() const
function COLORREF (line 7571) | COLORREF SetBackgroundColor() // sets to system background
function BOOL (line 7577) | BOOL SetCharFormat(CHARFORMAT& cf, WORD wFlags)
function BOOL (line 7584) | BOOL SetDefaultCharFormat(CHARFORMAT& cf)
function BOOL (line 7591) | BOOL SetSelectionCharFormat(CHARFORMAT& cf)
function BOOL (line 7598) | BOOL SetWordCharFormat(CHARFORMAT& cf)
function DWORD (line 7605) | DWORD SetEventMask(DWORD dwEventMask)
function BOOL (line 7611) | BOOL SetParaFormat(PARAFORMAT& pf)
function BOOL (line 7618) | BOOL SetTargetDevice(HDC hDC, int cxLineWidth)
function GetTextLength (line 7624) | int GetTextLength() const
function GetTextRange (line 7642) | int GetTextRange(TEXTRANGE* pTextRange) const
function EDITWORDBREAKPROCEX (line 7649) | EDITWORDBREAKPROCEX GetWordBreakProcEx() const
function GetTextRange (line 7663) | int GetTextRange(LONG nStartChar, LONG nEndChar, LPTSTR lpstrText) const
function GetTextRange (line 7673) | int GetTextRange(LONG nStartChar, LONG nEndChar, LPSTR lpstrText) const
function DWORD (line 7685) | DWORD GetDefaultCharFormat(CHARFORMAT2& cf) const
function BOOL (line 7692) | BOOL SetCharFormat(CHARFORMAT2& cf, WORD wFlags)
function BOOL (line 7699) | BOOL SetDefaultCharFormat(CHARFORMAT2& cf)
function DWORD (line 7706) | DWORD GetSelectionCharFormat(CHARFORMAT2& cf) const
function BOOL (line 7713) | BOOL SetSelectionCharFormat(CHARFORMAT2& cf)
function BOOL (line 7720) | BOOL SetWordCharFormat(CHARFORMAT2& cf)
function DWORD (line 7727) | DWORD GetParaFormat(PARAFORMAT2& pf) const
function BOOL (line 7734) | BOOL SetParaFormat(PARAFORMAT2& pf)
function TEXTMODE (line 7741) | TEXTMODE GetTextMode() const
function UNDONAMEID (line 7753) | UNDONAMEID GetUndoName() const
function BOOL (line 7765) | BOOL CanRedo() const
function UINT (line 7786) | UINT SetUndoLimit(UINT uUndoLimit)
function SetPalette (line 7792) | void SetPalette(HPALETTE hPalette)
function GetTextEx (line 7798) | int GetTextEx(GETTEXTEX* pGetTextEx, LPTSTR lpstrText) const
function GetTextLengthEx (line 7816) | int GetTextLengthEx(GETTEXTLENGTHEX* pGetTextLengthEx) const
function GetTextLengthEx (line 7822) | int GetTextLengthEx(DWORD dwFlags = GTL_DEFAULT, UINT uCodePage = CP_ACP...
function EDITWORDBREAKPROC (line 7831) | EDITWORDBREAKPROC GetWordBreakProc() const
function SetTextEx (line 7845) | int SetTextEx(SETTEXTEX* pSetTextEx, LPCTSTR lpstrText)
function SetTextEx (line 7851) | int SetTextEx(LPCTSTR lpstrText, DWORD dwFlags = ST_DEFAULT, UINT uCodeP...
function GetEditStyle (line 7860) | int GetEditStyle() const
function GetScrollPos (line 7881) | void GetScrollPos(LPPOINT lpPoint) const
function SetScrollPos (line 7888) | void SetScrollPos(LPPOINT lpPoint)
function BOOL (line 7895) | BOOL GetZoom(int& nNum, int& nDen) const
function BOOL (line 7901) | BOOL SetZoom(int nNum, int nDen)
function BOOL (line 7909) | BOOL SetZoomOff()
function LineFromChar (line 7929) | int LineFromChar(LONG nIndex) const
function POINT (line 7935) | POINT PosFromChar(LONG nChar) const
function CharFromPos (line 7943) | int CharFromPos(POINT pt) const
function EmptyUndoBuffer (line 7950) | void EmptyUndoBuffer()
function BOOL (line 7968) | BOOL LineScroll(int nLines)
function SetRect (line 7980) | void SetRect(LPCRECT lpRect)
function BOOL (line 7986) | BOOL DisplayBand(LPRECT pDisplayRect)
function LONG (line 7992) | LONG FindText(DWORD dwFlags, FINDTEXT& ft) const
function LONG (line 8002) | LONG FindText(DWORD dwFlags, FINDTEXTEX& ft) const
function RequestResize (line 8037) | void RequestResize()
function LONG (line 8043) | LONG StreamIn(UINT uFormat, EDITSTREAM& es)
function LONG (line 8049) | LONG StreamOut(UINT uFormat, EDITSTREAM& es)
function DWORD (line 8055) | DWORD FindWordBreak(int nCode, LONG nStartChar)
function ScrollCaret (line 8062) | void ScrollCaret()
function BOOL (line 8081) | BOOL Undo()
function Clear (line 8087) | void Clear()
function Copy (line 8093) | void Copy()
function Cut (line 8099) | void Cut()
function Paste (line 8105) | void Paste()
function IRichEditOle (line 8112) | IRichEditOle* GetOleInterface() const
function BOOL (line 8120) | BOOL SetOleCallback(IRichEditOleCallback* pCallback)
function BOOL (line 8127) | BOOL Redo()
function StopGroupTyping (line 8133) | void StopGroupTyping()
function BOOL (line 8147) | BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
function BOOL (line 8153) | BOOL SetTabStops()
function BOOL (line 8159) | BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
function AutoCorrectProc (line 8167) | AutoCorrectProc GetAutoCorrectProc() const
function BOOL (line 8179) | BOOL CallAutoCorrectProc(WCHAR ch)
function DWORD (line 8185) | DWORD GetEditStyleEx() const
function DWORD (line 8197) | DWORD GetStoryType(int nStoryIndex) const
function DWORD (line 8203) | DWORD SetStoryType(int nStoryIndex, DWORD dwStoryType)
function DWORD (line 8209) | DWORD GetEllipsisMode() const
function BOOL (line 8227) | BOOL GetEllipsisState() const
function SetTouchOptions (line 8239) | void SetTouchOptions(int nTouchOptions, BOOL bEnable)
function HRESULT (line 8245) | HRESULT InsertTable(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellParams)
function HRESULT (line 8251) | HRESULT GetTableParams(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellP...
function HRESULT (line 8257) | HRESULT SetTableParams(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellP...
function HRESULT (line 8263) | HRESULT InsertImage(RICHEDIT_IMAGE_PARAMETERS* pParams)
function BOOL (line 8269) | BOOL SetUiaName(LPCTSTR lpstrName)
type CRichEditCtrlT (line 8277) | typedef CRichEditCtrlT<ATL::CWindow> CRichEditCtrl;
function BOOL (line 8378) | BOOL MakeDragList()
function DrawInsert (line 8391) | void DrawInsert(int nItem)
function UINT (line 8397) | static UINT GetDragListMessage()
type CDragListBoxT (line 8420) | typedef CDragListBoxT<ATL::CWindow> CDragListBox;
function OnCancelDrag (line 8465) | void OnCancelDrag(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCurso...
function OnDragging (line 8470) | int OnDragging(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
function OnDropped (line 8475) | void OnDropped(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
function LPCTSTR (line 8509) | static LPCTSTR GetWndClassName()
function UINT (line 8514) | UINT GetBandCount() const
function BOOL (line 8526) | BOOL SetBandInfo(int nBand, LPREBARBANDINFO lprbbi)
function BOOL (line 8532) | BOOL GetBarInfo(LPREBARINFO lprbi) const
function BOOL (line 8538) | BOOL SetBarInfo(LPREBARINFO lprbi)
function CImageList (line 8544) | CImageList GetImageList() const
function COLORREF (line 8577) | COLORREF GetTextColor() const
function COLORREF (line 8589) | COLORREF GetBkColor() const
function UINT (line 8601) | UINT GetBarHeight() const
function CToolTipCtrl (line 8614) | CToolTipCtrl GetToolTips() const
function GetBandBorders (line 8627) | void GetBandBorders(int nBand, LPRECT lpRect) const
function BOOL (line 8635) | BOOL GetColorScheme(LPCOLORSCHEME lpColorScheme) const
function SetColorScheme (line 8642) | void SetColorScheme(LPCOLORSCHEME lpColorScheme)
function HPALETTE (line 8649) | HPALETTE GetPalette() const
function BOOL (line 8661) | BOOL GetUnicodeFormat() const
function SetWindowTheme (line 8686) | void SetWindowTheme(LPCWSTR lpstrTheme)
function DWORD (line 8703) | DWORD SetExtendedStyle(DWORD dwStyle, DWORD dwMask)
function BOOL (line 8714) | BOOL InsertBand(int nBand, LPREBARBANDINFO lprbbi)
function BOOL (line 8720) | BOOL AddBand(LPREBARBANDINFO lprbbi)
function BOOL (line 8725) | BOOL DeleteBand(int nBand)
function BeginDrag (line 8738) | void BeginDrag(int nBand, DWORD dwPos)
function BeginDrag (line 8744) | void BeginDrag(int nBand, int xPos, int yPos)
function EndDrag (line 8750) | void EndDrag()
function DragMove (line 8756) | void DragMove(DWORD dwPos)
function DragMove (line 8762) | void DragMove(int xPos, int yPos)
function GetDropTarget (line 8769) | void GetDropTarget(IDropTarget** ppDropTarget) const
function MinimizeBand (line 8782) | void MinimizeBand(int nBand)
function BOOL (line 8788) | BOOL SizeToRect(LPRECT lpRect)
function IdToIndex (line 8794) | int IdToIndex(UINT uBandID) const
function HitTest (line 8800) | int HitTest(LPRBHITTESTINFO lprbht) const
function BOOL (line 8806) | BOOL ShowBand(int nBand, BOOL bShow)
function BOOL (line 8813) | BOOL MoveBand(int nBand, int nNewPos)
function PushChevron (line 8823) | void PushChevron(int nBand, LPARAM lAppValue)
function LockBands (line 8832) | void LockBands(bool bLock)
function BOOL (line 8862) | BOOL SetBandWidth(int nBand, int cxWidth)
type CReBarCtrlT (line 8870) | typedef CReBarCtrlT<ATL::CWindow> CReBarCtrl;
function LPCTSTR (line 8900) | static LPCTSTR GetWndClassName()
function CImageList (line 8905) | CImageList GetImageList() const
function BOOL (line 8930) | BOOL GetUnicodeFormat() const
function InsertItem (line 8952) | int InsertItem(const COMBOBOXEXITEM* lpcCBItem)
function InsertItem (line 8958) | int InsertItem(UINT nMask, int nIndex, LPCTSTR lpszItem, int nImage, int...
function AddItem (line 8988) | int AddItem(UINT nMask, LPCTSTR lpszItem, int nImage, int nSelImage, int...
function DeleteItem (line 8998) | int DeleteItem(int nIndex)
function BOOL (line 9004) | BOOL GetItem(PCOMBOBOXEXITEM pCBItem) const
function BOOL (line 9010) | BOOL SetItem(const COMBOBOXEXITEM* lpcCBItem)
function SetItem (line 9016) | int SetItem(int nIndex, UINT nMask, LPCTSTR lpszItem, int nImage, int nS...
function BOOL (line 9032) | BOOL GetItemText(int nIndex, LPTSTR lpszItem, int nLen) const
function BOOL (line 9047) | BOOL GetItemText(int nIndex, BSTR& bstrText) const
function BOOL (line 9086) | BOOL GetItemText(int nIndex, _CSTRING_NS::CString& strText) const
function BOOL (line 9114) | BOOL SetItemText(int nIndex, LPCTSTR lpszItem)
function CComboBox (line 9120) | CComboBox GetComboCtrl() const
function InsertString (line 9145) | int InsertString(int /*nIndex*/, LPCTSTR /*lpszString*/)
function Dir (line 9151) | int Dir(UINT /*attr*/, LPCTSTR /*lpszWildCard*/)
function FindString (line 9157) | int FindString(int /*nStartAfter*/, LPCTSTR /*lpszString*/) const
type CComboBoxExT (line 9164) | typedef CComboBoxExT<ATL::CWindow> CComboBoxEx;
function LPCTSTR (line 9194) | static LPCTSTR GetWndClassName()
function COLORREF (line 9199) | COLORREF GetColor(int nColorType) const
function COLORREF (line 9205) | COLORREF SetColor(int nColorType, COLORREF clr)
function BOOL (line 9211) | BOOL GetCurSel(LPSYSTEMTIME lpSysTime) const
function BOOL (line 9217) | BOOL SetCurSel(LPSYSTEMTIME lpSysTime)
function BOOL (line 9247) | BOOL SetMaxSelCount(int nMax)
function GetMonthDelta (line 9253) | int GetMonthDelta() const
function DWORD (line 9265) | DWORD GetRange(LPSYSTEMTIME lprgSysTimeArray) const
function BOOL (line 9271) | BOOL SetRange(DWORD dwFlags, LPSYSTEMTIME lprgSysTimeArray)
function BOOL (line 9277) | BOOL GetSelRange(LPSYSTEMTIME lprgSysTimeArray) const
function BOOL (line 9283) | BOOL SetSelRange(LPSYSTEMTIME lprgSysTimeArray)
function BOOL (line 9289) | BOOL GetToday(LPSYSTEMTIME lpSysTime) const
function SetToday (line 9295) | void SetToday(LPSYSTEMTIME lpSysTime)
function BOOL (line 9301) | BOOL GetMinReqRect(LPRECT lpRectInfo) const
function GetMaxTodayWidth (line 9307) | int GetMaxTodayWidth() const
function DWORD (line 9340) | DWORD GetCalendarCount() const
function CALID (line 9352) | CALID GetCALID() const
function GetCalendarBorder (line 9364) | int GetCalendarBorder() const
function BOOL (line 9384) | BOOL SetDayState(int nMonths, LPMONTHDAYSTATE lpDayStateArray)
function DWORD (line 9390) | DWORD HitTest(PMCHITTESTINFO pMCHitTest) const
function SizeRectToMin (line 9397) | void SizeRectToMin(LPRECT lpRect)
type CMonthCalendarCtrlT (line 9405) | typedef CMonthCalendarCtrlT<ATL::CWindow> CMonthCalendarCtrl;
function LPCTSTR (line 9433) | static LPCTSTR GetWndClassName()
function BOOL (line 9438) | BOOL SetFormat(LPCTSTR lpszFormat)
function COLORREF (line 9444) | COLORREF GetMonthCalColor(int nColorType) const
function COLORREF (line 9450) | COLORREF SetMonthCalColor(int nColorType, COLORREF clr)
function DWORD (line 9456) | DWORD GetRange(LPSYSTEMTIME lpSysTimeArray) const
function BOOL (line 9462) | BOOL SetRange(DWORD dwFlags, LPSYSTEMTIME lpSysTimeArray)
function DWORD (line 9468) | DWORD GetSystemTime(LPSYSTEMTIME lpSysTime) const
function BOOL (line 9474) | BOOL SetSystemTime(DWORD dwFlags, LPSYSTEMTIME lpSysTime)
function CMonthCalendarCtrl (line 9480) | CMonthCalendarCtrl GetMonthCal() const
function GetDateTimePickerInfo (line 9513) | void GetDateTimePickerInfo(LPDATETIMEPICKERINFO lpPickerInfo) const
function BOOL (line 9519) | BOOL GetIdealSize(LPSIZE lpSize) const
function CloseMonthCal (line 9525) | void CloseMonthCal()
type CDateTimePickerCtrlT (line 9533) | typedef CDateTimePickerCtrlT<ATL::CWindow> CDateTimePickerCtrl;
function HRESULT (line 9553) | HRESULT FlatSB_Uninitialize()
function BOOL (line 9561) | BOOL FlatSB_GetScrollProp(UINT uIndex, LPINT lpnValue) const
function FlatSB_GetScrollPos (line 9576) | int FlatSB_GetScrollPos(int nBar) const
function BOOL (line 9590) | BOOL FlatSB_GetScrollRange(int nBar, LPINT lpMinPos, LPINT lpMaxPos) const
function BOOL (line 9604) | BOOL FlatSB_GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo) const
function BOOL (line 9626) | BOOL FlatSB_EnableScrollBar(UINT uSBFlags, UINT uArrowFlags = ESB_ENABLE...
type CFlatScrollBarT (line 9648) | typedef CFlatScrollBarT<ATL::CWindow> CFlatScrollBar;
function LPCTSTR (line 9680) | static LPCTSTR GetWndClassName()
function BOOL (line 9685) | BOOL IsBlank() const
function SetAddress (line 9697) | void SetAddress(DWORD dwAddress)
function ClearAddress (line 9703) | void ClearAddress()
function SetRange (line 9709) | void SetRange(int nField, WORD wRange)
function SetRange (line 9715) | void SetRange(int nField, BYTE nMin, BYTE nMax)
function SetFocus (line 9721) | void SetFocus(int nField)
type CIPAddressCtrlT (line 9728) | typedef CIPAddressCtrlT<ATL::CWindow> CIPAddressCtrl;
function LPCTSTR (line 9760) | static LPCTSTR GetWndClassName()
function GetButtonSize (line 9765) | int GetButtonSize() const
function DWORD (line 9777) | DWORD GetButtonState(int nButton) const
function COLORREF (line 9784) | COLORREF GetBkColor() const
function GetBorder (line 9796) | int GetBorder() const
function GetPos (line 9808) | int GetPos() const
function SetChild (line 9821) | void SetChild(HWND hWndChild)
function RecalcSize (line 9833) | void RecalcSize()
function GetDropTarget (line 9839) | void GetDropTarget(IDropTarget** ppDropTarget)
type CPagerCtrlT (line 9847) | typedef CPagerCtrlT<ATL::CWindow> CPagerCtrl;
function LPCTSTR (line 9879) | static LPCTSTR GetWndClassName()
function BOOL (line 9894) | BOOL GetItem(PLITEM pLItem) const
function BOOL (line 9900) | BOOL SetItem(PLITEM pLItem)
function BOOL (line 9917) | BOOL HitTest(PLHITTESTINFO pLHitTestInfo) const
type CLinkCtrlT (line 9924) | typedef CLinkCtrlT<ATL::CWindow> CLinkCtrl;
function SetMsgHandled (line 9944) | void SetMsgHandled(BOOL bHandled)
function DWORD (line 10004) | DWORD OnPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10009) | DWORD OnPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10014) | DWORD OnPreErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10019) | DWORD OnPostErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10024) | DWORD OnItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10029) | DWORD OnItemPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10034) | DWORD OnItemPreErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10039) | DWORD OnItemPostErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10045) | DWORD OnSubItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function GetHeight (line 10079) | int GetHeight() const
function HWND (line 10092) | HWND Create(HWND hWndParent, int nCmdBarID)
function Destroy (line 10099) | void Destroy()
function BOOL (line 10110) | BOOL DrawMenuBar(WORD wButton)
function AddBitmap (line 10122) | int AddBitmap(int nBitmapID, int nNumImages)
function BOOL (line 10128) | BOOL AddButtons(UINT uNumButtons, LPTBBUTTON lpButtons)
function BOOL (line 10134) | BOOL AddToolTips(UINT uNumToolTips, LPTSTR lpToolTips)
function BOOL (line 10140) | BOOL InsertButton(int nButton, LPTBBUTTON lpButton)
function HWND (line 10146) | HWND InsertComboBox(int nWidth, UINT dwStyle, WORD wComboBoxID, WORD wBu...
function BOOL (line 10152) | BOOL InsertMenubar(WORD wMenuID, WORD wButton)
function BOOL (line 10158) | BOOL InsertMenubarEx(ATL::_U_STRINGorID menu, WORD wButton)
function BOOL (line 10164) | BOOL IsCommandBarMessage(LPMSG lpMsg)
type CCECommandBarCtrlT (line 10174) | typedef CCECommandBarCtrlT<CToolBarCtrl> CCECommandBarCtrl;
function UINT (line 10200) | UINT GetHeight() const
function BOOL (line 10213) | BOOL GetRestoreInformation(UINT uBand, LPCOMMANDBANDSRESTOREINFO pcbr) c...
function BOOL (line 10233) | BOOL AddBands(UINT uBandCount, LPREBARBANDINFO prbbi)
type CCECommandBandsCtrlT (line 10246) | typedef CCECommandBandsCtrlT<ATL::CWindow> CCECommandBandsCtrl;
FILE: WTL/atlctrlw.h
function namespace (line 53) | namespace WTL
type _ToolBarData (line 218) | struct _ToolBarData // toolbar resource data
type _CmdBarDrawConstants (line 231) | enum _CmdBarDrawConstants
function COLORREF (line 367) | COLORREF SetImageMaskColor(COLORREF clrMask)
function SetImagesVisible (line 379) | bool SetImagesVisible(bool bVisible)
function GetImageSize (line 386) | void GetImageSize(SIZE& size) const
function SetImageSize (line 391) | bool SetImageSize(SIZE& size)
function SetImageSize (line 396) | bool SetImageSize(int cx, int cy)
function SetAlphaImages (line 427) | bool SetAlphaImages(bool bAlphaImages)
function HWND (line 446) | HWND GetCmdBar() const
function BOOL (line 481) | BOOL LoadMenu(ATL::_U_STRINGorID menu)
function BOOL (line 497) | BOOL AttachMenu(HMENU hMenu)
function BOOL (line 586) | BOOL LoadImages(ATL::_U_STRINGorID image)
function BOOL (line 680) | BOOL AddBitmap(ATL::_U_STRINGorID bitmap, int nCommandID)
function BOOL (line 690) | BOOL AddBitmap(HBITMAP hBitmap, UINT nCommandID)
function BOOL (line 725) | BOOL AddIcon(ATL::_U_STRINGorID icon, UINT nCommandID)
function BOOL (line 734) | BOOL AddIcon(HICON hIcon, UINT nCommandID)
function BOOL (line 760) | BOOL ReplaceBitmap(ATL::_U_STRINGorID bitmap, int nCommandID)
function BOOL (line 770) | BOOL ReplaceBitmap(HBITMAP hBitmap, UINT nCommandID)
function BOOL (line 799) | BOOL ReplaceIcon(ATL::_U_STRINGorID icon, UINT nCommandID)
function BOOL (line 808) | BOOL ReplaceIcon(HICON hIcon, UINT nCommandID)
function BOOL (line 830) | BOOL RemoveImage(int nCommandID)
function BOOL (line 858) | BOOL RemoveAllImages()
function BOOL (line 892) | BOOL SetMDIClient(HWND /*hWndMDIClient*/)
function MESSAGE_HANDLER (line 900) | BEGIN_MSG_MAP(CCommandBarCtrlImpl)
function LRESULT (line 969) | LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandl...
function LRESULT (line 1033) | LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHand...
function LRESULT (line 1092) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHa...
function LRESULT (line 1132) | LRESULT OnKeyUp(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 1231) | LRESULT OnEraseBackground(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*...
function LRESULT (line 1247) | LRESULT OnInitMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, ...
function LRESULT (line 1360) | LRESULT OnMenuSelect(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHan...
function LRESULT (line 1420) | LRESULT OnInternalAutoPopup(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lPara...
function LRESULT (line 1428) | LRESULT OnInternalGetBar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 1439) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/,...
function LRESULT (line 1457) | LRESULT OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam, BOO...
function LRESULT (line 1469) | LRESULT OnMenuChar(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bH...
function LRESULT (line 1604) | LRESULT OnDrawItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL...
function LRESULT (line 1620) | LRESULT OnMeasureItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 1642) | LRESULT OnAPITrackPopupMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lPa...
function LRESULT (line 1660) | LRESULT OnParentHotItemChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 1705) | LRESULT OnParentDropDown(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 1726) | LRESULT OnParentInitMenuPopup(UINT uMsg, WPARAM wParam, LPARAM lParam, B...
function LRESULT (line 1731) | LRESULT OnParentInternalGetBar(UINT uMsg, WPARAM wParam, LPARAM lParam, ...
function LRESULT (line 1736) | LRESULT OnParentSysCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam...
function LRESULT (line 1767) | LRESULT OnParentAPIGetMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL...
function LRESULT (line 1772) | LRESULT OnParentMenuChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& ...
function LRESULT (line 1777) | LRESULT OnParentAPITrackPopupMenu(UINT uMsg, WPARAM wParam, LPARAM lPara...
function LRESULT (line 1782) | LRESULT OnParentAPIGetCmdBar(UINT uMsg, WPARAM wParam, LPARAM lParam, BO...
function LRESULT (line 1787) | LRESULT OnParentSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, B...
function LRESULT (line 1794) | LRESULT OnParentDrawItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& ...
function LRESULT (line 1799) | LRESULT OnParentMeasureItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOO...
function LRESULT (line 1804) | LRESULT OnParentActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 1820) | LRESULT OnParentCustomDraw(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function _ParentCustomDrawHelper (line 1891) | void _ParentCustomDrawHelper(LPNMTBCUSTOMDRAW lpTBCustomDraw)
function LRESULT (line 1918) | LRESULT OnHookMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara...
function LRESULT (line 1961) | LRESULT OnHookSysKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 1991) | LRESULT OnHookSysKeyUp(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, ...
function LRESULT (line 2003) | LRESULT OnHookSysChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, B...
function LRESULT (line 2015) | LRESULT OnHookKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, B...
function LRESULT (line 2150) | LRESULT OnHookChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL...
function DrawItem (line 2160) | void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
function DrawItem3D (line 2170) | void DrawItem3D(LPDRAWITEMSTRUCT lpDrawItemStruct)
function DrawItemFlat (line 2287) | void DrawItemFlat(LPDRAWITEMSTRUCT lpDrawItemStruct)
function DrawMenuText (line 2387) | void DrawMenuText(CDCHandle& dc, RECT& rc, LPCTSTR lpstrText, COLORREF c...
function DrawBitmapDisabled (line 2405) | void DrawBitmapDisabled(CDCHandle& dc, int nImage, POINT point,
function BOOL (line 2452) | BOOL Draw3DCheckmark(CDCHandle& dc, const RECT& rc, BOOL bSelected, BOOL...
function BOOL (line 2457) | BOOL DrawCheckmark(CDCHandle& dc, const RECT& rc, BOOL bSelected, BOOL b...
function MeasureItem (line 2615) | void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
function LRESULT (line 2674) | static LRESULT CALLBACK CreateHookProc(int nCode, WPARAM wParam, LPARAM ...
function LRESULT (line 2708) | static LRESULT CALLBACK MessageHookProc(int nCode, WPARAM wParam, LPARAM...
function DoPopupMenu (line 2750) | void DoPopupMenu(int nIndex, bool bAnimate)
function GetPreviousMenuItem (line 2909) | int GetPreviousMenuItem(int nBtn) const
function GetNextMenuItem (line 2939) | int GetNextMenuItem(int nBtn) const
function DisplayChevronMenu (line 2971) | bool DisplayChevronMenu()
function TakeFocus (line 3110) | void TakeFocus()
function GiveFocusBack (line 3117) | void GiveFocusBack()
function ShowKeyboardCues (line 3133) | void ShowKeyboardCues(bool bShow)
function UINT (line 3142) | static UINT GetAutoPopupMessage()
function UINT (line 3164) | static UINT GetGetBarMessage()
function CreateInternalImageList (line 3187) | bool CreateInternalImageList(int cImages)
function _AddVistaBitmapsFromImageList (line 3197) | void _AddVistaBitmapsFromImageList(int nStartIndex, int nCount)
function _AddVistaBitmapFromImageList (line 3215) | void _AddVistaBitmapFromImageList(int nIndex)
function _ReplaceVistaBitmapFromImageList (line 3232) | void _ReplaceVistaBitmapFromImageList(int nIndex)
function HBITMAP (line 3253) | HBITMAP _CreateVistaBitmapHelper(int nIndex, HDC hDCSource, HDC hDCTarget)
function _RemoveVistaBitmapsFromMenu (line 3296) | void _RemoveVistaBitmapsFromMenu()
function class (line 3311) | class CCommandBarCtrl : public CCommandBarCtrlImpl<CCommandBarCtrl>
function BOOL (line 3378) | BOOL SetMDIClient(HWND hWndMDIClient)
type CCommandBarCtrlImpl (line 3403) | typedef CCommandBarCtrlImpl< T, TBase, TWinTraits > _baseClass;
function MESSAGE_HANDLER (line 3404) | BEGIN_MSG_MAP(CMDICommandBarCtrlImpl)
function LRESULT (line 3463) | LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
function LRESULT (line 3493) | LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
function LRESULT (line 3501) | LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bH...
function LRESULT (line 3523) | LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHand...
function LRESULT (line 3604) | LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHa...
function LRESULT (line 3626) | LRESULT OnNcLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam,...
function LRESULT (line 3707) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 3736) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 3789) | LRESULT OnNcLButtonDblClk(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lPara...
function LRESULT (line 3849) | LRESULT OnParentActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 3858) | LRESULT OnMDISetMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bH...
function LRESULT (line 3875) | LRESULT OnAllHookMessages(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&...
function UpdateRebarBandIdealSize (line 3886) | void UpdateRebarBandIdealSize()
function _ProcessAllHookMessages (line 3913) | void _ProcessAllHookMessages(UINT uMsg, WPARAM /*wParam*/, LPARAM /*lPar...
function GetSystemSettings (line 4017) | void GetSystemSettings()
function _AdjustBtnSize (line 4055) | void _AdjustBtnSize(int cyHeight)
function _DrawMDIButton (line 4117) | void _DrawMDIButton(CWindowDC& dc, LPRECT pRects, int nBtn)
function UINT (line 4156) | static UINT _GetThemeChangedMsg()
function _OpenThemeData (line 4164) | void _OpenThemeData()
function _CloseThemeData (line 4174) | void _CloseThemeData()
function _DebugCheckChild (line 4191) | bool _DebugCheckChild()
function class (line 4203) | class CMDICommandBarCtrl : public CMDICommandBarCtrlImpl<CMDICommandBarC...
FILE: WTL/atlctrlx.h
function namespace (line 48) | namespace WTL
function HIMAGELIST (line 176) | HIMAGELIST SetImageList(HIMAGELIST hImageList)
function GetToolTipText (line 191) | bool GetToolTipText(LPTSTR lpstrText, int nLength) const
function SetToolTipText (line 202) | bool SetToolTipText(LPCTSTR lpstrText)
function BOOL (line 261) | BOOL SizeToImage()
function DoPaint (line 272) | void DoPaint(CDCHandle dc)
function MESSAGE_HANDLER (line 317) | BEGIN_MSG_MAP(CBitmapButtonImpl)
function LRESULT (line 359) | LRESULT OnMouseMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bH...
function LRESULT (line 373) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function LRESULT (line 388) | LRESULT OnFocus(UINT uMsg, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 397) | LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 421) | LRESULT OnLButtonDblClk(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /...
function LRESULT (line 437) | LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHa...
function LRESULT (line 474) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 512) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL&...
function LRESULT (line 526) | LRESULT OnKeyUp(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 542) | LRESULT OnTimer(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function Init (line 579) | void Init()
function BOOL (line 597) | BOOL StartTrackMouseLeave()
function class (line 617) | class CBitmapButton : public CBitmapButtonImpl<CBitmapButton>
function DWORD (line 642) | static DWORD GetWndExStyle(DWORD dwExStyle)
function DWORD (line 647) | static DWORD GetExtendedLVStyle()
type CCheckListViewCtrlImplTraits (line 653) | typedef CCheckListViewCtrlImplTraits<WS_CHILD | WS_VISIBLE | LVS_REPORT ...
function BOOL (line 668) | BOOL SubclassWindow(HWND hWnd)
function CheckSelectedItems (line 685) | void CheckSelectedItems(int nCurrItem)
function Init (line 710) | void Init()
function MESSAGE_HANDLER (line 719) | BEGIN_MSG_MAP(CCheckListViewCtrlImpl)
function LRESULT (line 739) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 753) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL&...
function class (line 769) | class CCheckListViewCtrl : public CCheckListViewCtrlImpl<CCheckListViewC...
function GetLabel (line 895) | bool GetLabel(LPTSTR lpstrBuffer, int nLength) const
function SetLabel (line 908) | bool SetLabel(LPCTSTR lpstrLabel)
function GetHyperLink (line 927) | bool GetHyperLink(LPTSTR lpstrBuffer, int nLength) const
function SetHyperLink (line 940) | bool SetHyperLink(LPCTSTR lpstrLink)
function SetLinkFont (line 970) | void SetLinkFont(HFONT hFont)
function GetIdealHeight (line 984) | int GetIdealHeight() const
function GetIdealSize (line 1019) | bool GetIdealSize(int& cx, int& cy) const
function GetToolTipText (line 1100) | bool GetToolTipText(LPTSTR lpstrBuffer, int nLength) const
function SetToolTipText (line 1106) | bool SetToolTipText(LPCTSTR lpstrToolTipText)
function BOOL (line 1113) | BOOL SubclassWindow(HWND hWnd)
function Navigate (line 1135) | bool Navigate()
function CreateLinkFontFromNormal (line 1170) | void CreateLinkFontFromNormal()
function MESSAGE_HANDLER (line 1193) | BEGIN_MSG_MAP(CHyperLinkImpl)
function LRESULT (line 1256) | LRESULT OnMouseMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bH...
function LRESULT (line 1271) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 1304) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1352) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 1363) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1378) | LRESULT OnChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*...
function LRESULT (line 1393) | LRESULT OnSetCursor(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,...
function LRESULT (line 1418) | LRESULT OnSetFont(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 1452) | LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL...
function COLORREF (line 1574) | static COLORREF _ParseColorString(LPTSTR lpstr)
function CalcLabelRect (line 1600) | bool CalcLabelRect()
function CalcLabelParts (line 1679) | void CalcLabelParts(LPTSTR& lpstrLeft, int& cchLeft, LPTSTR& lpstrLink, ...
function DoEraseBackground (line 1726) | void DoEraseBackground(CDCHandle dc)
function DoPaint (line 1737) | void DoPaint(CDCHandle dc)
function BOOL (line 1817) | BOOL StartTrackMouseLeave()
function class (line 1879) | class CHyperLink : public CHyperLinkImpl<CHyperLink>
function class (line 1937) | class CCustomWaitCursor : public CWaitCursor
type ATL (line 1992) | typedef ATL::CWindowImpl< T, TBase > _baseClass;
function BOOL (line 2115) | BOOL GetPaneRect(int nPaneID, LPRECT lpRect) const
function BOOL (line 2125) | BOOL SetPaneWidth(int nPaneID, int cxWidth)
function BOOL (line 2169) | BOOL GetPaneTipText(int nPaneID, LPTSTR lpstrText, int nSize) const
function BOOL (line 2180) | BOOL SetPaneTipText(int nPaneID, LPCTSTR lpstrText)
function BOOL (line 2193) | BOOL GetPaneIcon(int nPaneID, HICON& hIcon) const
function BOOL (line 2204) | BOOL SetPaneIcon(int nPaneID, HICON hIcon)
function GetPaneIndexFromID (line 2270) | int GetPaneIndexFromID(int nPaneID) const
function class (line 2282) | class CMultiPaneStatusBarCtrl : public CMultiPaneStatusBarCtrlImpl<CMult...
function HWND (line 2406) | HWND SetClient(HWND hWndClient)
function BOOL (line 2418) | BOOL GetTitle(LPTSTR lpstrTitle, int cchLength) const
function BOOL (line 2427) | BOOL SetTitle(LPCTSTR lpstrTitle)
type ATL (line 2456) | typedef ATL::CWindowImpl< T, TBase, TWinTraits > _baseClass;
type ATL (line 2469) | typedef ATL::CWindowImpl< T, TBase, TWinTraits > _baseClass;
function BOOL (line 2474) | BOOL SubclassWindow(HWND hWnd)
function BOOL (line 2495) | BOOL EnableCloseButton(BOOL bEnable)
function UpdateLayout (line 2503) | void UpdateLayout()
function MESSAGE_HANDLER (line 2512) | BEGIN_MSG_MAP(CPaneContainerImpl)
function LRESULT (line 2549) | LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*...
function LRESULT (line 2568) | LRESULT OnSetFont(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 2587) | LRESULT OnEraseBackground(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*...
function LRESULT (line 2595) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function LRESULT (line 2617) | LRESULT OnNotify(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& ...
function LRESULT (line 2646) | LRESULT OnCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHa...
function DWORD (line 2657) | DWORD OnPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 2662) | DWORD OnItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 2667) | DWORD OnItemPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW lpNMCustomDraw)
function Init (line 2705) | void Init()
function UpdateLayout (line 2735) | void UpdateLayout(int cxWidth, int cyHeight)
function CreateCloseButton (line 2766) | void CreateCloseButton()
function DestroyCloseButton (line 2796) | void DestroyCloseButton()
function CalcSize (line 2802) | void CalcSize()
function BOOL (line 2828) | BOOL GetToolTipText(LPNMHDR /*lpnmh*/)
function DrawPaneTitle (line 2834) | void DrawPaneTitle(CDCHandle dc)
function DrawPaneTitleBackground (line 2902) | void DrawPaneTitleBackground(CDCHandle dc)
function DrawPane (line 2920) | void DrawPane(CDCHandle dc)
function DrawButtonImage (line 2934) | void DrawButtonImage(CDCHandle dc, RECT& rcImage, HPEN hPen)
function class (line 2963) | class CPaneContainer : public CPaneContainerImpl<CPaneContainer>
function CreateSortBitmaps (line 3320) | void CreateSortBitmaps()
function NotifyParentSortChanged (line 3378) | void NotifyParentSortChanged(int iNewSortCol, int iOldSortCol)
function CompareItemsCustom (line 3387) | int CompareItemsCustom(LVCompareParam* /*pItem1*/, LVCompareParam* /*pIt...
function DrawSortBitmap (line 3394) | void DrawSortBitmap(CDCHandle dc, int iBitmap, LPRECT prc)
function DateStrToDouble (line 3426) | double DateStrToDouble(LPCTSTR lpstr, DWORD dwFlags)
function StrToLong (line 3443) | long StrToLong(LPCTSTR lpstr)
function StrToDouble (line 3460) | double StrToDouble(LPCTSTR lpstr)
function StrToDecimal (line 3477) | bool StrToDecimal(LPCTSTR lpstr, DECIMAL* pDecimal)
function LVCompareText (line 3498) | static int CALLBACK LVCompareText(LPARAM lParam1, LPARAM lParam2, LPARAM...
function LVCompareTextNoCase (line 3510) | static int CALLBACK LVCompareTextNoCase(LPARAM lParam1, LPARAM lParam2, ...
function LVCompareLong (line 3522) | static int CALLBACK LVCompareLong(LPARAM lParam1, LPARAM lParam2, LPARAM...
function LVCompareDouble (line 3538) | static int CALLBACK LVCompareDouble(LPARAM lParam1, LPARAM lParam2, LPAR...
function LVCompareCustom (line 3554) | static int CALLBACK LVCompareCustom(LPARAM lParam1, LPARAM lParam2, LPAR...
function LVCompareDecimal (line 3567) | static int CALLBACK LVCompareDecimal(LPARAM lParam1, LPARAM lParam2, LPA...
function CompareMantissas (line 3581) | static int CompareMantissas(const DECIMAL& decLeft, const DECIMAL& decRi...
function HRESULT (line 3604) | static HRESULT VarDecCmp(const DECIMAL* pdecLeft, const DECIMAL* pdecRight)
function LVCompareDecimal (line 3707) | static int CALLBACK LVCompareDecimal(LPARAM lParam1, LPARAM lParam2, LPA...
function MESSAGE_HANDLER (line 3721) | BEGIN_MSG_MAP(CSortListViewImpl)
function LRESULT (line 3751) | LRESULT OnDeleteColumn(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*...
function LRESULT (line 3768) | LRESULT OnHeaderItemClick(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 3782) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/,...
function GetSystemSettings (line 3795) | void GetSystemSettings()
type ATL (line 3809) | typedef ATL::CWinTraits<WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLI...
function MESSAGE_HANDLER (line 3822) | BEGIN_MSG_MAP(CSortListViewCtrlImpl)
type TCITEMEXTRA (line 3869) | struct TCITEMEXTRA
function BOOL (line 3949) | BOOL PreTranslateMessage(MSG* pMsg)
function GetPageCount (line 4002) | int GetPageCount() const
function SetActivePage (line 4013) | void SetActivePage(int nPage)
function HIMAGELIST (line 4040) | HIMAGELIST GetImageList() const
function SetWindowMenu (line 4052) | void SetWindowMenu(HMENU hMenu)
function SetTitleBarWindow (line 4062) | void SetTitleBarWindow(HWND hWnd)
function HWND (line 4084) | HWND GetPageHWND(int nPage) const
function LPCTSTR (line 4096) | LPCTSTR GetPageTitle(int nPage) const
function SetPageTitle (line 4109) | bool SetPageTitle(int nPage, LPCTSTR lpstrTitle)
function LPVOID (line 4149) | LPVOID GetPageData(int nPage) const
function LPVOID (line 4161) | LPVOID SetPageData(int nPage, LPVOID pData)
function GetPageImage (line 4177) | int GetPageImage(int nPage) const
function SetPageImage (line 4189) | int SetPageImage(int nPage, int nImage)
function RemovePage (line 4268) | void RemovePage(int nPage)
function RemoveAllPages (line 4320) | void RemoveAllPages()
function PageIndexFromHwnd (line 4355) | int PageIndexFromHwnd(HWND hWnd) const
function BOOL (line 4487) | BOOL SubclassWindow(HWND hWnd)
function MESSAGE_HANDLER (line 4506) | BEGIN_MSG_MAP(CTabViewImpl)
function LRESULT (line 4558) | LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL...
function LRESULT (line 4577) | LRESULT OnSetFont(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 4598) | LRESULT OnTabChanged(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
function LRESULT (line 4607) | LRESULT OnTabNotification(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHan...
function LRESULT (line 4615) | LRESULT OnTabGetDispInfo(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 4633) | LRESULT OnTabLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam...
function LRESULT (line 4648) | LRESULT OnTabLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, ...
function LRESULT (line 4695) | LRESULT OnTabMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, ...
function class (line 5112) | class CTabView : public CTabViewImpl<CTabView>
FILE: WTL/atlddx.h
function namespace (line 33) | namespace WTL
function BOOL (line 409) | static BOOL _AtlSimpleFloatParse(LPCTSTR lpszText, double& d)
function DDX_Check (line 538) | void DDX_Check(UINT nID, int& nValue, BOOL bSave)
function DDX_Check (line 559) | void DDX_Check(UINT nID, bool& bCheck, BOOL bSave)
function DDX_Radio (line 572) | void DDX_Radio(UINT nID, int& nValue, BOOL bSave)
function _setSel (line 642) | void _setSel(WTL::CListViewCtrl& tCtrl, INT iSel)
function OnDataExchangeError (line 665) | void OnDataExchangeError(UINT nCtrlID, BOOL /*bSave*/)
function OnDataValidateError (line 673) | void OnDataValidateError(UINT nCtrlID, BOOL /*bSave*/, _XData& /*data*/)
FILE: WTL/atldlgs.h
function namespace (line 98) | namespace WTL
function NOTIFY_CODE_HANDLER (line 301) | BEGIN_MSG_MAP(CFileDialogImpl)
function LRESULT (line 321) | LRESULT _OnFolderChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 329) | LRESULT _OnHelp(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 337) | LRESULT _OnInitDone(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 345) | LRESULT _OnSelChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 353) | LRESULT _OnShareViolation(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 360) | LRESULT _OnTypeChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 369) | LRESULT _OnIncludeItem(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function BOOL (line 378) | BOOL OnFileOK(LPOFNOTIFY /*lpon*/)
function OnFolderChange (line 383) | void OnFolderChange(LPOFNOTIFY /*lpon*/)
function OnHelp (line 387) | void OnHelp(LPOFNOTIFY /*lpon*/)
function OnInitDone (line 391) | void OnInitDone(LPOFNOTIFY /*lpon*/)
function OnSelChange (line 395) | void OnSelChange(LPOFNOTIFY /*lpon*/)
function OnShareViolation (line 399) | int OnShareViolation(LPOFNOTIFY /*lpon*/)
function OnTypeChange (line 404) | void OnTypeChange(LPOFNOTIFY /*lpon*/)
function BOOL (line 409) | BOOL OnIncludeItem(LPOFNOTIFYEX /*lponex*/)
function class (line 416) | class CFileDialog : public CFileDialogImpl<CFileDialog>
function INT_PTR (line 1698) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function GetCurrentFont (line 1731) | void GetCurrentFont(LPLOGFONT lplf) const
function SetLogFont (line 1743) | void SetLogFont(LPLOGFONT lplf)
function SetFlags (line 1760) | void SetFlags(DWORD dwFlags)
function ATL_NO_VTABLE (line 1847) | ATL_NO_VTABLE CRichEditFontDialogImpl : public CFontDialogImpl< T >
function ATL_NO_VTABLE (line 2008) | ATL_NO_VTABLE CColorDialogImpl : public CCommonDialogImplBase
function INT_PTR (line 2032) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function SetCurrentColor (line 2062) | void SetCurrentColor(COLORREF clr)
function UINT_PTR (line 2075) | static UINT_PTR APIENTRY HookProc(HWND hWnd, UINT uMsg, WPARAM wParam, L...
function COLORREF (line 2118) | static COLORREF* GetCustomColors()
function UINT (line 2135) | static UINT _GetSetRGBMessage()
function UINT (line 2157) | static UINT _GetColorOKMessage()
function MESSAGE_HANDLER (line 2180) | BEGIN_MSG_MAP(CColorDialogImpl)
function BOOL (line 2191) | BOOL OnColorOK() // validate color
function HDC (line 2217) | static inline HDC _AtlCreateDC(HGLOBAL hDevNames, HGLOBAL hDevMode)
function ATL_NO_VTABLE (line 2243) | ATL_NO_VTABLE CPrintDialogImpl : public CCommonDialogImplBase
function INT_PTR (line 2272) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function BOOL (line 2305) | BOOL GetDefaults()
function HDC (line 2416) | HDC CreatePrinterDC()
function m_pd (line 2426) | m_pd(pdInit)
function LRESULT (line 2437) | LRESULT OnPrintSetup(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& /*b...
function namespace (line 2475) | namespace WTL
function HRESULT (line 2530) | HRESULT GetDefaults()
function HDC (line 2637) | HDC CreatePrinterDC()
function STDMETHOD (line 2646) | STDMETHOD(QueryInterface)(REFIID riid, void** ppvObject)
function STDMETHODCALLTYPE (line 2668) | STDMETHODCALLTYPE AddRef()
function STDMETHODCALLTYPE (line 2673) | STDMETHODCALLTYPE Release()
function STDMETHOD (line 2679) | STDMETHOD(InitDone)()
function STDMETHOD (line 2684) | STDMETHOD(SelectionChange)()
function STDMETHOD (line 2689) | STDMETHOD(HandleMessage)(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa...
function class (line 2707) | class CPrintDialogEx : public CPrintDialogExImpl<CPrintDialogEx>
function DoInitTemplate (line 3698) | void DoInitTemplate()
function DoInitControls (line 3703) | void DoInitControls()
function class (line 3713) | class CPropertySheetWindow : public ATL::CWindow
function GetPageCount (line 3727) | int GetPageCount() const
function GetActiveIndex (line 3741) | int GetActiveIndex() const
function BOOL (line 3755) | BOOL SetActivePage(HPROPSHEETPAGE hPage)
function BOOL (line 3762) | BOOL SetActivePageByID(int nPageID)
function SetFinishText (line 3782) | void SetFinishText(LPCTSTR lpszText)
function SetWizardButtons (line 3788) | void SetWizardButtons(DWORD dwFlags)
function BOOL (line 3795) | BOOL AddPage(HPROPSHEETPAGE hPage)
function BOOL (line 3802) | BOOL AddPage(LPCPROPSHEETPAGE pPage)
function BOOL (line 3813) | BOOL InsertPage(int nNewPageIndex, HPROPSHEETPAGE hPage)
function BOOL (line 3820) | BOOL InsertPage(int nNewPageIndex, LPCPROPSHEETPAGE pPage)
function BOOL (line 3830) | BOOL InsertPage(HPROPSHEETPAGE hPageInsertAfter, HPROPSHEETPAGE hPage)
function BOOL (line 3837) | BOOL InsertPage(HPROPSHEETPAGE hPageInsertAfter, LPCPROPSHEETPAGE pPage)
function RemovePage (line 3848) | void RemovePage(int nPageIndex)
function RemovePage (line 3854) | void RemovePage(HPROPSHEETPAGE hPage)
function BOOL (line 3861) | BOOL PressButton(int nButton)
function BOOL (line 3867) | BOOL Apply()
function CancelToClose (line 3873) | void CancelToClose()
function LRESULT (line 3887) | LRESULT QuerySiblings(WPARAM wParam, LPARAM lParam)
function RebootSystem (line 3893) | void RebootSystem()
function RestartWindows (line 3899) | void RestartWindows()
function BOOL (line 3905) | BOOL IsDialogMessage(LPMSG lpMsg)
function HwndToIndex (line 3912) | int HwndToIndex(HWND hWnd) const
function HWND (line 3918) | HWND IndexToHwnd(int nIndex) const
function PageToIndex (line 3924) | int PageToIndex(HPROPSHEETPAGE hPage) const
function HPROPSHEETPAGE (line 3930) | HPROPSHEETPAGE IndexToPage(int nIndex) const
function IdToIndex (line 3936) | int IdToIndex(int nID) const
function IndexToId (line 3942) | int IndexToId(int nIndex) const
function GetResult (line 3948) | int GetResult() const
function SetHeaderTitle (line 3960) | void SetHeaderTitle(int nIndex, LPCTSTR lpstrHeaderTitle)
function SetHeaderSubTitle (line 3966) | void SetHeaderSubTitle(int nIndex, LPCTSTR lpstrHeaderSubTitle)
function HWND (line 3974) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
function PropSheetCallback (line 4030) | static int CALLBACK PropSheetCallback(HWND hWnd, UINT uMsg, LPARAM lParam)
function OnSheetInitialized (line 4083) | void OnSheetInitialized()
function INT_PTR (line 4120) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function _CleanUpPages (line 4151) | void _CleanUpPages()
function HPROPSHEETPAGE (line 4175) | HPROPSHEETPAGE GetPage(int nPageIndex) const
function GetPageIndex (line 4181) | int GetPageIndex(HPROPSHEETPAGE hPage) const
function BOOL (line 4187) | BOOL SetActivePage(int nPageIndex)
function BOOL (line 4198) | BOOL SetActivePage(HPROPSHEETPAGE hPage)
function SetLinkText (line 4233) | void SetLinkText(LPCTSTR lpszText)
function SetWizardMode (line 4241) | void SetWizardMode()
function EnableHelp (line 4246) | void EnableHelp()
function BOOL (line 4252) | BOOL AddPage(HPROPSHEETPAGE hPage)
function BOOL (line 4263) | BOOL AddPage(LPCPROPSHEETPAGE pPage)
function BOOL (line 4275) | BOOL RemovePage(HPROPSHEETPAGE hPage)
function BOOL (line 4290) | BOOL RemovePage(int nPageIndex)
function SetHeader (line 4301) | void SetHeader(LPCTSTR szbmHeader)
function SetHeader (line 4310) | void SetHeader(HBITMAP hbmHeader)
function StretchWatermark (line 4349) | void StretchWatermark(bool bStretchWatermark)
function MESSAGE_HANDLER (line 4360) | BEGIN_MSG_MAP(CPropertySheetImpl)
function LRESULT (line 4374) | LRESULT OnSysCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BO...
function class (line 4392) | class CPropertySheet : public CPropertySheetImpl<CPropertySheet>
function class (line 4404) | class CPropertyPageWindow : public ATL::CWindow
function CPropertySheetWindow (line 4418) | CPropertySheetWindow GetPropertySheet() const
function CancelToClose (line 4432) | void CancelToClose()
function LRESULT (line 4446) | LRESULT QuerySiblings(WPARAM wParam, LPARAM lParam)
function RebootSystem (line 4453) | void RebootSystem()
function RestartWindows (line 4460) | void RestartWindows()
function SetWizardButtons (line 4467) | void SetWizardButtons(DWORD dwFlags)
function HWND (line 4475) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
function BOOL (line 4994) | BOOL PreTranslateMessage(LPMSG pMsg)
function OnTranslateAccelerator (line 5017) | int OnTranslateAccelerator(LPMSG lpMsg)
function BOOL (line 5023) | BOOL OnTranslateAccelerator(LPMSG lpMsg)
function GetIDD (line 5033) | int GetIDD()
function virtual (line 5038) | virtual DLGPROC GetDialogProc()
function INT_PTR (line 5043) | static INT_PTR CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, ...
function virtual (line 5059) | virtual HRESULT CreateActiveXControls(UINT nID)
function HRESULT (line 5194) | HRESULT AdviseSinkMap(bool bAdvise)
type CPropertyPageImpl (line 5212) | typedef CPropertyPageImpl< T, TBase> _baseClass;
function MESSAGE_HANDLER (line 5213) | BEGIN_MSG_MAP(CAxPropertyPageImpl)
function LRESULT (line 5228) | LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, B...
function HFONT (line 5341) | HFONT GetExteriorPageTitleFont(void)
function HFONT (line 5347) | HFONT GetBulletFont(void)
function UINT (line 5354) | static UINT GetMessage_GetExteriorPageTitleFont()
function UINT (line 5376) | static UINT GetMessage_GetBulletFont()
function HWND (line 5399) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
function OnSheetInitialized (line 5439) | void OnSheetInitialized()
function _InitializeFonts (line 5449) | void _InitializeFonts()
function MESSAGE_HANDLER (line 5483) | BEGIN_MSG_MAP(thisClass)
function class (line 5514) | class CWizard97Sheet : public CWizard97SheetImpl<CWizard97Sheet>
function class (line 5541) | class CWizard97PageWindow : public CPropertyPageWindow
function CWizard97SheetWindow (line 5555) | CWizard97SheetWindow GetPropertySheet() const
function HFONT (line 5568) | HFONT GetBulletFont(void)
function HWND (line 5575) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
type CPropertyPageImpl (line 5615) | typedef CPropertyPageImpl< T, TBase > baseClass;
type CPropertyPageImpl (line 5641) | typedef CPropertyPageImpl< T, TBase > baseClass;
function class (line 5674) | class CAeroWizardFrameWindow : public CPropertySheetWindow
function SetNextText (line 5688) | void SetNextText(LPCWSTR lpszText)
function ShowWizardButtons (line 5694) | void ShowWizardButtons(DWORD dwButtons, DWORD dwStates)
function EnableWizardButtons (line 5700) | void EnableWizardButtons(DWORD dwButtons, DWORD dwStates)
function SetButtonText (line 5706) | void SetButtonText(DWORD dwButton, LPCWSTR lpszText)
function EnableResizing (line 5729) | void EnableResizing()
function UseHeaderBitmap (line 5735) | void UseHeaderBitmap()
function SetNoMargin (line 5741) | void SetNoMargin()
function class (line 5759) | class CAeroWizardFrame : public CAeroWizardFrameImpl<CAeroWizardFrame>
function class (line 5775) | class CAeroWizardPageWindow : public CPropertyPageWindow
function CAeroWizardFrameWindow (line 5789) | CAeroWizardFrameWindow GetAeroWizardFrame() const
function ShowWizardButtons (line 5804) | void ShowWizardButtons(DWORD dwButtons, DWORD dwStates)
function EnableWizardButtons (line 5811) | void EnableWizardButtons(DWORD dwButtons, DWORD dwStates)
function SetButtonText (line 5818) | void SetButtonText(DWORD dwButton, LPCWSTR lpszText)
function class (line 5954) | class CTaskDialogConfig : public TASKDIALOGCONFIG
function SetDefaultButton (line 6038) | void SetDefaultButton(int nDefaultButtonArg)
function SetDefaultRadioButton (line 6052) | void SetDefaultRadioButton(int nDefaultRadioButtonArg)
function SetVerificationText (line 6058) | void SetVerificationText(UINT nID)
function SetVerificationText (line 6063) | void SetVerificationText(LPCWSTR lpstrVerificationText)
function SetExpandedInformationText (line 6069) | void SetExpandedInformationText(UINT nID)
function SetExpandedInformationText (line 6074) | void SetExpandedInformationText(LPCWSTR lpstrExpandedInformation)
function SetExpandedControlText (line 6080) | void SetExpandedControlText(UINT nID)
function SetExpandedControlText (line 6085) | void SetExpandedControlText(LPCWSTR lpstrExpandedControlText)
function SetCollapsedControlText (line 6091) | void SetCollapsedControlText(UINT nID)
function SetCollapsedControlText (line 6096) | void SetCollapsedControlText(LPCWSTR lpstrCollapsedControlText)
function SetFooterIcon (line 6102) | void SetFooterIcon(HICON hIcon)
function SetFooterIcon (line 6108) | void SetFooterIcon(UINT nID)
function SetFooterIcon (line 6114) | void SetFooterIcon(LPCWSTR lpstrFooterIcon)
function SetFooterText (line 6121) | void SetFooterText(UINT nID)
function SetFooterText (line 6126) | void SetFooterText(LPCWSTR lpstrFooterText)
function SetWidth (line 6132) | void SetWidth(UINT cxWidthArg)
function ModifyFlags (line 6138) | void ModifyFlags(DWORD dwRemove, DWORD dwAdd)
function ATL_NO_VTABLE (line 6149) | ATL_NO_VTABLE CTaskDialogImpl
function SetCommonButtons (line 6193) | void SetCommonButtons(TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons)
function SetWindowTitle (line 6196) | void SetWindowTitle(UINT nID)
function SetWindowTitle (line 6198) | void SetWindowTitle(LPCWSTR lpstrWindowTitle)
function SetMainIcon (line 6201) | void SetMainIcon(HICON hIcon)
function SetMainIcon (line 6203) | void SetMainIcon(UINT nID)
function SetMainIcon (line 6205) | void SetMainIcon(LPCWSTR lpstrMainIcon)
function SetMainInstructionText (line 6208) | void SetMainInstructionText(UINT nID)
function SetMainInstructionText (line 6210) | void SetMainInstructionText(LPCWSTR lpstrMainInstruction)
function SetContentText (line 6213) | void SetContentText(UINT nID)
function SetContentText (line 6215) | void SetContentText(LPCWSTR lpstrContent)
function SetDefaultButton (line 6220) | void SetDefaultButton(int nDefaultButton)
function SetDefaultRadioButton (line 6225) | void SetDefaultRadioButton(int nDefaultRadioButton)
function SetVerificationText (line 6228) | void SetVerificationText(UINT nID)
function SetVerificationText (line 6230) | void SetVerificationText(LPCWSTR lpstrVerificationText)
function SetExpandedInformationText (line 6233) | void SetExpandedInformationText(UINT nID)
function SetExpandedInformationText (line 6235) | void SetExpandedInformationText(LPCWSTR lpstrExpandedInformation)
function SetExpandedControlText (line 6238) | void SetExpandedControlText(UINT nID)
function SetExpandedControlText (line 6240) | void SetExpandedControlText(LPCWSTR lpstrExpandedControlText)
function SetCollapsedControlText (line 6243) | void SetCollapsedControlText(UINT nID)
function SetCollapsedControlText (line 6245) | void SetCollapsedControlText(LPCWSTR lpstrCollapsedControlText)
function SetFooterIcon (line 6248) | void SetFooterIcon(HICON hIcon)
function SetFooterIcon (line 6250) | void SetFooterIcon(UINT nID)
function SetFooterIcon (line 6252) | void SetFooterIcon(LPCWSTR lpstrFooterIcon)
function SetFooterText (line 6255) | void SetFooterText(UINT nID)
function SetFooterText (line 6257) | void SetFooterText(LPCWSTR lpstrFooterText)
function SetWidth (line 6260) | void SetWidth(UINT cxWidth)
function ModifyFlags (line 6263) | void ModifyFlags(DWORD dwRemove, DWORD dwAdd)
function HRESULT (line 6267) | static HRESULT CALLBACK TaskDialogCallback(HWND hWnd, UINT uMsg, WPARAM ...
function OnDialogConstructed (line 6319) | void OnDialogConstructed()
function OnCreated (line 6323) | void OnCreated()
function BOOL (line 6327) | BOOL OnButtonClicked(int /*nButton*/)
function OnRadioButtonClicked (line 6332) | void OnRadioButtonClicked(int /*nRadioButton*/)
function OnHyperlinkClicked (line 6336) | void OnHyperlinkClicked(LPCWSTR /*pszHREF*/)
function OnExpandoButtonClicked (line 6340) | void OnExpandoButtonClicked(bool /*bExpanded*/)
function OnVerificationClicked (line 6344) | void OnVerificationClicked(bool /*bChecked*/)
function OnHelp (line 6348) | void OnHelp()
function BOOL (line 6352) | BOOL OnTimer(DWORD /*dwTickCount*/)
function OnNavigated (line 6357) | void OnNavigated()
function OnDestroyed (line 6361) | void OnDestroyed()
function NavigatePage (line 6366) | void NavigatePage(TASKDIALOGCONFIG& tdc)
function NavigatePage (line 6381) | void NavigatePage()
function ClickButton (line 6387) | void ClickButton(int nButton)
function SetMarqueeProgressBar (line 6393) | void SetMarqueeProgressBar(BOOL bMarquee)
function BOOL (line 6399) | BOOL SetProgressBarState(int nNewState)
function DWORD (line 6405) | DWORD SetProgressBarRange(int nMinRange, int nMaxRange)
function SetProgressBarPos (line 6411) | int SetProgressBarPos(int nNewPos)
function BOOL (line 6417) | BOOL SetProgressBarMarquee(BOOL bMarquee, UINT uSpeed)
function SetElementText (line 6423) | void SetElementText(TASKDIALOG_ELEMENTS element, LPCWSTR lpstrText)
function ClickRadioButton (line 6429) | void ClickRadioButton(int nRadioButton)
function EnableButton (line 6435) | void EnableButton(int nButton, BOOL bEnable)
function EnableRadioButton (line 6441) | void EnableRadioButton(int nButton, BOOL bEnable)
function ClickVerification (line 6447) | void ClickVerification(BOOL bCheck, BOOL bFocus)
function UpdateElementText (line 6453) | void UpdateElementText(TASKDIALOG_ELEMENTS element, LPCWSTR lpstrText)
function SetButtonElevationRequiredState (line 6459) | void SetButtonElevationRequiredState(int nButton, BOOL bElevation)
function UpdateIcon (line 6465) | void UpdateIcon(TASKDIALOG_ICON_ELEMENTS element, HICON hIcon)
function UpdateIcon (line 6477) | void UpdateIcon(TASKDIALOG_ICON_ELEMENTS element, LPCWSTR lpstrIcon)
function class (line 6494) | class CTaskDialog : public CTaskDialogImpl<CTaskDialog>
FILE: WTL/atldwm.h
function namespace (line 57) | namespace WTL
type CDwmWindowT (line 277) | typedef CDwmWindowT<ATL::CWindow> CDwmWindow;
function Attach (line 307) | void Attach(HTHUMBNAIL hThumbnailNew)
function HTHUMBNAIL (line 314) | HTHUMBNAIL Detach()
function HRESULT (line 321) | HRESULT Register(HWND hwndDestination, HWND hwndSource)
function HRESULT (line 333) | HRESULT Unregister()
function HRESULT (line 351) | HRESULT UpdateProperties(const DWM_THUMBNAIL_PROPERTIES* ptnProperties)
function HRESULT (line 361) | HRESULT QuerySourceSize(PSIZE pSize)
type CBufferedPaintImpl (line 387) | typedef CBufferedPaintImpl<T> _baseClass;
type ATL (line 388) | typedef ATL::CWindowImpl<T, TBase, TWinTraits> _windowClass;
function LPCWSTR (line 395) | static LPCWSTR GetThemeName()
function MESSAGE_HANDLER (line 406) | BEGIN_MSG_MAP(CAeroControlImpl)
function BOOL (line 432) | BOOL SubclassWindow(HWND hWnd)
function LRESULT (line 447) | LRESULT DefWindowProc()
function LRESULT (line 457) | LRESULT DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
function DoBufferedPaint (line 467) | void DoBufferedPaint(HDC hDC, RECT& rcPaint)
function Init (line 485) | void Init()
function DoAeroPaint (line 494) | void DoAeroPaint(HDC hDC, RECT& /*rcClient*/, RECT& rcPaint)
FILE: WTL/atlfind.h
function namespace (line 39) | namespace WTL
function AdjustDialogPosition (line 231) | void AdjustDialogPosition(HWND hWndDialog)
function DWORD (line 261) | DWORD GetFindReplaceDialogFlags(void) const
function FindReplace (line 274) | void FindReplace(BOOL bFindOnly)
function BOOL (line 310) | BOOL SameAsSelected(LPCTSTR lpszCompare, BOOL bMatchCase, BOOL /*bWholeW...
function TextNotFound (line 331) | void TextNotFound(LPCTSTR lpszFind)
type TranslationTextItem (line 338) | enum TranslationTextItem
function OnFindNext (line 361) | void OnFindNext(LPCTSTR lpszFind, BOOL bFindDown, BOOL bMatchCase, BOOL ...
function OnReplaceSel (line 376) | void OnReplaceSel(LPCTSTR lpszFind, BOOL bFindDown, BOOL bMatchCase, BOO...
function OnReplaceAll (line 395) | void OnReplaceAll(LPCTSTR lpszFind, LPCTSTR lpszReplace, BOOL bMatchCase...
function OnReplaceAllCoreBegin (line 427) | void OnReplaceAllCoreBegin()
function OnReplaceAllCoreEnd (line 437) | void OnReplaceAllCoreEnd(int replaceCount)
function OnTextNotFound (line 464) | void OnTextNotFound(LPCTSTR lpszFind)
function OnTerminatingFindReplaceDialog (line 491) | void OnTerminatingFindReplaceDialog(TFindReplaceDialog*& /*findReplaceDi...
type CEditFindReplaceImplBase (line 519) | typedef CEditFindReplaceImplBase<T, TFindReplaceDialog> baseClass;
function virtual (line 535) | virtual ~CEditFindReplaceImpl()
function LPCTSTR (line 721) | LPCTSTR LockBuffer() const
function UINT (line 775) | UINT GetBufferLength() const
function LONG (line 798) | LONG GetSelText(_CSTRING_NS::CString& strText) const
function BOOL (line 814) | BOOL UseShadowBuffer(void) const
type CEditFindReplaceImplBase (line 904) | typedef CEditFindReplaceImplBase<T, TFindReplaceDialog> baseClass;
function FindAndSelect (line 999) | long FindAndSelect(DWORD dwFlags, FINDTEXTEX& ft)
FILE: WTL/atlframe.h
function namespace (line 43) | namespace WTL
FILE: WTL/atlgdi.h
function namespace (line 72) | namespace WTL
type CPenT (line 220) | typedef CPenT<false> CPenHandle;
type CPenT (line 221) | typedef CPenT<true> CPen;
function Attach (line 250) | void Attach(HBRUSH hBrush)
function HBRUSH (line 257) | HBRUSH Detach()
function HBRUSH (line 269) | HBRUSH CreateSolidBrush(COLORREF crColor)
function HBRUSH (line 277) | HBRUSH CreateHatchBrush(int nIndex, COLORREF crColor)
function HBRUSH (line 286) | HBRUSH CreateBrushIndirect(const LOGBRUSH* lpLogBrush)
function HBRUSH (line 298) | HBRUSH CreatePatternBrush(HBITMAP hBitmap)
function HBRUSH (line 305) | HBRUSH CreateDIBPatternBrush(HGLOBAL hPackedDIB, UINT nUsage)
function HBRUSH (line 315) | HBRUSH CreateDIBPatternBrush(const void* lpPackedDIB, UINT nUsage)
function HBRUSH (line 322) | HBRUSH CreateSysColorBrush(int nIndex)
function BOOL (line 329) | BOOL DeleteObject()
function GetLogBrush (line 339) | int GetLogBrush(LOGBRUSH* pLogBrush) const
function GetLogBrush (line 345) | bool GetLogBrush(LOGBRUSH& LogBrush) const
type CBrushT (line 352) | typedef CBrushT<false> CBrushHandle;
type CBrushT (line 353) | typedef CBrushT<true> CBrush;
function class (line 359) | class CLogFont : public LOGFONT
function HFONT (line 378) | HFONT CreateFontIndirect()
function SetBold (line 383) | void SetBold()
function MakeLarger (line 398) | void MakeLarger(int iScale)
function SetCaptionFont (line 465) | void SetCaptionFont()
function SetMenuFont (line 472) | void SetMenuFont()
function SetStatusFont (line 479) | void SetStatusFont()
function SetMessageBoxFont (line 486) | void SetMessageBoxFont()
function Copy (line 494) | void Copy(const LOGFONT* pLogFont)
function Attach (line 562) | void Attach(HFONT hFont)
function HFONT (line 569) | HFONT Detach()
function HFONT (line 581) | HFONT CreateFontIndirect(const LOGFONT* lpLogFont)
function HFONT (line 589) | HFONT CreateFontIndirectEx(CONST ENUMLOGFONTEXDV* penumlfex)
function HFONT (line 598) | HFONT CreateFont(int nHeight, int nWidth, int nEscapement,
function BOOL (line 659) | BOOL DeleteObject()
function GetLogFont (line 669) | int GetLogFont(LOGFONT* pLogFont) const
function GetLogFont (line 675) | bool GetLogFont(LOGFONT& LogFont) const
type CFontT (line 682) | typedef CFontT<false> CFontHandle;
type CFontT (line 683) | typedef CFontT<true> CFont;
function Attach (line 712) | void Attach(HBITMAP hBitmap)
function HBITMAP (line 719) | HBITMAP Detach()
function HBITMAP (line 731) | HBITMAP LoadBitmap(ATL::_U_STRINGorID bitmap)
function HBITMAP (line 738) | HBITMAP LoadOEMBitmap(UINT nIDBitmap) // for OBM_/OCR_/OIC_
function HBITMAP (line 754) | HBITMAP CreateBitmap(int nWidth, int nHeight, UINT nPlanes, UINT nBitsPe...
function HBITMAP (line 762) | HBITMAP CreateBitmapIndirect(LPBITMAP lpBitmap)
function HBITMAP (line 770) | HBITMAP CreateCompatibleBitmap(HDC hDC, int nWidth, int nHeight)
function HBITMAP (line 778) | HBITMAP CreateDiscardableBitmap(HDC hDC, int nWidth, int nHeight)
function BOOL (line 786) | BOOL DeleteObject()
function GetBitmap (line 796) | int GetBitmap(BITMAP* pBitMap) const
function GetBitmap (line 802) | bool GetBitmap(BITMAP& bm) const
function GetSize (line 808) | bool GetSize(SIZE& size) const
function DWORD (line 820) | DWORD GetBitmapBits(DWORD dwCount, LPVOID lpBits) const
function DWORD (line 828) | DWORD SetBitmapBits(DWORD dwCount, const void* lpBits)
function BOOL (line 836) | BOOL GetBitmapDimension(LPSIZE lpSize) const
function HBITMAP (line 849) | HBITMAP CreateDIBitmap(HDC hDC, CONST BITMAPINFOHEADER* lpbmih, DWORD dw...
function HBITMAP (line 857) | HBITMAP CreateDIBSection(HDC hDC, CONST BITMAPINFO* lpbmi, UINT uColorUs...
function GetDIBits (line 865) | int GetDIBits(HDC hDC, UINT uStartScan, UINT cScanLines, LPVOID lpvBits...
function SetDIBits (line 871) | int SetDIBits(HDC hDC, UINT uStartScan, UINT cScanLines, CONST VOID* lpv...
type CBitmapT (line 879) | typedef CBitmapT<false> CBitmapHandle;
type CBitmapT (line 880) | typedef CBitmapT<true> CBitmap;
function Attach (line 909) | void Attach(HPALETTE hPalette)
function HPALETTE (line 916) | HPALETTE Detach()
function HPALETTE (line 928) | HPALETTE CreatePalette(LPLOGPALETTE lpLogPalette)
function HPALETTE (line 936) | HPALETTE CreateHalftonePalette(HDC hDC)
function BOOL (line 945) | BOOL DeleteObject()
function UINT (line 963) | UINT GetPaletteEntries(UINT nStartIndex, UINT nNumEntries, LPPALETTEENTR...
function UINT (line 969) | UINT SetPaletteEntries(UINT nStartIndex, UINT nNumEntries, LPPALETTEENTR...
function AnimatePalette (line 977) | void AnimatePalette(UINT nStartIndex, UINT nNumEntries, LPPALETTEENTRY l...
function BOOL (line 983) | BOOL ResizePalette(UINT nNumEntries)
function UINT (line 990) | UINT GetNearestPaletteIndex(COLORREF crColor) const
type CPaletteT (line 997) | typedef CPaletteT<false> CPaletteHandle;
type CPaletteT (line 998) | typedef CPaletteT<true> CPalette;
function Attach (line 1027) | void Attach(HRGN hRgn)
function HRGN (line 1034) | HRGN Detach()
function HRGN (line 1046) | HRGN CreateRectRgn(int x1, int y1, int x2, int y2)
function HRGN (line 1053) | HRGN CreateRectRgnIndirect(LPCRECT lpRect)
function HRGN (line 1061) | HRGN CreateEllipticRgn(int x1, int y1, int x2, int y2)
function HRGN (line 1068) | HRGN CreateEllipticRgnIndirect(LPCRECT lpRect)
function HRGN (line 1075) | HRGN CreatePolygonRgn(LPPOINT lpPoints, int nCount, int nMode)
function HRGN (line 1082) | HRGN CreatePolyPolygonRgn(LPPOINT lpPoints, LPINT lpPolyCounts, int nCou...
function HRGN (line 1089) | HRGN CreateRoundRectRgn(int x1, int y1, int x2, int y2, int x3, int y3)
function HRGN (line 1096) | HRGN CreateFromPath(HDC hDC)
function HRGN (line 1104) | HRGN CreateFromData(const XFORM* lpXForm, int nCount, const RGNDATA* pRg...
function BOOL (line 1112) | BOOL DeleteObject()
function SetRectRgn (line 1122) | void SetRectRgn(int x1, int y1, int x2, int y2)
function SetRectRgn (line 1128) | void SetRectRgn(LPCRECT lpRect)
function CombineRgn (line 1134) | int CombineRgn(HRGN hRgnSrc1, HRGN hRgnSrc2, int nCombineMode)
function CombineRgn (line 1140) | int CombineRgn(HRGN hRgnSrc, int nCombineMode)
function CopyRgn (line 1146) | int CopyRgn(HRGN hRgnSrc)
function BOOL (line 1152) | BOOL EqualRgn(HRGN hRgn) const
function OffsetRgn (line 1158) | int OffsetRgn(int x, int y)
function OffsetRgn (line 1164) | int OffsetRgn(POINT point)
function GetRgnBox (line 1170) | int GetRgnBox(LPRECT lpRect) const
function BOOL (line 1176) | BOOL PtInRegion(int x, int y) const
function BOOL (line 1182) | BOOL PtInRegion(POINT point) const
function BOOL (line 1188) | BOOL RectInRegion(LPCRECT lpRect) const
function GetRegionData (line 1194) | int GetRegionData(LPRGNDATA lpRgnData, int nDataSize) const
type CRgnT (line 1201) | typedef CRgnT<false> CRgnHandle;
type CRgnT (line 1202) | typedef CRgnT<true> CRgn;
function Attach (line 1232) | void Attach(HDC hDC)
function HDC (line 1239) | HDC Detach()
function HDC (line 1289) | HDC CreateDC(LPCTSTR lpszDriverName, LPCTSTR lpszDeviceName, LPCTSTR lps...
function BOOL (line 1303) | BOOL DeleteDC()
function SaveDC (line 1314) | int SaveDC()
function BOOL (line 1320) | BOOL RestoreDC(int nSavedDC)
function GetDeviceCaps (line 1326) | int GetDeviceCaps(int nIndex) const
function UINT (line 1333) | UINT SetBoundsRect(LPCRECT lpRectBounds, UINT flags)
function UINT (line 1339) | UINT GetBoundsRect(LPRECT lpRectBounds, UINT flags) const
function BOOL (line 1345) | BOOL ResetDC(const DEVMODE* lpDevMode)
function BOOL (line 1352) | BOOL GetBrushOrg(LPPOINT lpPoint) const
function EnumObjects (line 1372) | int EnumObjects(int nObjectType, int (CALLBACK* lpfn)(LPVOID, LPARAM), L...
function HPEN (line 1384) | HPEN SelectPen(HPEN hPen)
function HBRUSH (line 1395) | HBRUSH SelectBrush(HBRUSH hBrush)
function HFONT (line 1402) | HFONT SelectFont(HFONT hFont)
function HBITMAP (line 1409) | HBITMAP SelectBitmap(HBITMAP hBitmap)
function SelectRgn (line 1416) | int SelectRgn(HRGN hRgn) // special return for regions
function HPEN (line 1424) | HPEN SelectStockPen(int nPen)
function HBRUSH (line 1435) | HBRUSH SelectStockBrush(int nBrush)
function HFONT (line 1445) | HFONT SelectStockFont(int nFont)
function HPALETTE (line 1455) | HPALETTE SelectStockPalette(int nPalette, BOOL bForceBackground)
function COLORREF (line 1462) | COLORREF GetNearestColor(COLORREF crColor) const
function HPALETTE (line 1468) | HPALETTE SelectPalette(HPALETTE hPalette, BOOL bForceBackground)
function UINT (line 1475) | UINT RealizePalette()
function UpdateColors (line 1482) | void UpdateColors()
function COLORREF (line 1528) | COLORREF SetBkColor(COLORREF crColor)
function SetBkMode (line 1534) | int SetBkMode(int nBkMode)
function SetPolyFillMode (line 1541) | int SetPolyFillMode(int nPolyFillMode)
function SetROP2 (line 1548) | int SetROP2(int nDrawMode)
function SetStretchBltMode (line 1555) | int SetStretchBltMode(int nStretchMode)
function COLORREF (line 1562) | COLORREF SetTextColor(COLORREF crColor)
function BOOL (line 1569) | BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const
function BOOL (line 1575) | BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust)
function BOOL (line 1588) | BOOL GetViewportOrg(LPPOINT lpPoint) const
function SetMapMode (line 1594) | int SetMapMode(int nMapMode)
function BOOL (line 1622) | BOOL GetViewportExt(LPSIZE lpSize) const
function BOOL (line 1649) | BOOL GetWindowOrg(LPPOINT lpPoint) const
function BOOL (line 1674) | BOOL GetWindowExt(LPSIZE lpSize) const
function BOOL (line 1705) | BOOL DPtoLP(LPRECT lpRect) const
function BOOL (line 1711) | BOOL DPtoLP(LPSIZE lpSize) const
function BOOL (line 1730) | BOOL LPtoDP(LPRECT lpRect) const
function BOOL (line 1736) | BOOL LPtoDP(LPSIZE lpSize) const
function DPtoHIMETRIC (line 1752) | void DPtoHIMETRIC(LPSIZE lpSize) const
function HIMETRICtoDP (line 1774) | void HIMETRICtoDP(LPSIZE lpSize) const
function LPtoHIMETRIC (line 1796) | void LPtoHIMETRIC(LPSIZE lpSize) const
function HIMETRICtoLP (line 1802) | void HIMETRICtoLP(LPSIZE lpSize) const
function BOOL (line 1810) | BOOL FillRgn(HRGN hRgn, HBRUSH hBrush)
function BOOL (line 1817) | BOOL FrameRgn(HRGN hRgn, HBRUSH hBrush, int nWidth, int nHeight)
function BOOL (line 1823) | BOOL InvertRgn(HRGN hRgn)
function BOOL (line 1829) | BOOL PaintRgn(HRGN hRgn)
function GetClipBox (line 1837) | int GetClipBox(LPRECT lpRect) const
function GetClipRgn (line 1843) | int GetClipRgn(CRgn& region) const
function BOOL (line 1857) | BOOL PtVisible(int x, int y) const
function BOOL (line 1863) | BOOL PtVisible(POINT point) const
function BOOL (line 1870) | BOOL RectVisible(LPCRECT lpRect) const
function SelectClipRgn (line 1876) | int SelectClipRgn(HRGN hRgn)
function ExcludeClipRect (line 1882) | int ExcludeClipRect(int x1, int y1, int x2, int y2)
function ExcludeClipRect (line 1888) | int ExcludeClipRect(LPCRECT lpRect)
function ExcludeUpdateRgn (line 1895) | int ExcludeUpdateRgn(HWND hWnd)
function IntersectClipRect (line 1902) | int IntersectClipRect(int x1, int y1, int x2, int y2)
function IntersectClipRect (line 1908) | int IntersectClipRect(LPCRECT lpRect)
function OffsetClipRgn (line 1915) | int OffsetClipRgn(int x, int y)
function OffsetClipRgn (line 1921) | int OffsetClipRgn(SIZE size)
function SelectClipRgn (line 1927) | int SelectClipRgn(HRGN hRgn, int nMode)
function BOOL (line 1936) | BOOL GetCurrentPosition(LPPOINT lpPoint) const
function BOOL (line 1954) | BOOL LineTo(int x, int y)
function BOOL (line 1960) | BOOL LineTo(POINT point)
function BOOL (line 1968) | BOOL Arc(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 1974) | BOOL Arc(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function BOOL (line 1983) | BOOL Polyline(const POINT* lpPoints, int nCount)
function BOOL (line 1990) | BOOL AngleArc(int x, int y, int nRadius, float fStartAngle, float fSweep...
function BOOL (line 1996) | BOOL ArcTo(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 2002) | BOOL ArcTo(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function SetArcDirection (line 2015) | int SetArcDirection(int nArcDirection)
function BOOL (line 2021) | BOOL PolyDraw(const POINT* lpPoints, const BYTE* lpTypes, int nCount)
function BOOL (line 2027) | BOOL PolylineTo(const POINT* lpPoints, int nCount)
function BOOL (line 2033) | BOOL PolyPolyline(const POINT* lpPoints,
function BOOL (line 2040) | BOOL PolyBezier(const POINT* lpPoints, int nCount)
function BOOL (line 2046) | BOOL PolyBezierTo(const POINT* lpPoints, int nCount)
function BOOL (line 2054) | BOOL FillRect(LPCRECT lpRect, HBRUSH hBrush)
function BOOL (line 2060) | BOOL FillRect(LPCRECT lpRect, int nColorIndex)
function BOOL (line 2071) | BOOL FrameRect(LPCRECT lpRect, HBRUSH hBrush)
function BOOL (line 2079) | BOOL InvertRect(LPCRECT lpRect)
function BOOL (line 2086) | BOOL DrawIcon(int x, int y, HICON hIcon)
function BOOL (line 2096) | BOOL DrawIcon(POINT point, HICON hIcon)
function BOOL (line 2146) | BOOL Chord(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 2152) | BOOL Chord(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function DrawFocusRect (line 2159) | void DrawFocusRect(LPCRECT lpRect)
function BOOL (line 2165) | BOOL Ellipse(int x1, int y1, int x2, int y2)
function BOOL (line 2171) | BOOL Ellipse(LPCRECT lpRect)
function BOOL (line 2178) | BOOL Pie(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 2184) | BOOL Pie(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function BOOL (line 2191) | BOOL Polygon(const POINT* lpPoints, int nCount)
function BOOL (line 2198) | BOOL PolyPolygon(const POINT* lpPoints, const INT* lpPolyCounts, int nCo...
function BOOL (line 2205) | BOOL Rectangle(int x1, int y1, int x2, int y2)
function BOOL (line 2211) | BOOL Rectangle(LPCRECT lpRect)
function BOOL (line 2217) | BOOL RoundRect(int x1, int y1, int x2, int y2, int x3, int y3)
function BOOL (line 2223) | BOOL RoundRect(LPCRECT lpRect, POINT point)
function BOOL (line 2230) | BOOL PatBlt(int x, int y, int nWidth, int nHeight, DWORD dwRop)
function BOOL (line 2236) | BOOL BitBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC,
function BOOL (line 2243) | BOOL StretchBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, int x...
function COLORREF (line 2249) | COLORREF GetPixel(int x, int y) const
function COLORREF (line 2255) | COLORREF GetPixel(POINT point) const
function COLORREF (line 2261) | COLORREF SetPixel(int x, int y, COLORREF crColor)
function COLORREF (line 2267) | COLORREF SetPixel(POINT point, COLORREF crColor)
function BOOL (line 2274) | BOOL FloodFill(int x, int y, COLORREF crColor)
function BOOL (line 2280) | BOOL ExtFloodFill(int x, int y, COLORREF crColor, UINT nFillType)
function BOOL (line 2287) | BOOL MaskBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, int xSrc...
function BOOL (line 2294) | BOOL PlgBlt(LPPOINT lpPoint, HDC hSrcDC, int xSrc, int ySrc, int nWidth,...
function BOOL (line 2300) | BOOL SetPixelV(int x, int y, COLORREF crColor)
function BOOL (line 2306) | BOOL SetPixelV(POINT point, COLORREF crColor)
function BOOL (line 2315) | BOOL TransparentBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, i...
function BOOL (line 2321) | BOOL TransparentImage(int x, int y, int nWidth, int nHeight, HDC hSrcDC,...
function BOOL (line 2329) | BOOL GradientFill(const PTRIVERTEX pVertices, DWORD nVertices, void* pMe...
function BOOL (line 2335) | BOOL GradientFillRect(RECT& rect, COLORREF clr1, COLORREF clr2, bool bHo...
function BOOL (line 2362) | BOOL AlphaBlend(int x, int y, int nWidth, int nHeight, HDC hSrcDC, int x...
function BOOL (line 2374) | BOOL DitherBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, HBITMA...
function DrawText (line 2513) | int DrawText(LPCTSTR lpstrText, int cchText, LPRECT lpRect, UINT uFormat)
function DrawText (line 2522) | int DrawText(LPTSTR lpstrText, int cchText, LPRECT lpRect, UINT uFormat)
function DrawShadowText (line 2537) | int DrawShadowText(LPCWSTR lpstrText, int cchText, LPRECT lpRect, DWORD ...
function BOOL (line 2559) | BOOL GetTextExtent(LPCTSTR lpszString, int nCount, LPSIZE lpSize) const
function BOOL (line 2582) | BOOL GrayString(HBRUSH hBrush, BOOL (CALLBACK* lpfnOutput)(HDC, LPARAM, ...
function UINT (line 2596) | UINT SetTextAlign(UINT nFlags)
function GetTextFace (line 2603) | int GetTextFace(LPTSTR lpszFacename, int nCount) const
function BOOL (line 2617) | BOOL GetTextFace(BSTR& bstrFace) const
function GetTextFace (line 2642) | int GetTextFace(_CSTRING_NS::CString& strFace) const
function BOOL (line 2659) | BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const
function SetTextJustification (line 2666) | int SetTextJustification(int nBreakExtra, int nBreakCount)
function SetTextCharacterExtra (line 2678) | int SetTextCharacterExtra(int nCharExtra)
function BOOL (line 2686) | BOOL DrawEdge(LPRECT lpRect, UINT nEdge, UINT nFlags)
function BOOL (line 2692) | BOOL DrawFrameControl(LPRECT lpRect, UINT nType, UINT nState)
function BOOL (line 2699) | BOOL ScrollDC(int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, ...
function BOOL (line 2707) | BOOL GetCharWidth(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const
function BOOL (line 2714) | BOOL GetCharWidth32(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const
function DWORD (line 2720) | DWORD SetMapperFlags(DWORD dwFlag)
function BOOL (line 2726) | BOOL GetAspectRatioFilter(LPSIZE lpSize) const
function BOOL (line 2732) | BOOL GetCharABCWidths(UINT nFirstChar, UINT nLastChar, LPABC lpabc) const
function DWORD (line 2738) | DWORD GetFontData(DWORD dwTable, DWORD dwOffset, LPVOID lpData, DWORD cb...
function GetKerningPairs (line 2744) | int GetKerningPairs(int nPairs, LPKERNINGPAIR lpkrnpair) const
function UINT (line 2750) | UINT GetOutlineTextMetrics(UINT cbData, LPOUTLINETEXTMETRIC lpotm) const
function DWORD (line 2756) | DWORD GetGlyphOutline(UINT nChar, UINT nFormat, LPGLYPHMETRICS lpgm, DWO...
function BOOL (line 2762) | BOOL GetCharABCWidths(UINT nFirstChar, UINT nLastChar, LPABCFLOAT lpABCF...
function BOOL (line 2768) | BOOL GetCharWidth(UINT nFirstChar, UINT nLastChar, float* lpFloatBuffer)...
function Escape (line 2777) | int Escape(int nEscape, int nCount, LPCSTR lpszInData, LPVOID lpOutData)
function Escape (line 2784) | int Escape(int nEscape, int nInputSize, LPCSTR lpszInputData,
function DrawEscape (line 2792) | int DrawEscape(int nEscape, int nInputSize, LPCSTR lpszInputData)
function StartDoc (line 2801) | int StartDoc(LPCTSTR lpszDocName) // old Win3.0 version
function StartDoc (line 2809) | int StartDoc(LPDOCINFO lpDocInfo)
function StartPage (line 2815) | int StartPage()
function EndPage (line 2821) | int EndPage()
function SetAbortProc (line 2827) | int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int))
function AbortDoc (line 2833) | int AbortDoc()
function EndDoc (line 2839) | int EndDoc()
function BOOL (line 2848) | BOOL PlayMetaFile(HMETAFILE hMF)
function BOOL (line 2861) | BOOL PlayMetaFile(HENHMETAFILE hEnhMetaFile, LPCRECT lpBounds)
function BOOL (line 2867) | BOOL AddMetaFileComment(UINT nDataSize, const BYTE* pCommentData) // can...
function EnumMetaFileProc (line 2874) | static int CALLBACK EnumMetaFileProc(HDC hDC, HANDLETABLE* pHandleTable,...
function BOOL (line 2964) | BOOL AbortPath()
function BOOL (line 2970) | BOOL BeginPath()
function BOOL (line 2976) | BOOL CloseFigure()
function BOOL (line 2982) | BOOL EndPath()
function BOOL (line 2988) | BOOL FillPath()
function BOOL (line 2994) | BOOL FlattenPath()
function BOOL (line 3000) | BOOL StrokeAndFillPath()
function BOOL (line 3006) | BOOL StrokePath()
function BOOL (line 3012) | BOOL WidenPath()
function BOOL (line 3018) | BOOL GetMiterLimit(PFLOAT pfMiterLimit) const
function BOOL (line 3024) | BOOL SetMiterLimit(float fMiterLimit)
function GetPath (line 3030) | int GetPath(LPPOINT lpPoints, LPBYTE lpTypes, int nCount) const
function BOOL (line 3036) | BOOL SelectClipPath(int nMode)
function CBrushHandle (line 3044) | static CBrushHandle PASCAL GetHalftoneBrush()
function FillSolidRect (line 3123) | void FillSolidRect(LPCRECT lpRect, COLORREF clr)
function FillSolidRect (line 3136) | void FillSolidRect(int x, int y, int cx, int cy, COLORREF clr)
function Draw3dRect (line 3144) | void Draw3dRect(LPCRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomR...
function Draw3dRect (line 3150) | void Draw3dRect(int x, int y, int cx, int cy, COLORREF clrTopLeft, COLOR...
function SetDIBitsToDevice (line 3160) | int SetDIBitsToDevice(int x, int y, DWORD dwWidth, DWORD dwHeight, int x...
function StretchDIBits (line 3168) | int StretchDIBits(int x, int y, int nWidth, int nHeight, int xSrc, int y...
function UINT (line 3174) | UINT GetDIBColorTable(UINT uStartIndex, UINT cEntries, RGBQUAD* pColors)...
function UINT (line 3180) | UINT SetDIBColorTable(UINT uStartIndex, UINT cEntries, CONST RGBQUAD* pC...
function ChoosePixelFormat (line 3189) | int ChoosePixelFormat(CONST PIXELFORMATDESCRIPTOR* ppfd)
function DescribePixelFormat (line 3195) | int DescribePixelFormat(int iPixelFormat, UINT nBytes, LPPIXELFORMATDESC...
function BOOL (line 3207) | BOOL SetPixelFormat(int iPixelFormat, CONST PIXELFORMATDESCRIPTOR* ppfd)
function BOOL (line 3213) | BOOL SwapBuffers()
function HGLRC (line 3219) | HGLRC wglCreateContext()
function HGLRC (line 3225) | HGLRC wglCreateLayerContext(int iLayerPlane)
function BOOL (line 3231) | BOOL wglMakeCurrent(HGLRC hglrc)
function BOOL (line 3237) | BOOL wglUseFontBitmaps(DWORD dwFirst, DWORD dwCount, DWORD listBase)
function BOOL (line 3243) | BOOL wglUseFontOutlines(DWORD dwFirst, DWORD dwCount, DWORD listBase, FL...
function BOOL (line 3249) | BOOL wglDescribeLayerPlane(int iPixelFormat, int iLayerPlane, UINT nByte...
function wglSetLayerPaletteEntries (line 3255) | int wglSetLayerPaletteEntries(int iLayerPlane, int iStart, int cEntries,...
function wglGetLayerPaletteEntries (line 3261) | int wglGetLayerPaletteEntries(int iLayerPlane, int iStart, int cEntries,...
function BOOL (line 3267) | BOOL wglRealizeLayerPalette(int iLayerPlane, BOOL bRealize)
function BOOL (line 3273) | BOOL wglSwapLayerBuffers(UINT uPlanes)
function COLORREF (line 3288) | COLORREF SetDCPenColor(COLORREF clr)
function COLORREF (line 3300) | COLORREF SetDCBrushColor(COLORREF clr)
function DWORD (line 3307) | DWORD GetFontUnicodeRanges(LPGLYPHSET lpgs) const
function DWORD (line 3314) | DWORD GetGlyphIndices(LPCTSTR lpstr, int cch, LPWORD pgi, DWORD dwFlags)...
function BOOL (line 3320) | BOOL GetTextExtentPointI(LPWORD pgiIn, int cgi, LPSIZE lpSize) const
function BOOL (line 3326) | BOOL GetTextExtentExPointI(LPWORD pgiIn, int cgi, int nMaxExtent, LPINT ...
function BOOL (line 3332) | BOOL GetCharWidthI(UINT giFirst, UINT cgi, LPWORD pgi, LPINT lpBuffer) c...
function BOOL (line 3338) | BOOL GetCharABCWidthsI(UINT giFirst, UINT cgi, LPWORD pgi, LPABC lpabc) ...
function BOOL (line 3347) | BOOL ColorCorrectPalette(HPALETTE hPalette, DWORD dwFirstEntry, DWORD dw...
type CDCT (line 3355) | typedef CDCT<false> CDCHandle;
type CDCT (line 3356) | typedef CDCT<true> CDC;
function class (line 3362) | class CPaintDC : public CDC
function class (line 3386) | class CClientDC : public CDC
function class (line 3407) | class CWindowDC : public CDC
function class (line 3428) | class CMemoryDC : public CDC
function class (line 3462) | class CEnhMetaFileInfo
function BYTE (line 3483) | BYTE* GetEnhMetaFileBits()
function LPTSTR (line 3495) | LPTSTR GetEnhMetaFileDescription()
function ENHMETAHEADER (line 3507) | ENHMETAHEADER* GetEnhMetaFileHeader()
function PIXELFORMATDESCRIPTOR (line 3517) | PIXELFORMATDESCRIPTOR* GetEnhMetaFilePixelFormat()
function Attach (line 3552) | void Attach(HENHMETAFILE hEMF)
function HENHMETAFILE (line 3559) | HENHMETAFILE Detach()
function BOOL (line 3570) | BOOL DeleteObject()
function UINT (line 3578) | UINT GetEnhMetaFileBits(UINT cbBuffer, LPBYTE lpbBuffer) const
function UINT (line 3584) | UINT GetEnhMetaFileDescription(UINT cchBuffer, LPTSTR lpszDescription) c...
function UINT (line 3590) | UINT GetEnhMetaFileHeader(LPENHMETAHEADER lpemh) const
function UINT (line 3598) | UINT GetEnhMetaFilePaletteEntries(UINT cEntries, LPPALETTEENTRY lppe) const
function UINT (line 3604) | UINT GetEnhMetaFilePixelFormat(DWORD cbBuffer, PIXELFORMATDESCRIPTOR* pp...
type CEnhMetaFileT (line 3611) | typedef CEnhMetaFileT<false> CEnhMetaFileHandle;
type CEnhMetaFileT (line 3612) | typedef CEnhMetaFileT<true> CEnhMetaFile;
function class (line 3615) | class CEnhMetaFileDC : public CDC
function Create (line 3643) | void Create(HDC hdcRef, LPCTSTR lpFilename, LPCRECT lpRect, LPCTSTR lpDe...
function HENHMETAFILE (line 3649) | HENHMETAFILE Close()
type DIBINFO16 (line 3672) | struct DIBINFO16 // a BITMAPINFO with 2 additional color bitfields
function AtlIsDib16 (line 3691) | inline bool AtlIsDib16(LPBITMAPINFOHEADER pbmih)
function AtlGetDibColorTableSize (line 3696) | inline int AtlGetDibColorTableSize(LPBITMAPINFOHEADER pbmih)
function AtlGetDibNumColors (line 3716) | inline int AtlGetDibNumColors(LPBITMAPINFOHEADER pbmih)
function HBITMAP (line 3746) | inline HBITMAP AtlGetDibBitmap(LPBITMAPINFO pbmi)
function HLOCAL (line 3806) | inline HLOCAL AtlCreatePackedDib16(HBITMAP hbm, SIZE size)
function AtlSetClipboardDib16 (line 3843) | inline bool AtlSetClipboardDib16(HBITMAP hbm, SIZE size, HWND hWnd)
function HBITMAP (line 3870) | inline HBITMAP AtlGetClipboardDib(HWND hWnd)
FILE: WTL/atlmisc.h
function namespace (line 59) | namespace WTL
function class (line 289) | class CRect : public RECT
function CopyRect (line 309) | CRect(const RECT& srcRect)
function operator (line 375) | operator LPRECT()
function BOOL (line 385) | BOOL IsRectEmpty() const
function BOOL (line 395) | BOOL PtInRect(POINT point) const
function SetRect (line 401) | void SetRect(int x1, int y1, int x2, int y2)
function SetRect (line 406) | void SetRect(POINT topLeft, POINT bottomRight)
function SetRectEmpty (line 411) | void SetRectEmpty()
function CopyRect (line 416) | void CopyRect(LPCRECT lpSrcRect)
function BOOL (line 421) | BOOL EqualRect(LPCRECT lpRect) const
function InflateRect (line 426) | void InflateRect(int x, int y)
function InflateRect (line 431) | void InflateRect(SIZE size)
function InflateRect (line 436) | void InflateRect(LPCRECT lpRect)
function InflateRect (line 444) | void InflateRect(int l, int t, int r, int b)
function DeflateRect (line 452) | void DeflateRect(int x, int y)
function DeflateRect (line 457) | void DeflateRect(SIZE size)
function DeflateRect (line 462) | void DeflateRect(LPCRECT lpRect)
function DeflateRect (line 470) | void DeflateRect(int l, int t, int r, int b)
function OffsetRect (line 478) | void OffsetRect(int x, int y)
function OffsetRect (line 482) | void OffsetRect(SIZE size)
function OffsetRect (line 487) | void OffsetRect(POINT point)
function NormalizeRect (line 492) | void NormalizeRect()
function MoveToY (line 510) | void MoveToY(int y)
function MoveToX (line 516) | void MoveToX(int x)
function MoveToXY (line 522) | void MoveToXY(int x, int y)
function MoveToXY (line 528) | void MoveToXY(POINT pt)
function BOOL (line 535) | BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2)
function BOOL (line 540) | BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2)
function BOOL (line 545) | BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2)
function BOOL (line 561) | BOOL operator !=(const RECT& rect) const
function operator (line 566) | void operator +=(POINT point)
function operator (line 571) | void operator +=(SIZE size)
function operator (line 576) | void operator +=(LPCRECT lpRect)
function operator (line 581) | void operator -=(POINT point)
function operator (line 586) | void operator -=(SIZE size)
function operator (line 591) | void operator -=(LPCRECT lpRect)
function operator (line 596) | void operator &=(const RECT& rect)
function operator (line 601) | void operator |=(const RECT& rect)
function CRect (line 656) | CRect operator |(const RECT& rect2) const
function CRect (line 663) | CRect MulDiv(int nMultiplier, int nDivisor) const
type CStringData (line 736) | struct CStringData
function class (line 757) | class CString
function Empty (line 909) | void Empty() // free up the data
function TCHAR (line 923) | TCHAR GetAt(int nIndex) const // 0 based
function TCHAR (line 930) | TCHAR operator [](int nIndex) const // same as GetAt
function SetAt (line 938) | void SetAt(int nIndex, TCHAR ch)
function Compare (line 1069) | int Compare(LPCTSTR lpsz) const // straight character (MBCS/Unicode aw...
function CompareNoCase (line 1074) | int CompareNoCase(LPCTSTR lpsz) const // ignore case (MBCS/Unicode aware)
function Collate (line 1082) | int Collate(LPCTSTR lpsz) const // NLS aware
function CollateNoCase (line 1087) | int CollateNoCase(LPCTSTR lpsz) const // ignore case
function CString (line 1094) | CString Mid(int nFirst, int nCount) const
function CString (line 1112) | CString Mid(int nFirst) const
function CString (line 1117) | CString Left(int nCount) const
function CString (line 1129) | CString Right(int nCount) const
function CString (line 1141) | CString SpanIncluding(LPCTSTR lpszCharSet) const // strspn equivalent
function CString (line 1147) | CString SpanExcluding(LPCTSTR lpszCharSet) const // strcspn equivalent
function MakeUpper (line 1154) | void MakeUpper()
function MakeLower (line 1160) | void MakeLower()
function MakeReverse (line 1166) | void MakeReverse()
function TrimRight (line 1173) | void TrimRight()
function TrimLeft (line 1202) | void TrimLeft()
function TrimRight (line 1218) | void TrimRight(TCHAR chTarget)
function TrimRight (line 1248) | void TrimRight(LPCTSTR lpszTargetList)
function TrimLeft (line 1296) | void TrimLeft(TCHAR chTarget)
function TrimLeft (line 1316) | void TrimLeft(LPCTSTR lpszTargets)
function Replace (line 1352) | int Replace(TCHAR chOld, TCHAR chNew)
function Replace (line 1379) | int Replace(LPCTSTR lpszOld, LPCTSTR lpszNew)
function Remove (line 1447) | int Remove(TCHAR chRemove)
function Insert (line 1472) | int Insert(int nIndex, TCHAR ch)
function Insert (line 1503) | int Insert(int nIndex, LPCTSTR pstr)
function Find (line 1559) | int Find(TCHAR ch) const // like "C" strchr
function ReverseFind (line 1564) | int ReverseFind(TCHAR ch) const
function Find (line 1573) | int Find(TCHAR ch, int nStart) const // starting at index
function FindOneOf (line 1586) | int FindOneOf(LPCTSTR lpszCharSet) const
function Find (line 1595) | int Find(LPCTSTR lpszSub) const // like "C" strstr
function Find (line 1600) | int Find(LPCTSTR lpszSub, int nStart) const // starting at index
function BOOL (line 1627) | BOOL __cdecl Format(LPCTSTR lpszFormat, ...)
function BOOL (line 1638) | BOOL __cdecl Format(UINT nFormatID, ...)
function BOOL (line 1651) | BOOL FormatV(LPCTSTR lpszFormat, va_list argList)
function BOOL (line 1981) | BOOL __cdecl FormatMessage(LPCTSTR lpszFormat, ...)
function BOOL (line 2000) | BOOL __cdecl FormatMessage(UINT nFormatID, ...)
function BOOL (line 2026) | BOOL LoadString(UINT nID) // load from string resource (255 chars max.)
function AnsiToOem (line 2064) | void AnsiToOem()
function OemToAnsi (line 2070) | void OemToAnsi()
function BSTR (line 2093) | BSTR SetSysString(BSTR* pbstr) const
function LPTSTR (line 2109) | LPTSTR GetBuffer(int nMinBufLength)
function LPTSTR (line 2147) | LPTSTR GetBufferSetLength(int nNewLength)
function FreeExtra (line 2159) | void FreeExtra()
function LPTSTR (line 2176) | LPTSTR LockBuffer()
function UnlockBuffer (line 2184) | void UnlockBuffer()
function BOOL (line 2207) | static BOOL __stdcall _IsValidString(LPCTSTR lpsz, int /*nLength*/ = -1)
function CStringData (line 2216) | CStringData* GetData() const
function Init (line 2222) | void Init()
function BOOL (line 2227) | BOOL AllocCopy(CString& dest, int nCopyLen, int nCopyIndex, int nExtraLe...
function BOOL (line 2255) | BOOL AllocBuffer(int nLen)
function AssignCopy (line 2290) | void AssignCopy(int nSrcLen, LPCTSTR lpszSrcData)
function BOOL (line 2307) | BOOL ConcatCopy(int nSrc1Len, LPCTSTR lpszSrc1Data, int nSrc2Len, LPCTST...
function ConcatInPlace (line 2331) | void ConcatInPlace(int nSrcLen, LPCTSTR lpszSrcData)
function CopyBeforeWrite (line 2361) | void CopyBeforeWrite()
function BOOL (line 2373) | BOOL AllocBeforeWrite(int nLen)
function Release (line 2385) | void Release()
function Release (line 2396) | static void PASCAL Release(CStringData* pData)
function SafeStrlen (line 2406) | static int PASCAL SafeStrlen(LPCTSTR lpsz)
function _LoadString (line 2411) | static int __stdcall _LoadString(UINT nID, LPTSTR lpszBuf, UINT nMaxBuf)
function CString (line 2430) | static const CString& __stdcall _GetEmptyString()
function _wcstombsz (line 2436) | static int __cdecl _wcstombsz(char* mbstr, const wchar_t* wcstr, size_t ...
function _mbstowcsz (line 2448) | static int __cdecl _mbstowcsz(wchar_t* wcstr, const char* mbstr, size_t ...
function TCHAR (line 2462) | static const TCHAR* _cstrchr(const TCHAR* p, TCHAR ch)
function TCHAR (line 2474) | static TCHAR* _cstrrev(TCHAR* pStr)
function TCHAR (line 2508) | static const TCHAR* _cstrstr(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrspn (line 2528) | static int _cstrspn(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrcspn (line 2552) | static int _cstrcspn(const TCHAR* pStr, const TCHAR* pCharSet)
function TCHAR (line 2576) | static const TCHAR* _cstrpbrk(const TCHAR* p, const TCHAR* lpszCharSet)
function _cstrcmp (line 2582) | static int _cstrcmp(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcmpi (line 2587) | static int _cstrcmpi(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcoll (line 2592) | static int _cstrcoll(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcolli (line 2599) | static int _cstrcolli(const TCHAR* pstrOne, const TCHAR* pstrOther)
function TCHAR (line 2606) | static const TCHAR* _cstrchr(const TCHAR* p, TCHAR ch)
function TCHAR (line 2611) | static TCHAR* _cstrrev(TCHAR* pStr)
function TCHAR (line 2616) | static const TCHAR* _cstrstr(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrspn (line 2621) | static int _cstrspn(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrcspn (line 2626) | static int _cstrcspn(const TCHAR* pStr, const TCHAR* pCharSet)
function TCHAR (line 2631) | static const TCHAR* _cstrpbrk(const TCHAR* p, const TCHAR* lpszCharSet)
function _cstrcmp (line 2636) | static int _cstrcmp(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcmpi (line 2641) | static int _cstrcmpi(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcoll (line 2647) | static int _cstrcoll(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcolli (line 2652) | static int _cstrcolli(const TCHAR* pstrOne, const TCHAR* pstrOther)
function TCHAR (line 2659) | static const TCHAR* _cstrrchr(const TCHAR* p, TCHAR ch)
function _cstrisdigit (line 2664) | static int _cstrisdigit(TCHAR ch)
function _cstrisspace (line 2669) | static int _cstrisspace(TCHAR ch)
function _cstrtoi (line 2674) | static int _cstrtoi(const TCHAR* nptr)
function TCHAR (line 2679) | static const TCHAR* _cstrchr_db(const TCHAR* p, TCHAR ch1, TCHAR ch2)
type _DocEntry (line 2824) | struct _DocEntry
function SetMaxEntries (line 2880) | void SetMaxEntries(int nMaxEntries)
function SetMaxItemLength (line 2895) | void SetMaxItemLength(int cchMaxLen)
function BOOL (line 2911) | BOOL AddToList(LPCTSTR lpstrDocName)
function BOOL (line 2942) | __declspec(deprecated)
function BOOL (line 2950) | BOOL GetFromList(int nItemID, LPTSTR lpstrDocName, int cchLength)
function BOOL (line 2963) | BOOL GetFromList(int nItemID, _CSTRING_NS::CString& strDocName)
function BOOL (line 2973) | BOOL RemoveFromList(int nItemID)
function BOOL (line 2985) | BOOL MoveToTop(int nItemID)
function BOOL (line 3002) | BOOL ReadFromRegistry(LPCTSTR lpstrRegKey)
function BOOL (line 3045) | BOOL WriteToRegistry(LPCTSTR lpstrRegKey)
function BOOL (line 3089) | BOOL UpdateMenu()
function CompactDocumentName (line 3156) | static bool CompactDocumentName(LPTSTR lpstrOut, LPCTSTR lpstrIn, int cc...
function LPCTSTR (line 3161) | static LPCTSTR GetRegKeyName()
function LPCTSTR (line 3166) | static LPCTSTR GetRegCountName()
function LPCTSTR (line 3171) | static LPCTSTR GetRegItemName()
function LPCTSTR (line 3179) | static LPCTSTR GetMRUEmptyText()
function class (line 3185) | class CRecentDocumentList : public CRecentDocumentListBase<CRecentDocume...
function HPEN (line 3597) | inline HPEN AtlGetStockPen(int nPen)
function HBRUSH (line 3607) | inline HBRUSH AtlGetStockBrush(int nBrush)
function HFONT (line 3617) | inline HFONT AtlGetStockFont(int nFont)
function HPALETTE (line 3627) | inline HPALETTE AtlGetStockPalette(int nPalette)
function _IsDBCSTrailByte (line 3638) | inline bool _IsDBCSTrailByte(LPCTSTR lpstr, int nChar)
function AtlCompactPath (line 3654) | inline bool AtlCompactPath(LPTSTR lpstrOut, LPCTSTR lpstrIn, int cchLen)
FILE: WTL/atlprint.h
function namespace (line 42) | namespace WTL
function OpenPrinter (line 185) | bool OpenPrinter(LPCTSTR lpszPrinterName, PRINTER_DEFAULTS* pprintdefs)
function ClosePrinter (line 217) | void ClosePrinter()
function Attach (line 295) | void Attach(HANDLE hPrinter)
function HANDLE (line 301) | HANDLE Detach()
type CPrinterT (line 311) | typedef CPrinterT<false> CPrinterHandle;
type CPrinterT (line 312) | typedef CPrinterT<true> CPrinter;
function Attach (line 344) | void Attach(HANDLE hDevModeNew)
function HANDLE (line 351) | HANDLE Detach()
function CopyFromPrinter (line 362) | bool CopyFromPrinter(HANDLE hPrinter)
function CopyFromDEVMODE (line 371) | bool CopyFromDEVMODE(const DEVMODE* pdm)
function CopyFromHDEVMODE (line 387) | bool CopyFromHDEVMODE(HANDLE hdm)
function HANDLE (line 399) | HANDLE CopyToHDEVMODE()
function UpdateForNewPrinter (line 416) | bool UpdateForNewPrinter(HANDLE hPrinter)
function operator (line 457) | operator DEVMODE*() const { return m_pDevMode; }
function Cleanup (line 460) | void Cleanup()
type CDevModeT (line 472) | typedef CDevModeT<false> CDevModeHandle;
type CDevModeT (line 473) | typedef CDevModeT<true> CDevMode;
function class (line 479) | class CPrinterDC : public CDC
function class (line 511) | class ATL_NO_VTABLE IPrintJobInfo
function BeginPrintJob (line 534) | BeginPrintJob(HDC /*hDC*/) // allocate handles needed, etc
function virtual (line 538) | virtual void EndPrintJob(HDC /*hDC*/, bool /*bAborted*/) // free handl...
function virtual (line 542) | virtual void PrePrintPage(UINT /*nPage*/, HDC hDC)
function virtual (line 549) | virtual void PostPrintPage(UINT /*nPage*/, HDC hDC)
function virtual (line 554) | virtual DEVMODE* GetNewDevModeForPage(UINT /*nLastPage*/, UINT /*nPage*/)
function virtual (line 559) | virtual bool IsValidPage(UINT /*nPage*/)
function class (line 569) | class CPrintJob
function DWORD (line 642) | static DWORD WINAPI StartProc(void* p)
function StartHelper (line 650) | bool StartHelper()
function CancelPrintJob (line 693) | void CancelPrintJob()
function class (line 703) | class CPrintPreview
function class (line 923) | class CPrintPreviewWindow : public CPrintPreviewWindowImpl<CPrintPreview...
FILE: WTL/atlribbon.h
function namespace (line 121) | namespace WTL
function LPCTSTR (line 190) | LPCTSTR UIGetText(int nID)
function namespace (line 243) | namespace RibbonUI
function HRESULT (line 768) | HRESULT OnGetText(REFPROPERTYKEY key, PROPVARIANT* ppv)
function virtual (line 782) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function virtual (line 790) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function HRESULT (line 823) | HRESULT OnGetImage(REFPROPERTYKEY key, PROPVARIANT* ppv)
function virtual (line 837) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function STDMETHODIMP (line 869) | STDMETHODIMP GetValue(REFPROPERTYKEY key, PROPVARIANT *value)
function AddRef (line 875) | STDMETHODIMP_(ULONG) AddRef()
function Release (line 880) | STDMETHODIMP_(ULONG) Release()
function STDMETHODIMP (line 885) | STDMETHODIMP QueryInterface(REFIID iid, void** ppv)
type CollectionImplBase (line 907) | typedef CollectionImplBase<TCollection, t_size> thisClass;
function m_size (line 935) | m_size(t_items)
function HRESULT (line 973) | HRESULT OnGetItem(UINT uIndex, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 983) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1001) | HRESULT DoGetCategory(UINT uCat, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1026) | HRESULT InvalidateItems()
function HRESULT (line 1031) | HRESULT InvalidateCategories()
function HRESULT (line 1036) | HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function m_uSelected (line 1087) | m_uSelected(UI_COLLECTION_INVALIDINDEX)
function UINT (line 1103) | UINT GetSelected()
function HRESULT (line 1121) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1140) | HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function HRESULT (line 1189) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1221) | HRESULT SetComboText(LPCWSTR sText)
function LPCWSTR (line 1229) | LPCWSTR GetComboText()
function HRESULT (line 1289) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1316) | HRESULT Select(UINT /*uItem*/, bool /*bUpdate*/ = false)
type CollectionCtrlImpl (line 1377) | typedef CollectionCtrlImpl<T, t_ID, TCollection> thisClass;
type TCollection (line 1380) | typedef TCollection Collection;
function virtual (line 1383) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function virtual (line 1396) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function HRESULT (line 1455) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function virtual (line 1510) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function virtual (line 1543) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function public (line 1572) | public TDocList
function virtual (line 1666) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function virtual (line 1704) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function virtual (line 1804) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
type T (line 2122) | typedef T WndRibbon;
function IsRibbonUI (line 2159) | bool IsRibbonUI()
function IUIFramework (line 2164) | IUIFramework* GetIUIFrameworkPtr()
function IUIRibbon (line 2179) | IUIRibbon* GetRibbonPtr()
function IUIContextualUI (line 2184) | IUIContextualUI* GetMenuPtr(UINT32 uID)
function UINT (line 2190) | UINT GetRibbonHeight()
function HRESULT (line 2214) | HRESULT DestroyRibbon()
function HRESULT (line 2227) | HRESULT operator >>(IStream* pIStream)
function HRESULT (line 2244) | HRESULT operator <<(IStream* pIStream)
function ResetRibbonSettings (line 2260) | void ResetRibbonSettings()
function HRESULT (line 2269) | HRESULT SaveRibbonSettings()
function HRESULT (line 2289) | HRESULT RestoreRibbonSettings()
function UI_CONTROLDOCK (line 2308) | UI_CONTROLDOCK GetQATDock()
function SetQATDock (line 2325) | bool SetQATDock(UI_CONTROLDOCK dockState)
function GetRibbonDisplayState (line 2345) | bool GetRibbonDisplayState(REFPROPERTYKEY key)
function IsRibbonMinimized (line 2386) | bool IsRibbonMinimized()
function IsRibbonHidden (line 2396) | bool IsRibbonHidden()
function UI_HSBCOLOR (line 2407) | UI_HSBCOLOR GetRibbonColor(REFPROPERTYKEY key)
function SetRibbonColor (line 2427) | bool SetRibbonColor(REFPROPERTYKEY key, UI_HSBCOLOR color)
function HRESULT (line 2449) | HRESULT SetRibbonModes(INT32 iModes)
function UI_CONTEXTAVAILABILITY (line 2456) | UI_CONTEXTAVAILABILITY GetRibbonContextAvail(UINT32 uID)
function HRESULT (line 2476) | HRESULT SetRibbonContextAvail(UINT32 uID, UI_CONTEXTAVAILABILITY cav)
function HasRibbonMenu (line 2485) | bool HasRibbonMenu(UINT32 uID)
function HRESULT (line 2491) | HRESULT TrackRibbonMenu(UINT32 uID, INT32 x, INT32 y)
function HRESULT (line 2500) | HRESULT TrackRibbonMenu(UINT32 uID, LPARAM lParam)
function HBITMAP (line 2506) | HBITMAP OnRibbonQueryImage(UINT nCmdID, REFPROPERTYKEY /*key*/)
function LPCWSTR (line 2511) | LPCWSTR OnRibbonQueryText(UINT nCmdID, REFPROPERTYKEY key)
function OnRibbonQueryState (line 2516) | bool OnRibbonQueryState(UINT nCmdID, REFPROPERTYKEY key)
function UI_CONTEXTAVAILABILITY (line 2521) | UI_CONTEXTAVAILABILITY OnRibbonQueryTabAvail(UINT nCmdID)
function LPCWSTR (line 2531) | LPCWSTR OnRibbonQueryComboText(UINT32 /*uCtrlID*/)
function LPCWSTR (line 2536) | LPCWSTR OnRibbonQueryCategoryText(UINT32 /*uCtrlID*/, UINT32 /*uCat*/)
function UINT32 (line 2541) | UINT32 OnRibbonQueryItemCategory(UINT32 /*uCtrlID*/, UINT32 /*uItem*/)
function LPCWSTR (line 2546) | LPCWSTR OnRibbonQueryItemText(UINT32 uCtrlID, UINT32 uItem)
function HBITMAP (line 2556) | HBITMAP OnRibbonQueryItemImage(UINT32 uCtrlID, UINT32 uItem)
function UINT32 (line 2561) | UINT32 OnRibbonQueryItemCommand(UINT32 uCtrlID, UINT32 uItem)
function UI_COMMANDTYPE (line 2566) | UI_COMMANDTYPE OnRibbonQueryItemCommandType(UINT32 /*uCtrlID*/, UINT32 /...
function LPCWSTR (line 2571) | LPCWSTR OnRibbonQueryRecentItemName(LPCWSTR sPath)
function OnRibbonQuerySpinnerValue (line 2581) | bool OnRibbonQuerySpinnerValue(UINT /*nCmdID*/, REFPROPERTYKEY /*key*/, ...
function OnRibbonQueryFloatSpinnerValue (line 2586) | bool OnRibbonQueryFloatSpinnerValue(UINT /*nCmdID*/, REFPROPERTYKEY /*ke...
function COLORREF (line 2591) | COLORREF OnRibbonQueryColor(UINT /*nCmdID*/)
function LPCWSTR (line 2596) | LPCWSTR OnRibbonQueryColorLabel(UINT /*nCmdID*/, REFPROPERTYKEY /*key*/)
function COLORREF (line 2601) | COLORREF* OnRibbonQueryColorArray(UINT /*nCmdID*/, REFPROPERTYKEY /*key*/)
function LPCWSTR (line 2606) | LPCWSTR* OnRibbonQueryColorTooltips(UINT /*nCmdID*/, REFPROPERTYKEY /*ke...
function OnRibbonItemSelected (line 2611) | bool OnRibbonItemSelected(UINT32 uCtrlID, UI_EXECUTIONVERB verb, UINT32 ...
function OnRibbonColorCtrlExecute (line 2617) | void OnRibbonColorCtrlExecute(UINT32 uCtrlID, UI_EXECUTIONVERB verb, UI_...
function OnRibbonFontCtrlExecute (line 2622) | void OnRibbonFontCtrlExecute(UINT32 uCtrlID, UI_EXECUTIONVERB verb, CHAR...
function OnRibbonSpinnerCtrlExecute (line 2627) | void OnRibbonSpinnerCtrlExecute(UINT32 uCtrlID, LONG* pVal)
function OnRibbonSpinnerCtrlExecute (line 2632) | void OnRibbonSpinnerCtrlExecute(UINT32 uCtrlID, DOUBLE* pVal)
function OnRibbonCommandExecute (line 2637) | void OnRibbonCommandExecute(UINT32 uCmdID)
function HBITMAP (line 2643) | HBITMAP DefRibbonQueryImage(UINT nCmdID)
function DefRibbonQueryState (line 2648) | bool DefRibbonQueryState(UINT nCmdID, REFPROPERTYKEY key)
function LPCTSTR (line 2668) | LPCTSTR DefRibbonQueryText(UINT nCmdID, REFPROPERTYKEY key)
function LPCWSTR (line 2698) | LPCWSTR DefRibbonQueryItemText(UINT32 uCtrlID, UINT32 uItem)
function HBITMAP (line 2703) | HBITMAP DefRibbonQueryItemImage(UINT32 uCtrlID, UINT32 uItem)
function UINT32 (line 2708) | UINT32 DefRibbonQueryItemCommand(UINT32 uCtrlID, UINT32 uItem)
function DefRibbonColorCtrlExecute (line 2713) | void DefRibbonColorCtrlExecute(UINT32 uCtrlID, UI_EXECUTIONVERB verb, UI...
function HRESULT (line 2739) | HRESULT InvalidateCtrl(UINT32 nID)
function HRESULT (line 2746) | HRESULT InvalidateProperty(UINT32 nID, REFPROPERTYKEY key, UI_INVALIDATI...
function STDMETHODIMP (line 2781) | STDMETHODIMP OnViewChanged(UINT32, UI_VIEWTYPE, IUnknown*, UI_VIEWVERB v...
function STDMETHODIMP (line 2802) | STDMETHODIMP OnCreateUICommand(UINT32 nCmdID, UI_COMMANDTYPE typeID, IUI...
function STDMETHODIMP (line 2811) | STDMETHODIMP OnDestroyUICommand(UINT32 nCmdID, UI_COMMANDTYPE, IUIComman...
function STDMETHODIMP (line 2818) | STDMETHODIMP Execute(UINT nCmdID,
function STDMETHODIMP (line 2828) | STDMETHODIMP UpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function AddRef (line 2837) | STDMETHODIMP_(ULONG) AddRef()
function Release (line 2842) | STDMETHODIMP_(ULONG) Release()
function STDMETHODIMP (line 2853) | STDMETHODIMP QueryInterface(REFIID iid, void** ppv)
function STDMETHODIMP (line 2876) | STDMETHODIMP QueryInterface(REFIID iid, void** ppv)
function ULONG (line 2887) | ULONG STDMETHODCALLTYPE AddRef()
function ULONG (line 2891) | ULONG STDMETHODCALLTYPE Release()
function virtual (line 2898) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function virtual (line 2922) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
type _ribbonCtrl (line 3065) | typedef struct
function ResetFrame (line 3181) | void ResetFrame()
function INT (line 3187) | INT CalcWin7Fix()
function NeedWin7Fix (line 3195) | bool NeedWin7Fix()
function UseCommandBarBitmaps (line 3202) | bool UseCommandBarBitmaps(bool bUse)
function HBITMAP (line 3265) | HBITMAP OnRibbonQueryImage(UINT nCmdID, REFPROPERTYKEY key)
function LRESULT (line 3315) | LRESULT OnActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL...
function LRESULT (line 3324) | LRESULT OnNCCalcSize(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& ...
function HBITMAP (line 3365) | HBITMAP GetCommandBarBitmap(UINT nCmdID)
function class (line 3398) | class CRibbonPersist
function LONG (line 3440) | LONG Restore(bool& bRibbonUI, HGLOBAL& hgSettings)
function LONG (line 3486) | LONG Delete()
FILE: WTL/atlscrl.h
function namespace (line 44) | namespace WTL
function BOOL (line 1285) | BOOL GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo)
type CFSBWindowT (line 1298) | typedef CFSBWindowT<ATL::CWindow> CFSBWindow;
type _ChildPlacement (line 1325) | struct _ChildPlacement
function GetScrollSize (line 1391) | void GetScrollSize(SIZE& sizeLog) const
function SetScrollLine (line 1397) | void SetScrollLine(int cxLogLine, int cyLogLine)
function SetScrollLine (line 1410) | void SetScrollLine(SIZE sizeLogLine)
function GetScrollLine (line 1415) | void GetScrollLine(SIZE& sizeLogLine) const
function SetScrollPage (line 1421) | void SetScrollPage(int cxLogPage, int cyLogPage)
function SetScrollPage (line 1435) | void SetScrollPage(SIZE sizeLogPage)
function GetScrollPage (line 1440) | void GetScrollPage(SIZE& sizeLogPage) const
function SetZoomScale (line 1445) | void SetZoomScale(float fZoomScale)
function SetZoomScaleMin (line 1463) | void SetZoomScaleMin(float fZoomScaleMin)
function SetZoomScaleMax (line 1476) | void SetZoomScaleMax(float fZoomScaleMax)
function SetZoomDelta (line 1489) | void SetZoomDelta(float fZoomDelta)
function SetZoomMode (line 1502) | void SetZoomMode(int nZoomMode)
function Zoom (line 1544) | void Zoom(int x, int y, float fZoomScale)
function Zoom (line 1564) | void Zoom(POINT pt, float fZoomScale)
function Zoom (line 1570) | void Zoom(RECT& rc)
function PrepareDC (line 1644) | void PrepareDC(CDCHandle dc)
function ClientToDevice (line 1675) | void ClientToDevice(POINT &pt)
function DeviceToClient (line 1681) | void DeviceToClient(POINT &pt)
function CenterOnPoint (line 1687) | void CenterOnPoint(POINT pt)
function CenterOnLogicalPoint (line 1720) | void CenterOnLogicalPoint(POINT ptLog)
function BOOL (line 1728) | BOOL PtInDevRect(POINT pt)
function NormalizeRect (line 1735) | void NormalizeRect(RECT& rc)
function DrawTrackRect (line 1752) | void DrawTrackRect()
function NotifyParentZoomChanged (line 1766) | void NotifyParentZoomChanged()
function LRESULT (line 1806) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function LRESULT (line 1842) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 1860) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1879) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1909) | LRESULT OnSetCursor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& b...
type ATL (line 1944) | typedef ATL::CWindowImpl< T, TBase, TWinTraits > _baseClass;
function MESSAGE_HANDLER (line 2058) | BEGIN_MSG_MAP(CScrollContainerImpl)
function DoSize (line 2081) | void DoSize(int cx, int cy)
function DoPaint (line 2089) | void DoPaint(CDCHandle dc)
function ScrollToView (line 2104) | void ScrollToView(POINT pt)
function ScrollToView (line 2109) | void ScrollToView(RECT& rect)
function ScrollToView (line 2114) | void ScrollToView(HWND hWnd) // client window coordinates
function UpdateLayout (line 2128) | void UpdateLayout()
function GetContainerRect (line 2146) | void GetContainerRect(RECT& rect)
function class (line 2158) | class CScrollContainer : public CScrollContainerImpl<CScrollContainer>
FILE: WTL/atlsplit.h
function namespace (line 31) | namespace WTL
function GetSplitterRect (line 119) | void GetSplitterRect(LPRECT lpRect) const
function SetSinglePaneMode (line 207) | bool SetSinglePaneMode(int nPane = SPLIT_PANE_NONE)
function SetSplitterDefaultPosPct (line 266) | void SetSplitterDefaultPosPct(int nPct)
function HWND (line 298) | HWND GetSplitterPane(int nPane) const
function SetActivePane (line 307) | bool SetActivePane(int nPane)
function GetActivePane (line 321) | int GetActivePane() const
function SetDefaultActivePane (line 362) | bool SetDefaultActivePane(int nPane)
function SetDefaultActivePane (line 373) | bool SetDefaultActivePane(HWND hWnd)
function DrawSplitter (line 392) | void DrawSplitter(CDCHandle dc)
function MoveSplitterBar (line 417) | void MoveSplitterBar()
function DrawSplitterBar (line 472) | void DrawSplitterBar(CDCHandle dc)
function DrawSplitterPane (line 500) | void DrawSplitterPane(CDCHandle dc, int nPane)
function LRESULT (line 536) | LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BO...
function LRESULT (line 567) | LRESULT OnSetCursor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& b...
function LRESULT (line 583) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 624) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 651) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,...
function LRESULT (line 692) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL&...
function LRESULT (line 748) | LRESULT OnSetFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM, BOOL& bHand...
function LRESULT (line 769) | LRESULT OnMouseActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /...
function LRESULT (line 793) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara...
function UpdateSplitterLayout (line 810) | void UpdateSplitterLayout()
function GetSplitterBarRect (line 845) | bool GetSplitterBarRect(LPRECT lpRect) const
function GetSplitterPaneRect (line 869) | bool GetSplitterPaneRect(int nPane, LPRECT lpRect) const
function IsOverSplitterRect (line 923) | bool IsOverSplitterRect(int x, int y) const
function IsOverSplitterBar (line 930) | bool IsOverSplitterBar(int x, int y) const
function DrawGhostBar (line 942) | void DrawGhostBar()
function GetSystemSettings (line 966) | void GetSystemSettings(bool bUpdate)
function StoreProportionalPos (line 1002) | void StoreProportionalPos()
function UpdateProportionalPos (line 1012) | void UpdateProportionalPos()
function StoreRightAlignPos (line 1029) | void StoreRightAlignPos()
function UpdateRightAlignPos (line 1039) | void UpdateRightAlignPos()
function BOOL (line 1069) | BOOL SubclassWindow(HWND hWnd)
function MESSAGE_HANDLER (line 1088) | BEGIN_MSG_MAP(CSplitterWindowImpl)
function LRESULT (line 1101) | LRESULT OnSize(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bH...
type CSplitterWindowT (line 1125) | typedef CSplitterWindowT<true> CSplitterWindow;
type CSplitterWindowT (line 1126) | typedef CSplitterWindowT<false> CHorSplitterWindow;
FILE: WTL/atltheme.h
function namespace (line 92) | namespace WTL
function Attach (line 128) | void Attach(HTHEME hTheme)
function HTHEME (line 133) | HTHEME Detach()
function IsThemingSupported (line 141) | static bool IsThemingSupported()
function HTHEME (line 169) | HTHEME OpenThemeData(HWND hWnd, LPCWSTR pszClassList)
function HRESULT (line 179) | HRESULT CloseThemeData()
function HRESULT (line 206) | HRESULT DrawThemeText(HDC hDC, int nPartID, int nStateID, LPCWSTR pszTex...
function HRESULT (line 212) | HRESULT GetThemeBackgroundContentRect(HDC hDC, int nPartID, int nStateID...
function HRESULT (line 218) | HRESULT GetThemeBackgroundExtent(HDC hDC, int nPartID, int nStateID, LPC...
function HRESULT (line 224) | HRESULT GetThemePartSize(HDC hDC, int nPartID, int nStateID, LPCRECT pRe...
function HRESULT (line 235) | HRESULT GetThemeTextExtent(HDC hDC, int nPartID, int nStateID, LPCWSTR p...
function HRESULT (line 241) | HRESULT GetThemeTextMetrics(HDC hDC, int nPartID, int nStateID, PTEXTMET...
function HRESULT (line 252) | HRESULT GetThemeBackgroundRegion(HDC hDC, int nPartID, int nStateID, LPC...
function HRESULT (line 258) | HRESULT HitTestThemeBackground(HDC hDC, int nPartID, int nStateID, DWORD...
function HRESULT (line 270) | HRESULT DrawThemeIcon(HDC hDC, int nPartID, int nStateID, LPCRECT pRect,...
function BOOL (line 276) | BOOL IsThemePartDefined(int nPartID, int nStateID) const
function BOOL (line 282) | BOOL IsThemeBackgroundPartiallyTransparent(int nPartID, int nStateID) const
function HRESULT (line 288) | HRESULT GetThemeColor(int nPartID, int nStateID, int nPropID, COLORREF* ...
function HRESULT (line 294) | HRESULT GetThemeMetric(HDC hDC, int nPartID, int nStateID, int nPropID, ...
function HRESULT (line 300) | HRESULT GetThemeString(int nPartID, int nStateID, int nPropID, LPWSTR ps...
function HRESULT (line 306) | HRESULT GetThemeBool(int nPartID, int nStateID, int nPropID, BOOL* pfVal...
function HRESULT (line 312) | HRESULT GetThemeInt(int nPartID, int nStateID, int nPropID, int* pnVal) ...
function HRESULT (line 318) | HRESULT GetThemeEnumValue(int nPartID, int nStateID, int nPropID, int* p...
function HRESULT (line 324) | HRESULT GetThemePosition(int nPartID, int nStateID, int nPropID, LPPOINT...
function HRESULT (line 331) | HRESULT GetThemeFont(int nPartID, HDC hDC, int nStateID, int nPropID, LO...
function HRESULT (line 342) | HRESULT GetThemeFont(HDC hDC, int nPartID, int nStateID, int nPropID, LO...
function HRESULT (line 353) | HRESULT GetThemeRect(int nPartID, int nStateID, int nPropID, LPRECT pRec...
function HRESULT (line 359) | HRESULT GetThemeMargins(HDC hDC, int nPartID, int nStateID, int nPropID,...
function HRESULT (line 365) | HRESULT GetThemeIntList(int nPartID, int nStateID, int nPropID, INTLIST*...
function HRESULT (line 371) | HRESULT GetThemePropertyOrigin(int nPartID, int nStateID, int nPropID, e...
function HRESULT (line 377) | HRESULT GetThemeFilename(int nPartID, int nStateID, int nPropID, LPWSTR ...
function COLORREF (line 383) | COLORREF GetThemeSysColor(int nColorID) const
function HBRUSH (line 389) | HBRUSH GetThemeSysColorBrush(int nColorID) const
function GetThemeSysSize (line 395) | int GetThemeSysSize(int nSizeID) const
function BOOL (line 401) | BOOL GetThemeSysBool(int nBoolID) const
function HRESULT (line 407) | HRESULT GetThemeSysFont(int nFontID, LOGFONTW* plf) const
function HRESULT (line 418) | HRESULT GetThemeSysString(int nStringID, LPWSTR pszStringBuff, int cchMa...
function HRESULT (line 424) | HRESULT GetThemeSysInt(int nIntID, int* pnValue) const
function HTHEME (line 431) | HTHEME OpenThemeDataEx(HWND hWnd, LPCWSTR pszClassList, DWORD dwFlags)
function HRESULT (line 442) | HRESULT DrawThemeTextEx(HDC hDC, int nPartID, int nStateID, LPCWSTR pszT...
function HRESULT (line 448) | HRESULT GetThemeTransitionDuration(int nPartID, int nFromStateID, int nT...
function HRESULT (line 457) | HRESULT GetThemeBitmap(int nPartID, int nStateID, int nPropID, ULONG uFl...
function HRESULT (line 463) | HRESULT GetThemeStream(int nPartID, int nStateID, int nPropID, VOID** pp...
function HRESULT (line 471) | HRESULT GetThemeAnimationProperty(int iStoryboardId, int iTargetId, TA_P...
function HRESULT (line 477) | HRESULT GetThemeAnimationTransform(int iStoryboardId, int iTargetId, DWO...
function HRESULT (line 483) | HRESULT GetThemeTimingFunction(int iTimingFunctionId, TA_TIMINGFUNCTION*...
function SetThemeClassList (line 594) | bool SetThemeClassList(LPCWSTR lpstrThemeClassList)
function GetThemeClassList (line 615) | bool GetThemeClassList(LPWSTR lpstrThemeClassList, int cchListBuffer) const
function HTHEME (line 648) | HTHEME OpenThemeData()
function HTHEME (line 660) | HTHEME OpenThemeData(LPCWSTR pszClassList)
function HRESULT (line 668) | HRESULT SetWindowTheme(LPCWSTR pszSubAppName, LPCWSTR pszSubIDList)
function HRESULT (line 688) | HRESULT EnableThemeDialogTexture(DWORD dwFlags)
function HRESULT (line 723) | HRESULT SetWindowThemeAttribute(WINDOWTHEMEATTRIBUTETYPE type, PVOID pvA...
function HRESULT (line 733) | HRESULT SetWindowThemeNonClientAttributes(DWORD dwAttributes, DWORD dwMask)
function MESSAGE_HANDLER (line 758) | BEGIN_MSG_MAP(CThemeImpl)
function LRESULT (line 792) | LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
function DrawThemeClientEdge (line 817) | bool DrawThemeClientEdge(HRGN hRgnUpdate)
function class (line 832) | class CBufferedPaintBase
function class (line 878) | class CBufferedPaint
function HRESULT (line 914) | HRESULT GetTargetRect(LPRECT pRect) const
function HRESULT (line 932) | HRESULT GetBits(RGBQUAD** ppbBuffer, int* pcxRow) const
function ATL_NO_VTABLE (line 962) | ATL_NO_VTABLE CBufferedPaintImpl : public CBufferedPaintBase
function class (line 1048) | class CBufferedAnimation
function IsRendering (line 1084) | static bool IsRendering(HWND hWnd, HDC hDC)
function HRESULT (line 1089) | static HRESULT StopAllAnimations(HWND hWnd)
function ATL_NO_VTABLE (line 1104) | ATL_NO_VTABLE CBufferedAnimationImpl : public CBufferedPaintBase
function MESSAGE_HANDLER (line 1151) | BEGIN_MSG_MAP(CBufferedAnimationImpl)
function LRESULT (line 1162) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function SetState (line 1181) | void SetState(TState State)
function SetNewState (line 1186) | void SetNewState(TState State)
function DoAnimationPaint (line 1196) | void DoAnimationPaint(CDCHandle dc, RECT& rect)
FILE: WTL/atluser.h
function namespace (line 49) | namespace WTL
function class (line 126) | class CMenuItemInfo : public MENUITEMINFO
type CMenuT (line 147) | typedef CMenuT<false> CMenuHandle;
type CMenuT (line 148) | typedef CMenuT<true> CMenu;
function Attach (line 174) | void Attach(HMENU hMenuNew)
function HMENU (line 182) | HMENU Detach()
function BOOL (line 193) | BOOL IsMenu() const
function BOOL (line 206) | BOOL CreatePopupMenu()
function BOOL (line 213) | BOOL LoadMenu(ATL::_U_STRINGorID menu)
function BOOL (line 221) | BOOL LoadMenuIndirect(const void* lpMenuTemplate)
function BOOL (line 229) | BOOL DestroyMenu()
function BOOL (line 240) | BOOL DeleteMenu(UINT nPosition, UINT nFlags)
function _FixTrackMenuPopupX (line 271) | static int _FixTrackMenuPopupX(int x, int y)
function BOOL (line 294) | BOOL GetMenuInfo(LPMENUINFO lpMenuInfo) const
function BOOL (line 300) | BOOL SetMenuInfo(LPCMENUINFO lpMenuInfo)
function BOOL (line 314) | BOOL AppendMenu(UINT nFlags, HMENU hSubMenu, LPCTSTR lpszNewItem)
function BOOL (line 322) | BOOL AppendMenu(UINT nFlags, UINT_PTR nIDNewItem, HBITMAP hBmp)
function BOOL (line 328) | BOOL AppendMenu(UINT nFlags, HMENU hSubMenu, HBITMAP hBmp)
function UINT (line 336) | UINT CheckMenuItem(UINT nIDCheckItem, UINT nCheck)
function UINT (line 342) | UINT EnableMenuItem(UINT nIDEnableItem, UINT nEnable)
function BOOL (line 349) | BOOL HiliteMenuItem(HWND hWnd, UINT uIDHiliteItem, UINT uHilite)
function GetMenuItemCount (line 355) | int GetMenuItemCount() const
function UINT (line 367) | UINT GetMenuState(UINT nID, UINT nFlags) const
function GetMenuString (line 373) | int GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount, UINT nFl...
function GetMenuStringLen (line 379) | int GetMenuStringLen(UINT nIDItem, UINT nFlags) const
function BOOL (line 386) | BOOL GetMenuString(UINT nIDItem, BSTR& bstrText, UINT nFlags) const
function GetMenuItemCount (line 414) | int GetMenuItemCount() const
function UINT (line 426) | UINT GetMenuState(UINT nID, UINT nFlags) const
function GetMenuString (line 432) | int GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount, UINT nFl...
function GetMenuStringLen (line 438) | int GetMenuStringLen(UINT nIDItem, UINT nFlags) const
function GetMenuString (line 446) | int GetMenuString(UINT nIDItem, _CSTRING_NS::CString& strText, UINT nFla...
function CMenuHandle (line 464) | CMenuHandle GetSubMenu(int nPos) const
function BOOL (line 476) | BOOL InsertMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, LPCTSTR lps...
function BOOL (line 484) | BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT_PTR nIDNewItem, HBITMA...
function BOOL (line 490) | BOOL InsertMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, HBITMAP hBmp)
function BOOL (line 503) | BOOL ModifyMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, LPCTSTR lps...
function BOOL (line 510) | BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT_PTR nIDNewItem, HBITMA...
function BOOL (line 516) | BOOL ModifyMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, HBITMAP hBmp)
function BOOL (line 524) | BOOL RemoveMenu(UINT nPosition, UINT nFlags)
function BOOL (line 531) | BOOL SetMenuItemBitmaps(UINT nPosition, UINT nFlags, HBITMAP hBmpUncheck...
function BOOL (line 538) | BOOL CheckMenuRadioItem(UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT ...
function BOOL (line 544) | BOOL GetMenuItemInfo(UINT uItem, BOOL bByPosition, LPMENUITEMINFO lpmii)...
function BOOL (line 550) | BOOL SetMenuItemInfo(UINT uItem, BOOL bByPosition, LPMENUITEMINFO lpmii)
function BOOL (line 557) | BOOL InsertMenuItem(UINT uItem, BOOL bByPosition, LPMENUITEMINFO lpmii)
function BOOL (line 575) | BOOL GetMenuItemRect(HWND hWnd, UINT uItem, LPRECT lprcItem) const
function MenuItemFromPoint (line 581) | int MenuItemFromPoint(HWND hWnd, POINT point) const
function BOOL (line 588) | BOOL SetMenuContextHelpId(DWORD dwContextHelpId)
function DWORD (line 594) | DWORD GetMenuContextHelpId() const
function Attach (line 628) | void Attach(HACCEL hAccel)
function HACCEL (line 635) | HACCEL Detach()
function HACCEL (line 647) | HACCEL LoadAccelerators(ATL::_U_STRINGorID accel)
function HACCEL (line 654) | HACCEL CreateAcceleratorTable(LPACCEL pAccel, int cEntries)
function DestroyObject (line 662) | void DestroyObject()
function CopyAcceleratorTable (line 673) | int CopyAcceleratorTable(LPACCEL lpAccelDst, int cEntries)
function BOOL (line 687) | BOOL TranslateAccelerator(HWND hWnd, LPMSG pMsg)
type CAcceleratorT (line 696) | typedef CAcceleratorT<false> CAcceleratorHandle;
type CAcceleratorT (line 697) | typedef CAcceleratorT<true> CAccelerator;
function Attach (line 725) | void Attach(HICON hIcon)
function HICON (line 732) | HICON Detach()
function HICON (line 744) | HICON LoadIcon(ATL::_U_STRINGorID icon)
function HICON (line 759) | HICON LoadOEMIcon(LPCTSTR lpstrIconName)
function HICON (line 767) | HICON CreateIcon(int nWidth, int nHeight, BYTE cPlanes, BYTE cBitsPixel,...
function HICON (line 794) | HICON CreateIconIndirect(PICONINFO pIconInfo)
function HICON (line 803) | HICON ExtractIcon(LPCTSTR lpszExeFileName, UINT nIconIndex)
function HICON (line 811) | HICON ExtractAssociatedIcon(HINSTANCE hInst, LPTSTR lpIconPath, LPWORD l...
function BOOL (line 821) | BOOL DestroyIcon()
function HICON (line 832) | HICON CopyIcon()
function HICON (line 838) | HICON DuplicateIcon()
function BOOL (line 845) | BOOL DrawIcon(HDC hDC, int x, int y)
function BOOL (line 855) | BOOL DrawIcon(HDC hDC, POINT pt)
function BOOL (line 878) | BOOL GetIconInfo(PICONINFO pIconInfo) const
function BOOL (line 886) | BOOL GetIconInfoEx(PICONINFOEX pIconInfo) const
function HRESULT (line 895) | HRESULT LoadIconMetric(ATL::_U_STRINGorID icon, int lims)
function HRESULT (line 902) | HRESULT LoadIconWithScaleDown(ATL::_U_STRINGorID icon, int cx, int cy)
function HRESULT (line 909) | HRESULT LoadOEMIconMetric(LPCTSTR lpstrIconName, int lims)
function HRESULT (line 916) | HRESULT LoadOEMIconWithScaleDown(LPCTSTR lpstrIconName, int cx, int cy)
function IsOEMIcon (line 928) | static bool IsOEMIcon(LPCTSTR lpstrIconName)
type CIconT (line 942) | typedef CIconT<false> CIconHandle;
type CIconT (line 943) | typedef CIconT<true> CIcon;
function Attach (line 976) | void Attach(HCURSOR hCursor)
function HCURSOR (line 983) | HCURSOR Detach()
function HCURSOR (line 995) | HCURSOR LoadCursor(ATL::_U_STRINGorID cursor)
function HCURSOR (line 1002) | HCURSOR LoadSysCursor(LPCTSTR lpstrCursorName)
function HCURSOR (line 1024) | HCURSOR LoadOEMCursor(LPCTSTR lpstrCursorName)
function HCURSOR (line 1037) | HCURSOR LoadCursorFromFile(LPCTSTR pstrFilename)
function HCURSOR (line 1047) | HCURSOR CreateCursor(int xHotSpot, int yHotSpot, int nWidth, int nHeight...
function BOOL (line 1074) | BOOL DestroyCursor()
function HCURSOR (line 1090) | HCURSOR CopyCursor()
function BOOL (line 1098) | BOOL GetCursorInfo(LPCURSORINFO pCursorInfo)
type CCursorT (line 1107) | typedef CCursorT<false> CCursorHandle;
type CCursorT (line 1108) | typedef CCursorT<true> CCursor;
function class (line 1116) | class CResource
type _AtlToolBarData (line 1203) | struct _AtlToolBarData
function HACCEL (line 1218) | inline HACCEL AtlLoadAccelerators(ATL::_U_STRINGorID table)
function HMENU (line 1223) | inline HMENU AtlLoadMenu(ATL::_U_STRINGorID menu)
function HBITMAP (line 1228) | inline HBITMAP AtlLoadBitmap(ATL::_U_STRINGorID bitmap)
function HBITMAP (line 1234) | inline HBITMAP AtlLoadSysBitmap(ATL::_U_STRINGorID bitmap)
function HCURSOR (line 1244) | inline HCURSOR AtlLoadCursor(ATL::_U_STRINGorID cursor)
function HCURSOR (line 1249) | inline HCURSOR AtlLoadSysCursor(LPCTSTR lpCursorName)
function HICON (line 1268) | inline HICON AtlLoadIcon(ATL::_U_STRINGorID icon)
function HICON (line 1274) | inline HICON AtlLoadSysIcon(LPCTSTR lpIconName)
function HBITMAP (line 1288) | inline HBITMAP AtlLoadBitmapImage(ATL::_U_STRINGorID bitmap, UINT fuLoad...
function HBITMAP (line 1304) | inline HBITMAP AtlLoadSysBitmapImage(WORD wBitmapID, UINT fuLoad = LR_DE...
function AtlLoadString (line 1333) | inline int AtlLoadString(UINT uID, LPTSTR lpBuffer, int nBufferMax)
function LPCTSTR (line 1344) | inline LPCTSTR AtlLoadString(UINT uID)
function AtlLoadString (line 1356) | inline bool AtlLoadString(UINT uID, BSTR& bstrText)
FILE: WTL/atlwince.h
function namespace (line 160) | namespace WTL
function AtlIsEditFocus (line 192) | inline bool AtlIsEditFocus()
function AtlActivateBackKey (line 205) | inline void AtlActivateBackKey(HWND hMenuBar)
function BOOL (line 242) | BOOL GetClientRect(LPRECT lpRect)
function BOOL (line 252) | BOOL SetWindowText(LPCTSTR lpszString)
function GetTitleHeight (line 263) | static const int GetTitleHeight()
function DoPaintTitle (line 274) | bool DoPaintTitle()
function DialogTitleInit (line 316) | void DialogTitleInit()
function DoSipInfo (line 334) | void DoSipInfo()
function LRESULT (line 347) | LRESULT OnPaintTitle(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/...
function LRESULT (line 367) | LRESULT OnHotKey(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandl...
function StdSPInit (line 382) | void StdSPInit()
function SetStaticBold (line 394) | void SetStaticBold()
function StdPlatformInit (line 413) | void StdPlatformInit()
function StdCloseDialog (line 433) | void StdCloseDialog(WORD wID)
function StdShidInit (line 443) | void StdShidInit()
function LRESULT (line 451) | LRESULT OnColorStatic(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL&...
function LRESULT (line 462) | LRESULT OnMenuClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BO...
function LRESULT (line 470) | LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOO...
function BOOL (line 489) | BOOL GetClientRect(LPRECT lpRect)
function BOOL (line 494) | BOOL SetWindowText(LPCTSTR lpszString)
function LRESULT (line 513) | LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/...
function BOOL (line 617) | BOOL GetClientRect(LPRECT lpRect)
function BOOL (line 622) | BOOL SetWindowText(LPCTSTR lpszString)
function OnOrientation (line 771) | void OnOrientation(DRA::DisplayMode /*mode*/)
function LRESULT (line 775) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/,...
type CStdOrientedDialogBase (line 852) | typedef CStdOrientedDialogBase<CStdSimpleOrientedDialog<t_wDlgTemplateID...
function MESSAGE_HANDLER (line 856) | BEGIN_MSG_MAP(CStdSimpleDialog)
function class (line 888) | class CAppInfoBase
function HRESULT (line 1011) | static HRESULT ActivatePreviousInstance(HINSTANCE hInstance, LPCTSTR lp...
function AppHibernate (line 1092) | bool AppHibernate(bool /*bHibernate*/)
function AppNewInstance (line 1097) | bool AppNewInstance(LPCTSTR /*lpstrCmdLine*/)
function AppSave (line 1102) | void AppSave()
function AppBackKey (line 1107) | void AppBackKey()
function MESSAGE_HANDLER (line 1114) | BEGIN_MSG_MAP(CAppWindowBase)
function LRESULT (line 1157) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOO...
function LRESULT (line 1165) | LRESULT OnHibernate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,...
function LRESULT (line 1178) | LRESULT OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOO...
function HRESULT (line 1217) | static HRESULT ActivatePreviousInstance(HINSTANCE hInstance, LPCTSTR lp...
function HRESULT (line 1268) | static HRESULT ActivatePreviousInstance(HINSTANCE hInstance, LPCTSTR lp...
function StdCloseDialog (line 1293) | void StdCloseDialog(int nVal)
function MESSAGE_HANDLER (line 1307) | BEGIN_MSG_MAP(CAppStdDialogImplBase)
function m_bFullScreen (line 1394) | m_bFullScreen(false)
function SetFullScreen (line 1398) | void SetFullScreen(bool bFull)
function ShowMenuBar (line 1421) | void ShowMenuBar(bool bShow)
function MESSAGE_HANDLER (line 1455) | BEGIN_MSG_MAP(CFullScreenFrame)
function LRESULT (line 1470) | LRESULT OnActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL...
function GetZoom (line 1532) | double GetZoom()
function GetScrollOffset (line 1548) | void GetScrollOffset(POINT& ptOffset)
function GetScrollSize (line 1564) | void GetScrollSize(SIZE& sizeTrue) const
function SetScrollPage (line 1569) | void SetScrollPage(int cxPage, int cyPage)
function SetScrollPage (line 1574) | void SetScrollPage(SIZE sizePage)
function GetScrollPage (line 1579) | void GetScrollPage(SIZE& sizePage) const
function SetScrollLine (line 1584) | void SetScrollLine(int cxLine, int cyLine)
function SetScrollLine (line 1589) | void SetScrollLine(SIZE sizeLine)
function GetScrollLine (line 1594) | void GetScrollLine(SIZE& sizeLine) const
function WndtoTrue (line 1626) | void WndtoTrue(LPPOINT aptW, int nPts) // in place coord transformation
function WndtoTrue (line 1632) | void WndtoTrue(LPRECT prectW) // in place coord transformation
function TruetoWnd (line 1642) | void TruetoWnd(LPPOINT aptT, int nPts) // in place coord transformation
function TruetoWnd (line 1648) | void TruetoWnd(LPRECT prectT) // in place coord transformation
function BOOL (line 1654) | BOOL Draw(HBITMAP hbm, HDC hdestDC, DWORD dwROP = SRCCOPY)
function BOOL (line 1663) | BOOL Draw(HDC hsourceDC, HDC hdestDC, DWORD dwROP = SRCCOPY)
function BOOL (line 1673) | BOOL Draw(IImage* pIImage, HDC hdestDC)
function CalcTabHeight (line 1759) | int CalcTabHeight()
function UpdateLayout (line 1779) | void UpdateLayout()
function class (line 1793) | class CBottomTabView : public CBottomTabViewImpl<CBottomTabView>
function LPCTSTR (line 1845) | static LPCTSTR GetWndClassName()
function AddStyle (line 1851) | void AddStyle(LPCWSTR pszStyle)
function AddText (line 1858) | void AddText(BOOL bPlainText, LPCSTR pszText)
function AddHTML (line 1864) | void AddHTML(LPCSTR pszHTML)
function AddText (line 1870) | void AddText(BOOL bPlainText, LPCWSTR pszText)
function AddHTML (line 1876) | void AddHTML(LPCWSTR pszHTML)
function Anchor (line 1882) | void Anchor(LPCSTR pszAnchor)
function Anchor (line 1888) | void Anchor(LPCWSTR pszAnchor)
function GetBrowserDispatch (line 1895) | void GetBrowserDispatch(IDispatch** ppDispatch)
function GetDocumentDispatch (line 1902) | void GetDocumentDispatch(IDispatch** ppDispatch)
function Clear (line 1911) | void Clear()
function EndOfSource (line 1941) | void EndOfSource()
function ImageFail (line 1947) | void ImageFail(DWORD dwCookie)
function GetLayoutHeight (line 1953) | int GetLayoutHeight() const
function SelectAll (line 1972) | void SelectAll()
function SetImage (line 1978) | void SetImage(INLINEIMAGEINFO* pImageInfo)
function ZoomLevel (line 1985) | void ZoomLevel(int iLevel)
function Stop (line 1992) | void Stop()
function GetScriptDispatch (line 1999) | void GetScriptDispatch(IDispatch** ppDispatch)
type CHtmlCtrlT (line 2008) | typedef CHtmlCtrlT<ATL::CWindow> CHtmlCtrl;
function LPCTSTR (line 2040) | static LPCTSTR GetWndClassName()
function BOOL (line 2057) | BOOL CanUndo() const
function BOOL (line 2069) | BOOL GetModify() const
function UINT (line 2081) | UINT GetPenMode() const
function UINT (line 2093) | UINT GetWrapMode() const
function RedoEvent (line 2113) | void RedoEvent()
function UINT (line 2119) | UINT SetInkLayer(UINT uLayer)
function SetPageStyle (line 2125) | void SetPageStyle(UINT uStyle)
function SetPenMode (line 2131) | void SetPenMode(UINT uMode)
function SetViewStyle (line 2137) | void SetViewStyle(UINT uStyle)
function SetViewAttributes (line 2143) | void SetViewAttributes(VIEWATTRIBUTES* pAttribs)
function SetWrapMode (line 2150) | void SetWrapMode(UINT uMode)
function SetZoomPercent (line 2156) | void SetZoomPercent(UINT uPercent)
function LONG (line 2162) | LONG StreamIn(UINT uFormat, EDITSTREAM& es)
function LONG (line 2168) | LONG StreamOut(UINT uFormat, EDITSTREAM& es)
function UndoEvent (line 2174) | void UndoEvent()
function Undo (line 2180) | void Undo()
function DWORD (line 2186) | DWORD GetSel() const
function SetSel (line 2200) | void SetSel(int nStartChar, int nEndChar)
function GetTextLength (line 2220) | int GetTextLength() const
function Copy (line 2233) | void Copy()
function Cut (line 2239) | void Cut()
function Paste (line 2245) | void Paste()
type CRichInkCtrlT (line 2252) | typedef CRichInkCtrlT<ATL::CWindow> CRichInkCtrl;
function LPCTSTR (line 2282) | static LPCTSTR GetWndClassName()
function UINT (line 2287) | static UINT GetHotRecordingMessage()
function ClearAll (line 2292) | void ClearAll()
function GetData (line 2298) | int GetData(BYTE* lpBuffer, INT cbBuffer) const
function GetDataLen (line 2305) | int GetDataLen() const
function BOOL (line 2317) | BOOL IsRecording() const
function SetData (line 2329) | void SetData(const BYTE* lpInkData, INT cbInkData)
function VoicePlay (line 2336) | void VoicePlay()
function BOOL (line 2342) | BOOL IsVoicePlaying() const
function VoiceStop (line 2354) | void VoiceStop()
type CInkXCtrlT (line 2367) | typedef CInkXCtrlT<ATL::CWindow> CInkXCtrl;
function HWND (line 2404) | HWND Create(LPCM_VOICE_RECORDER pAttribs)
function Record (line 2412) | void Record()
function Play (line 2418) | void Play()
function Stop (line 2424) | void Stop()
function Cancel (line 2430) | void Cancel()
function Done (line 2436) | void Done()
type CVoiceRecorderCtrlT (line 2443) | typedef CVoiceRecorderCtrlT<ATL::CWindow> CVoiceRecorderCtrl;
function HWND (line 2488) | HWND Create(DOCLISTCREATE* pDlc)
function DeleteSel (line 2496) | void DeleteSel()
function DisableUpdates (line 2502) | void DisableUpdates()
function EnableUpdates (line 2508) | void EnableUpdates()
function GetFilterIndex (line 2514) | int GetFilterIndex() const
function GetNextItem (line 2526) | int GetNextItem(int iIndex, DWORD dwRelation = LVNI_ALL) const
function GetFirstItem (line 2532) | int GetFirstItem(DWORD dwRelation = LVNI_ALL) const
function BOOL (line 2538) | BOOL GetNextWave(int* pIndex) const
function BOOL (line 2545) | BOOL GetPrevWave(int* pIndex) const
function GetSelCount (line 2552) | int GetSelCount() const
function ReceiveIR (line 2565) | void ReceiveIR(LPCTSTR pstrPath) const
function Refresh (line 2572) | void Refresh()
function BOOL (line 2578) | BOOL RenameMoveSelectedItems()
function SelectAll (line 2584) | int SelectAll()
function SendEMail (line 2597) | void SendEMail(LPCTSTR pstrAttachment)
function SendIR (line 2603) | void SendIR(LPCTSTR pstrPath)
function HRESULT (line 2609) | HRESULT SetFilterIndex(int iIndex)
function SetFolder (line 2615) | void SetFolder(LPCTSTR pstrPath)
function BOOL (line 2622) | BOOL SetItemState(int iIndex, const LVITEM* pItem)
function BOOL (line 2629) | BOOL SetItemState(int iIndex, UINT uState, UINT uMask)
function SetOneItem (line 2638) | void SetOneItem(int iIndex, LPCVOID pPA)
function SetSelect (line 2644) | void SetSelect(int iIndex)
function SetSelPathName (line 2650) | void SetSelPathName(LPCTSTR pstrPath)
function BOOL (line 2657) | BOOL SetSortOrder()
function HRESULT (line 2663) | HRESULT Update()
function BOOL (line 2669) | BOOL ValidateFolder()
function BOOL (line 2676) | BOOL GetFirstSelectedWaveFile(int* pIndex, LPTSTR szPath, const size_t c...
function BOOL (line 2682) | BOOL GetNextSelectedWaveFile(int* pIndex, LPTSTR szPath, const size_t cc...
type CDocListCtrlT (line 2689) | typedef CDocListCtrlT<ATL::CWindow> CDocListCtrl;
function LPCTSTR (line 2721) | static LPCTSTR GetWndClassName()
type CCapEditT (line 2727) | typedef CCapEditT<WTL::CEdit> CCapEdit;
function LPCTSTR (line 2758) | static LPCTSTR GetWndClassName()
function BOOL (line 2764) | BOOL SetToolTipText(LPCTSTR pstrTipText)
type CTTStaticT (line 2780) | typedef CTTStaticT<WTL::CStatic> CTTStatic;
function LPCTSTR (line 2810) | static LPCTSTR GetWndClassName()
function BOOL (line 2816) | BOOL SetToolTipText(LPCTSTR pstrTipText)
type CTTButtonT (line 2832) | typedef CTTButtonT<WTL::CButton> CTTButton;
type CSpinCtrlT (line 2872) | typedef CSpinCtrlT<ATL::CWindow> CSpinCtrl;
function Attach (line 2905) | void Attach(HWND hWnd)
function AttachOrCreateSpinCtrl (line 2938) | bool AttachOrCreat
Condensed preview — 197 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,076K chars).
[
{
"path": ".gitignore",
"chars": 94,
"preview": "# Compiled Static libraries\n\n.vs/\n0utPut/\nDebug/\nRelease/\n\n*.aps\n*.vcxproj.user\n*.vcproj.user\n"
},
{
"path": "LICENSE",
"chars": 2552,
"preview": "Copyright (c) <year> <copyright holders>\n\n996 License Version 1.0 (Draft)\n\nPermission is hereby granted to any individua"
},
{
"path": "Microsoft_VC++2022.sln",
"chars": 1056,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.7.3403"
},
{
"path": "README-zh.md",
"chars": 2067,
"preview": "# 当必火🔥——Windows 平台的下载器\n\n🚀 当必火🔥——让程序下载和安装变得简单!\n\n\n\n## 特点:\n\n- Windows C++ 原生代码(std:c++14)\n-"
},
{
"path": "README.md",
"chars": 2210,
"preview": "# Win32 Native Downloader\n\n🚀 A fast, tiny, native win32 downloader & installer for Windows platform.\n\n Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlcrack.h",
"chars": 60010,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlctrls.h",
"chars": 267164,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlctrlw.h",
"chars": 118737,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlctrlx.h",
"chars": 131312,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlddx.h",
"chars": 16459,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atldlgs.h",
"chars": 175562,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atldwm.h",
"chars": 11572,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlfind.h",
"chars": 26594,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlframe.h",
"chars": 105484,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlgdi.h",
"chars": 97450,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlmisc.h",
"chars": 83987,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlprint.h",
"chars": 28774,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlres.h",
"chars": 9696,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlresce.h",
"chars": 2333,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlribbon.h",
"chars": 89136,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlscrl.h",
"chars": 59580,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlsplit.h",
"chars": 30094,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atltheme.h",
"chars": 35296,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atluser.h",
"chars": 38132,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlwince.h",
"chars": 80791,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "WTL/atlwinx.h",
"chars": 13691,
"preview": "// Windows Template Library - WTL version 9.10\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//"
},
{
"path": "bin/upx-4.1.0-win32/COPYING",
"chars": 18092,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 2, June 1991\n\n Copyright (C) 1989, 1991 Fr"
},
{
"path": "bin/upx-4.1.0-win32/LICENSE",
"chars": 5448,
"preview": "-----BEGIN PGP SIGNED MESSAGE-----\n\n\n ooooo ooo ooooooooo. ooooooo ooooo\n `888' "
},
{
"path": "bin/upx-4.1.0-win32/NEWS",
"chars": 24078,
"preview": "==================================================================\nUser visible changes for UPX\n========================"
},
{
"path": "bin/upx-4.1.0-win32/README",
"chars": 3739,
"preview": " ooooo ooo ooooooooo. ooooooo ooooo\n `888' `8' `888 `Y88. `8888 d8'\n "
},
{
"path": "bin/upx-4.1.0-win32/THANKS.txt",
"chars": 2230,
"preview": " ooooo ooo ooooooooo. ooooooo ooooo\n `888' `8' `888 `Y88. `8888 d8'\n "
},
{
"path": "bin/upx-4.1.0-win32/upx-doc.html",
"chars": 38689,
"preview": "<?xml version=\"1.0\" ?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-"
},
{
"path": "bin/upx-4.1.0-win32/upx-doc.txt",
"chars": 37296,
"preview": "NAME\n upx - compress or expand executable files\n\nSYNOPSIS\n upx [ *command* ] [ *options* ] *filename*...\n\nABSTRACT"
},
{
"path": "bin/upx-4.1.0-win32/upx.1",
"chars": 43267,
"preview": ".\\\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)\n.\\\"\n.\\\" Standard preamble:\n.\\\" ========================="
},
{
"path": "common/jsoncpp/json/autolink.h",
"chars": 438,
"preview": "#ifndef JSON_AUTOLINK_H_INCLUDED\n# define JSON_AUTOLINK_H_INCLUDED\n\n# include \"config.h\"\n\n# ifdef JSON_IN_CPPTL\n# inclu"
},
{
"path": "common/jsoncpp/json/config.h",
"chars": 1536,
"preview": "#ifndef JSON_CONFIG_H_INCLUDED\n# define JSON_CONFIG_H_INCLUDED\n\n/// If defined, indicates that json library is embedded "
},
{
"path": "common/jsoncpp/json/features.h",
"chars": 1290,
"preview": "#ifndef CPPTL_JSON_FEATURES_H_INCLUDED\n# define CPPTL_JSON_FEATURES_H_INCLUDED\n\n# include \"forwards.h\"\n\nnamespace Json {"
},
{
"path": "common/jsoncpp/json/forwards.h",
"chars": 735,
"preview": "#ifndef JSON_FORWARDS_H_INCLUDED\n# define JSON_FORWARDS_H_INCLUDED\n\n# include \"config.h\"\n\nnamespace Json {\n\n // writer"
},
{
"path": "common/jsoncpp/json/json.h",
"chars": 200,
"preview": "#ifndef JSON_JSON_H_INCLUDED\n# define JSON_JSON_H_INCLUDED\n\n# include \"autolink.h\"\n# include \"value.h\"\n# include \"reader"
},
{
"path": "common/jsoncpp/json/reader.h",
"chars": 6486,
"preview": "#ifndef CPPTL_JSON_READER_H_INCLUDED\n# define CPPTL_JSON_READER_H_INCLUDED\n\n# include \"features.h\"\n# include \"value.h\"\n#"
},
{
"path": "common/jsoncpp/json/value.h",
"chars": 34124,
"preview": "#ifndef CPPTL_JSON_H_INCLUDED\n# define CPPTL_JSON_H_INCLUDED\n\n# include \"forwards.h\"\n# include <string>\n# include <vecto"
},
{
"path": "common/jsoncpp/json/writer.h",
"chars": 6188,
"preview": "#ifndef JSON_WRITER_H_INCLUDED\n# define JSON_WRITER_H_INCLUDED\n\n# include \"value.h\"\n# include <vector>\n# include <string"
},
{
"path": "common/jsoncpp/json_batchallocator.h",
"chars": 3923,
"preview": "#ifndef JSONCPP_BATCHALLOCATOR_H_INCLUDED\n#define JSONCPP_BATCHALLOCATOR_H_INCLUDED\n\n#include <stdlib.h>\n#include <asser"
},
{
"path": "common/jsoncpp/json_valueiterator.inl",
"chars": 7367,
"preview": "// included by json_value.cpp\n// everything is within Json namespace\n\n\n// //////////////////////////////////////////////"
},
{
"path": "common/jsoncpp/reader.cpp",
"chars": 21168,
"preview": "#include <utility>\n#include <cstdio>\n#include <cassert>\n#include <cstring>\n#include <iostream>\n#include <stdexcept>\n#inc"
},
{
"path": "common/jsoncpp/value.cpp",
"chars": 36951,
"preview": "#include <iostream>\n#include <utility>\n#include <stdexcept>\n#include <cstring>\n#include <cassert>\n#ifdef JSON_USE_CPPTL\n"
},
{
"path": "common/jsoncpp/writer.cpp",
"chars": 20314,
"preview": "#include <utility>\n#include <assert.h>\n#include <stdio.h>\n#include <string.h>\n#include <iostream>\n#include <sstream>\n#in"
},
{
"path": "common/util/base.cpp",
"chars": 7054,
"preview": "#include \"stdafx.h\"\n#include <io.h>\n#include \"Base.h\"\n\nnamespace Util {\nnamespace Base {\nint GetAccurateOSVersion() {\n "
},
{
"path": "common/util/base.h",
"chars": 1343,
"preview": "#pragma once\r\n\r\nconstexpr int WINDOWS_OLDEST = -1000;\r\nconstexpr int WINDOWS_2000 = 1;\r\nconstexpr int WINDOWS_XP_NO_SP ="
},
{
"path": "common/util/def.h",
"chars": 244,
"preview": "#pragma once\n\n#define WM_DEL_GDI_OBJ WM_USER + 0x10E0C\n#define WM_IS_EXIST WM_USER + 0x10E0D\n\nnamespace app {\nenum Notif"
},
{
"path": "common/util/md5.cpp",
"chars": 10472,
"preview": "#include \"md5.h\"\n\nusing namespace std;\n\n/* Constants for MD5Transform routine. */\n#define S11 7\n#define S12 12\n#define S"
},
{
"path": "common/util/md5.h",
"chars": 1222,
"preview": "#pragma once\n\n#include <fstream>\n#include <string>\n\n/* Type define */\ntypedef unsigned char byte;\ntypedef unsigned int u"
},
{
"path": "common/util/system.cpp",
"chars": 21373,
"preview": "#include \"StdAfx.h\"\r\n#include <io.h>\r\n#include <Tlhelp32.h>\r\n#include <Nb30.h>\r\n#include <winioctl.h>\r\n#include \"xzip/X"
},
{
"path": "common/util/system.h",
"chars": 2709,
"preview": "#pragma once\r\n\r\n#ifndef tstring\r\n#ifdef _UNICODE\r\n#define tstring std::wstring\r\n#else\r\n#define tstring std::string\r\n#end"
},
{
"path": "common/util/util_tools.cpp",
"chars": 774,
"preview": "#include \"stdafx.h\"\n#include \"util_tools.h\"\n\nCriticalSection::CriticalSection(void) {\n#ifdef _WIN32\n InitializeCritical"
},
{
"path": "common/util/util_tools.h",
"chars": 1228,
"preview": "#pragma once\n\n#include <io.h>\n\nclass CriticalSection {\npublic:\n CriticalSection(void);\n ~CriticalSection(void);\n\npriva"
},
{
"path": "common/xml/tinystr.cpp",
"chars": 2526,
"preview": "/*\nwww.sourceforge.net/projects/tinyxml\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In "
},
{
"path": "common/xml/tinystr.h",
"chars": 8198,
"preview": "/*\nwww.sourceforge.net/projects/tinyxml\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In "
},
{
"path": "common/xml/tinyxml.cpp",
"chars": 37439,
"preview": "/*\nwww.sourceforge.net/projects/tinyxml\nOriginal code by Lee Thomason (www.grinninglizard.com)\n\nThis software is provide"
},
{
"path": "common/xml/tinyxml.h",
"chars": 64834,
"preview": "/*\nwww.sourceforge.net/projects/tinyxml\nOriginal code by Lee Thomason (www.grinninglizard.com)\n\nThis software is provide"
},
{
"path": "common/xml/tinyxmlerror.cpp",
"chars": 1810,
"preview": "/*\nwww.sourceforge.net/projects/tinyxml\nOriginal code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinni"
},
{
"path": "common/xml/tinyxmlparser.cpp",
"chars": 37261,
"preview": "/*\nwww.sourceforge.net/projects/tinyxml\nOriginal code by Lee Thomason (www.grinninglizard.com)\n\nThis software is provide"
},
{
"path": "common/xml/xmlhelper.cpp",
"chars": 5399,
"preview": "#include \"stdafx.h\"\n#include \"util/base.h\"\n#include \"xmlhelper.h\"\n\nCXmlHelper::CXmlHelper() {}\n\nCXmlHelper::~CXmlHelper("
},
{
"path": "common/xml/xmlhelper.h",
"chars": 1889,
"preview": "#pragma once\n\n#include <strsafe.h>\n#include <string>\n#include <vector>\n#include \"tinyxml.h\"\n\n#ifndef tstring\n#ifdef _UNI"
},
{
"path": "common/xzip/XUnzip.cpp",
"chars": 156727,
"preview": "// XUnzip.cpp Version 1.3\n//\n// Authors: Mark Adler et al. (see below)\n//\n// Modified by: Lucian Wischik\n// "
},
{
"path": "common/xzip/XUnzip.h",
"chars": 16789,
"preview": "// XUnzip.h Version 1.3\n//\n// Authors: Mark Adler et al. (see below)\n//\n// Modified by: Lucian Wischik\n// "
},
{
"path": "src/.gitignore",
"chars": 50,
"preview": "# Compiled Static libraries\n\n.vs/\nDebug/\nRelease/\n"
},
{
"path": "src/App.vcxproj",
"chars": 20226,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"Current\" xmlns=\"http://schemas.mic"
},
{
"path": "src/App.vcxproj.filters",
"chars": 19247,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "src/DirectUI/DUIButton.cpp",
"chars": 9304,
"preview": "#include \"StdAfx.h\"\n#include \"DUIButton.h\"\n\nCButtonCtl::CButtonCtl(HWND father, BOOL trans) {\n _host = father;\n _class"
},
{
"path": "src/DirectUI/DUIButton.h",
"chars": 1645,
"preview": "#pragma once\n\n#include \"DUIDef.h\"\n#include \"DUIElement.h\"\n\nclass CButtonCtl : public CBaseElementCtl {\npublic:\n CButton"
},
{
"path": "src/DirectUI/DUICheckBox.cpp",
"chars": 3984,
"preview": "#include \"StdAfx.h\"\n#include \"DUICheckBox.h\"\n\nCCheckBoxCtl::CCheckBoxCtl(HWND father, BOOL trans) : CButtonCtl(father) {"
},
{
"path": "src/DirectUI/DUICheckBox.h",
"chars": 665,
"preview": "#pragma once\n\n#include \"DUIButton.h\"\n\nclass CCheckBoxCtl : public CButtonCtl {\npublic:\n CCheckBoxCtl(HWND father, BOOL "
},
{
"path": "src/DirectUI/DUIDef.h",
"chars": 1762,
"preview": "#pragma once\n\n#include <algorithm>\n#include <list>\n#include <map>\n#include <set>\n#include <string>\n#include <vector>\n#in"
},
{
"path": "src/DirectUI/DUIElement.cpp",
"chars": 4591,
"preview": "#include \"StdAfx.h\"\n#include \"DUIElement.h\"\n\nCBaseElementCtl::CBaseElementCtl() : _editCheckPath(FALSE) {\n _handleMouse"
},
{
"path": "src/DirectUI/DUIElement.h",
"chars": 7599,
"preview": "#pragma once\n\n#include \"DUIDef.h\"\n#include \"DUIGDIResource.h\"\n#include \"DUIWindowStyle.h\"\n#include \"EventHandler.h\"\n\ncla"
},
{
"path": "src/DirectUI/DUIElementsMgr.cpp",
"chars": 10133,
"preview": "#include \"StdAfx.h\"\n#include \"DUIPanel.h\"\n#include \"DUIElementsMgr.h\"\n\nusing namespace std;\n\nCAnyElementsMgr::CAnyElemen"
},
{
"path": "src/DirectUI/DUIElementsMgr.h",
"chars": 1777,
"preview": "#pragma once\n\n#include \"DUIElement.h\"\n\nclass CAnyElementsMgr {\npublic:\n CAnyElementsMgr(void);\n CAnyElementsMgr(HWND o"
},
{
"path": "src/DirectUI/DUIGDIResource.cpp",
"chars": 24036,
"preview": "#include \"stdafx.h\"\n#include \"Util/UtilApi.h\"\n#include \"DUIGDIResource.h\"\n\nusing namespace std;\n\nstatic constexpr LPCTST"
},
{
"path": "src/DirectUI/DUIGDIResource.h",
"chars": 5298,
"preview": "#pragma once\n\n#include <gdiplus.h>\n#include \"util/util_tools.h\"\n#include \"DUIDef.h\"\n\nusing namespace Gdiplus;\n\nclass CGD"
},
{
"path": "src/DirectUI/DUIHyperLink.cpp",
"chars": 3778,
"preview": "#include \"StdAfx.h\"\n#include \"DUIHyperLink.h\"\n\nCHyperLinkCtl::CHyperLinkCtl(HWND father, BOOL trans) : CButtonCtl(father"
},
{
"path": "src/DirectUI/DUIHyperLink.h",
"chars": 937,
"preview": "#pragma once\n\n#include \"DUIButton.h\"\n\nclass CHyperLinkCtl : public CButtonCtl {\npublic:\n CHyperLinkCtl(HWND father, BOO"
},
{
"path": "src/DirectUI/DUILayeredEdit.cpp",
"chars": 6164,
"preview": "#include \"StdAfx.h\"\n#include <regex>\n#include \"util/def.h\"\n#include \"../Global.h\"\n#include \"DUILayeredEdit.h\"\n\nCLayeredE"
},
{
"path": "src/DirectUI/DUILayeredEdit.h",
"chars": 3686,
"preview": "#pragma once\n\n#include \"DUIElement.h\"\n\nclass CLayeredEditCtl;\n\nclass CMyEditEx : public CWindowImpl<CMyEditEx, CEdit> {\n"
},
{
"path": "src/DirectUI/DUIOptionLine.cpp",
"chars": 2108,
"preview": "#include \"StdAfx.h\"\n#include \"DUIOptionLine.h\"\n\nCOptionLineCtl::COptionLineCtl(HWND father, BOOL trans) {\n _host = fath"
},
{
"path": "src/DirectUI/DUIOptionLine.h",
"chars": 495,
"preview": "#pragma once\n\n#include \"DUIElement.h\"\n\nclass COptionLineCtl : public CBaseElementCtl {\npublic:\n COptionLineCtl(HWND fat"
},
{
"path": "src/DirectUI/DUIPanel.cpp",
"chars": 7952,
"preview": "#include \"StdAfx.h\"\n#include \"DUIButton.h\"\n#include \"DUICheckBox.h\"\n#include \"DUIHyperLink.h\"\n#include \"DUILayeredEdit.h"
},
{
"path": "src/DirectUI/DUIPanel.h",
"chars": 3023,
"preview": "#pragma once\n\n#include \"DUIElement.h\"\n#include \"DUIElementsMgr.h\"\n\nclass CPanelCtl : public CBaseElementCtl {\npublic:\n "
},
{
"path": "src/DirectUI/DUIProgress.cpp",
"chars": 4416,
"preview": "#include \"StdAfx.h\"\n#include \"DUIProgress.h\"\n\nCProgressCtl::CProgressCtl(HWND father, BOOL trans)\n : _bmpLightPoint(N"
},
{
"path": "src/DirectUI/DUIProgress.h",
"chars": 608,
"preview": "#pragma once\n\n#include \"DUIElement.h\"\n\nclass CProgressCtl : public CBaseElementCtl {\npublic:\n CProgressCtl(HWND father,"
},
{
"path": "src/DirectUI/DUIRadioButton.cpp",
"chars": 4117,
"preview": "#include \"StdAfx.h\"\n#include \"DUIRadioButton.h\"\n\nCRadioButtonCtl::CRadioButtonCtl(HWND father, BOOL trans) : CButtonCtl("
},
{
"path": "src/DirectUI/DUIRadioButton.h",
"chars": 679,
"preview": "#pragma once\n\n#include \"DUIButton.h\"\n\nclass CRadioButtonCtl : public CButtonCtl {\npublic:\n CRadioButtonCtl(HWND father,"
},
{
"path": "src/DirectUI/DUIStatic.cpp",
"chars": 3802,
"preview": "#include \"StdAfx.h\"\n#include \"DUIStatic.h\"\n\nCStaticCtl::CStaticCtl(HWND father, BOOL trans) {\n _host = father;\n\n _down"
},
{
"path": "src/DirectUI/DUIStatic.h",
"chars": 852,
"preview": "#pragma once\n\n#include \"DUIElement.h\"\n\nclass CStaticCtl : public CBaseElementCtl {\npublic:\n CStaticCtl(HWND father, BOO"
},
{
"path": "src/DirectUI/DUITab.cpp",
"chars": 2103,
"preview": "#include \"StdAfx.h\"\n#include \"DUITab.h\"\n#include \"DUITabList.h\"\n\nCTabCtl::CTabCtl(HWND father, CTabListCtl *pList, BOOL "
},
{
"path": "src/DirectUI/DUITab.h",
"chars": 683,
"preview": "#pragma once\n\n#include \"DUIButton.h\"\n\nclass CTabListCtl;\nclass CTabCtl : public CButtonCtl {\npublic:\n CTabCtl(HWND fath"
},
{
"path": "src/DirectUI/DUITabList.cpp",
"chars": 1895,
"preview": "#include \"StdAfx.h\"\n#include \"DUITabList.h\"\n\nusing namespace std;\n\nCTabListCtl::CTabListCtl(HWND father, BOOL trans) : C"
},
{
"path": "src/DirectUI/DUITabList.h",
"chars": 440,
"preview": "#pragma once\n\n#include \"DUIPanel.h\"\n#include \"DUITab.h\"\n\nclass CTabListCtl : public CPanelCtl {\npublic:\n CTabListCtl(HW"
},
{
"path": "src/DirectUI/DUITransWindow.cpp",
"chars": 19615,
"preview": "#include \"StdAfx.h\"\n#include \"util/util_tools.h\"\n#include \"../base/Thread.h\"\n#include \"../base/common_threads.h\"\n#includ"
},
{
"path": "src/DirectUI/DUITransWindow.h",
"chars": 8326,
"preview": "#pragma once\n\n#include \"DUIButton.h\"\n#include \"DUICheckBox.h\"\n#include \"DUIElement.h\"\n#include \"DUIElementsMgr.h\"\n#inclu"
},
{
"path": "src/DirectUI/DUITransWindowEx.cpp",
"chars": 50,
"preview": "#include \"stdafx.h\"\n#include \"DUITransWindowEx.h\"\n"
},
{
"path": "src/DirectUI/DUITransWindowEx.h",
"chars": 32611,
"preview": "#pragma once\n\n#include \"util/system.h\"\n#include \"DUIButton.h\"\n#include \"DUICheckBox.h\"\n#include \"DUIElement.h\"\n#include "
},
{
"path": "src/DirectUI/DUIWindowStyle.cpp",
"chars": 9044,
"preview": "#include \"stdafx.h\"\n#include \"DUIWindowStyle.h\"\n#include \"DUIGDIResource.h\"\n\nCWindowCtlStyle::CWindowCtlStyle()\n : _x"
},
{
"path": "src/DirectUI/DUIWindowStyle.h",
"chars": 1908,
"preview": "#pragma once\n\n#include <vector>\n#include \"DUIDef.h\"\n\nclass __declspec(novtable) CWindowCtlStyle {\n using string = std::"
},
{
"path": "src/DirectUI/Draw.cpp",
"chars": 5453,
"preview": "#include \"stdafx.h\"\n#include \"Draw.h\"\n\n#define KEYDOWN(Key) ((GetKeyState(Key) & 0x8000) != 0)\n\nclass CClientRect : publ"
},
{
"path": "src/DirectUI/Draw.h",
"chars": 1272,
"preview": "#pragma once\n\ntypedef DWORD HLSCOLOR;\n#define HLS(h, l, s) \\\n "
},
{
"path": "src/DirectUI/EventHandler.h",
"chars": 884,
"preview": "#pragma once\n\n#include \"../base/FastDelegate.h\"\n\nusing namespace fastdelegate;\n\n#define BIND(c, f) MakeDelegate(&c, &f)\n"
},
{
"path": "src/DirectUI/UpdateWindowBase.cpp",
"chars": 2663,
"preview": "#include \"StdAfx.h\"\n#include \"UpdateWindowBase.h\"\n\nCUpdateWindowBase::CUpdateWindowBase() { m_hFuncInst = NULL; }\n\nCUpda"
},
{
"path": "src/DirectUI/UpdateWindowBase.h",
"chars": 1163,
"preview": "#pragma once\n\n#include <atlapp.h>\n#include <atlwinx.h>\n#include \"DUIDef.h\"\n\nclass __declspec(novtable) CUpdateWindowBase"
},
{
"path": "src/DirectUI/UpdateWindowBaseEx.cpp",
"chars": 52,
"preview": "#include \"StdAfx.h\"\n#include \"UpdateWindowBaseEx.h\"\n"
},
{
"path": "src/DirectUI/UpdateWindowBaseEx.h",
"chars": 14104,
"preview": "#pragma once\n\n#include <atlapp.h>\n#include <atlwinx.h>\n#include \"DUIDef.h\"\n\nconstexpr int TIMER_ID1 = 0x1110;\nconstexpr "
},
{
"path": "src/DownLoader/DownloadDelegate.cpp",
"chars": 146,
"preview": "#include \"StdAfx.h\"\n#include \"DownloadDelegate.h\"\n\nDownCompleteInfo::DownCompleteInfo(net::URLFetcher::ErrorType reason)"
},
{
"path": "src/DownLoader/DownloadDelegate.h",
"chars": 602,
"preview": "#pragma once\n\n#include \"../net/url_fetcher.h\"\n\nstruct DownCompleteInfo {\n explicit DownCompleteInfo(net::URLFetcher::Er"
},
{
"path": "src/DownLoader/fetcherurl.cpp",
"chars": 570,
"preview": "#include \"StdAfx.h\"\n#include \"fetcherurl.h\"\n\nusing namespace net;\n\nCFetchUrl::CFetchUrl(FetchURLDelegate *delegate, std:"
},
{
"path": "src/DownLoader/fetcherurl.h",
"chars": 440,
"preview": "#pragma once\n\n#include \"../net/url_fetcher.h\"\n#include \"../base.h\"\n#include \"util/def.h\"\n#include \"DownloadDelegate.h\"\n\n"
},
{
"path": "src/DownLoader/fetchfile.cpp",
"chars": 804,
"preview": "#include \"StdAfx.h\"\n#include \"fetchfile.h\"\n\nusing namespace net;\n\nCFetchFile::CFetchFile(FetchFileDelegate *delegate, st"
},
{
"path": "src/DownLoader/fetchfile.h",
"chars": 652,
"preview": "#pragma once\n\n#include \"../net/url_fetcher.h\"\n#include \"../base.h\"\n#include \"util/def.h\"\n#include \"DownloadDelegate.h\"\n\n"
},
{
"path": "src/Downloader.rc",
"chars": 4641,
"preview": "// Microsoft Visual C++ generated resource script.\n//\n#include \"resource.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////"
},
{
"path": "src/Event/WaitableEvent.cc",
"chars": 1066,
"preview": "#include \"stdafx.h\"\n#include \"WaitableEvent.h\"\n\nnamespace base {\nWaitableEvent::WaitableEvent(bool manual_reset, bool si"
},
{
"path": "src/Event/WaitableEvent.h",
"chars": 509,
"preview": "#pragma once\n\n#include <assert.h>\n#include <math.h>\n#include <stdlib.h>\n#include \"../time/time.h\"\n\nnamespace base {\nclas"
},
{
"path": "src/Global.cpp",
"chars": 887,
"preview": "#include \"stdafx.h\"\n#include \"util/system.h\"\n#include \"Global.h\"\n\n\n/// <configuration>\n/// Set the following string and "
},
{
"path": "src/Global.h",
"chars": 797,
"preview": "#pragma once\n\n#include \"util/util_tools.h\"\n\nclass CGlobal {\npublic:\n // configuration value\n static std::string downlo"
},
{
"path": "src/Language/Language.cpp",
"chars": 516,
"preview": "#include \"StdAfx.h\"\n#include \"../Global.h\"\n#include \"Language.h\"\n\nnamespace lan {\nSentence AppLanguage::s_lanArr[] = {\n "
},
{
"path": "src/Language/Language.h",
"chars": 317,
"preview": "#pragma once\n\nnamespace lan {\nstruct Sentence {\n LPCWSTR pstrInstalling;\n LPCWSTR pstrServiceError;\n LPCWSTR pstrRepa"
},
{
"path": "src/LogAssist/LogAssist.cpp",
"chars": 11151,
"preview": "#include \"StdAfx.h\"\n#include <assert.h>\n#include <io.h>\n#include <Shlwapi.h>\n#include \"LogAssist.h\"\n#include \"util/syste"
},
{
"path": "src/LogAssist/LogAssist.h",
"chars": 2975,
"preview": "#pragma once\n\n#include <Fcntl.h>\n#include <shlwapi.h>\n#include <strsafe.h>\n#include <sys/stat.h>\n#include \"../base/macro"
},
{
"path": "src/Main.cpp",
"chars": 3719,
"preview": "#include \"stdafx.h\"\n#include \"util/base.h\"\n#include \"util/util_tools.h\"\n#include \"util/system.h\"\n#include \"Global.h\"\n#in"
},
{
"path": "src/StdAfx.cpp",
"chars": 421,
"preview": "#include \"StdAfx.h\"\n\n#pragma comment(lib, \"netapi32.lib\")\n#pragma comment(lib, \"version.lib\")\n#pragma comment(lib, \"Shel"
},
{
"path": "src/StdAfx.h",
"chars": 1222,
"preview": "#pragma once\n#pragma warning(disable: 4302)\n#pragma warning(disable: 4244)\n\n#define WIN32_LEAN_AND_MEAN\n#define _CRT_SEC"
},
{
"path": "src/UI/FrameShowState.cpp",
"chars": 123,
"preview": "#include \"StdAfx.h\"\n#include \"FrameShowState.h\"\n\nShowState::ShowState() : bPending_(false), step_(APP1), degree_(DETEN) "
},
{
"path": "src/UI/FrameShowState.h",
"chars": 370,
"preview": "#pragma once\n\nclass ShowState {\npublic:\n explicit ShowState();\n enum PngType {\n PNG_BEGIN = 0,\n APP1,\n APP2,\n"
},
{
"path": "src/UI/UIAgreement.cpp",
"chars": 4344,
"preview": "#include \"stdafx.h\"\n#include \"util/util_tools.h\"\n#include \"../base/Thread.h\"\n#include \"../base/WeakPtr.h\"\n#include \"../b"
},
{
"path": "src/UI/UICannotDown.cpp",
"chars": 3386,
"preview": "#include \"stdafx.h\"\n#include \"util/util_tools.h\"\n#include \"../Global.h\"\n#include \"../base/Thread.h\"\n#include \"../base/We"
},
{
"path": "src/UI/UIMainWindowEx.cpp",
"chars": 38221,
"preview": "#include \"stdafx.h\"\n#include <mmsystem.h>\n#include <regex>\n#include <math.h>\n#include \"jsoncpp/json/json.h\"\n#include \"ut"
},
{
"path": "src/UI/UIMainWindowEx.h",
"chars": 3801,
"preview": "#pragma once\n\n#include \"util/def.h\"\n#include \"../DirectUI/DUITransWindowEx.h\"\n#include \"../DownLoader/DownloadDelegate.h"
},
{
"path": "src/UI/UtilityWindow.cpp",
"chars": 1764,
"preview": "#include \"StdAfx.h\"\n#include \"UtilityWindow.h\"\n\nCUtilityWindow::CUtilityWindow() {}\n\nCUtilityWindow::~CUtilityWindow() {"
},
{
"path": "src/UI/UtilityWindow.h",
"chars": 922,
"preview": "#pragma once\n\n#include <Mmsystem.h>\n#include <strsafe.h>\n#include \"util/def.h\"\n#include \"../Util/UtilApi.h\"\n#include \".."
},
{
"path": "src/Util/UtilApi.cpp",
"chars": 1599,
"preview": "#include \"stdafx.h\"\r\n#include <Tlhelp32.h>\r\n#include <shlobj.h>\r\n#include <util/md5.h>\r\n#include <fstream>\r\n#include <mm"
},
{
"path": "src/Util/UtilApi.h",
"chars": 313,
"preview": "#pragma once\r\n\r\nnamespace Util {\r\nnamespace Tools {\r\nint GetTextWidth(HWND hWnd, LPCTSTR lpszText, HFONT hFont);\r\n\r\nint "
},
{
"path": "src/base/FastDelegate.h",
"chars": 114114,
"preview": "// FastDelegate.h\n// Efficient delegates in C++ that generate only two lines of asm code!\n// "
},
{
"path": "src/base/FastDelegateImpl.h",
"chars": 29265,
"preview": "#pragma once\n\n#include <atltrace.h>\n#include \"FastDelegate.h\"\n#include \"WeakPtr.h\"\n\nusing namespace base;\n\nnamespace fas"
},
{
"path": "src/base/MessageLoop.cc",
"chars": 6248,
"preview": "#include \"StdAfx.h\"\n#include \"MessageLoop.h\"\n\nnamespace base {\nstatic base::ThreadLocalPointer<MessageLoop> tls_ptr;\n\nvo"
},
{
"path": "src/base/MessageLoop.h",
"chars": 3555,
"preview": "#pragma once\n\n#include <util/util_tools.h>\n#include \"../Event/WaitableEvent.h\"\n#include \"FastDelegateImpl.h\"\n#include \"P"
},
{
"path": "src/base/MessagePump.h",
"chars": 2144,
"preview": "#pragma once\n\n#include \"../time/time.h\"\n\nnamespace base {\nclass __declspec(novtable) MessagePump {\npublic: \n class __de"
},
{
"path": "src/base/MessagePumpDefault.cc",
"chars": 1532,
"preview": "#include \"StdAfx.h\"\n#include \"MessagePumpDefault.h\"\n\nnamespace base {\nMessagePumpDefault::MessagePumpDefault()\n : kee"
},
{
"path": "src/base/MessagePumpDefault.h",
"chars": 776,
"preview": "#pragma once\n\n#include \"../Event/WaitableEvent.h\"\n#include \"MessagePump.h\"\n#include \"macros.h\"\n\nnamespace base {\nclass M"
},
{
"path": "src/base/MessagePumpWin.cc",
"chars": 12561,
"preview": "#include \"StdAfx.h\"\n#include \"stringprintf.h\"\n#include \"MessagePumpWin.h\"\n\nnamespace base {\nstatic const wchar_t kWndCla"
},
{
"path": "src/base/MessagePumpWin.h",
"chars": 4667,
"preview": "#pragma once\n\n#include <windows.h>\n#include \"MessagePump.h\"\n#include \"macros.h\"\n#include \"observer_list.h\"\n#include \"sco"
},
{
"path": "src/base/PendingTask.cpp",
"chars": 1860,
"preview": "#include \"StdAfx.h\"\n#include \"PendingTask.h\"\n\nnamespace base {\nPendingTask::PendingTask() : task_(NULL), sequence_num_(0"
},
{
"path": "src/base/PendingTask.h",
"chars": 1314,
"preview": "#pragma once\n\n#include <queue>\n#include <list>\n#include \"../time/time.h\"\n#include \"FastDelegateImpl.h\"\n#include \"ref_cou"
},
{
"path": "src/base/Thread.cc",
"chars": 3870,
"preview": "#include \"StdAfx.h\"\n#include \"Thread.h\"\n\nnamespace base {\nunsigned int __stdcall ThreadFunc(void *params);\n\nThread::Opti"
},
{
"path": "src/base/Thread.h",
"chars": 2982,
"preview": "#pragma once\n\n#include <string>\n#include \"../Event/WaitableEvent.h\"\n#include \"MessageLoop.h\"\n\nnamespace base {\nclass Thr"
},
{
"path": "src/base/WeakPtr.cc",
"chars": 770,
"preview": "#include \"StdAfx.h\"\n#include \"WeakPtr.h\"\n\nnamespace base {\nWeakReference::Flag::~Flag() {}\n\nWeakReference::WeakReference"
},
{
"path": "src/base/WeakPtr.h",
"chars": 2531,
"preview": "#pragma once\n\n#include \"macros.h\"\n#include \"WrapperObj.h\"\n#include \"ref_counted.h\"\n\nnamespace base {\nclass WeakReference"
},
{
"path": "src/base/WrapperObj.h",
"chars": 1112,
"preview": "#pragma once\n\n// weakprt\n// ref count\n// Unretained\nnamespace base {\n\ntemplate <typename T> class __declspec(novtable) O"
},
{
"path": "src/base/aligned_memory.h",
"chars": 2346,
"preview": "#ifndef BASE_MEMORY_ALIGNED_MEMORY_H_\n#define BASE_MEMORY_ALIGNED_MEMORY_H_\n\n#include <malloc.h>\n\nnamespace base {\n// Al"
},
{
"path": "src/base/at_exist.cc",
"chars": 1086,
"preview": "#include \"StdAfx.h\"\n#include \"at_exist.h\"\n\nnamespace base {\nstatic AtExitManager *g_top_manager = nullptr;\n\nAtExitManage"
},
{
"path": "src/base/at_exist.h",
"chars": 857,
"preview": "#pragma once\n\n#include <stack>\n#include <util/util_tools.h>\n#include \"FastDelegateImpl.h\"\n\nnamespace base {\nclass AtExit"
},
{
"path": "src/base/common_threads.cc",
"chars": 376,
"preview": "#include \"StdAfx.h\"\n#include \"common_threads.h\"\n\nnamespace base {\nMessageLoop *Threads::threads_[Threads::COUNT] = { 0 }"
},
{
"path": "src/base/common_threads.h",
"chars": 348,
"preview": "#pragma once\n\n#include \"MessageLoop.h\"\n\nnamespace base {\nclass MessageLoop;\n\nclass Threads {\npublic:\n enum ThreadType {"
},
{
"path": "src/base/lazy_instance.cc",
"chars": 400,
"preview": "#include \"StdAfx.h\"\n#include \"lazy_instance.h\"\n\nnamespace base {\nvoid CompleteLazyInstance(intptr_t *state, intptr_t new"
},
{
"path": "src/base/lazy_instance.h",
"chars": 2855,
"preview": "#pragma once\n\n#include \"aligned_memory.h\"\n#include \"at_exist.h\"\n\n#define LAZY_INSTANCE_INITIALIZER { 0 }\n\nnamespace bas"
},
{
"path": "src/base/macros.h",
"chars": 825,
"preview": "#pragma once\n\n#define DISALLOW_COPY_AND_ASSIGN(TypeName) \\\n TypeName(const TypeName &); \\\n "
},
{
"path": "src/base/notification_details.h",
"chars": 1503,
"preview": "#pragma once\n\nnamespace base {\n\n// Do not declare a NotificationDetails directly--use either\n// \"Details<detailsclassnam"
},
{
"path": "src/base/notification_observer.h",
"chars": 471,
"preview": "#pragma once\n\nnamespace base {\n\nclass NotificationDetails;\nclass NotificationSource;\n\n// This is the base class for noti"
},
{
"path": "src/base/notification_registrar.cc",
"chars": 3247,
"preview": "#include \"StdAfx.h\"\n#include \"notification_registrar.h\"\n\nnamespace base {\n\nstruct NotificationRegistrar::Record {\n bool"
},
{
"path": "src/base/notification_registrar.h",
"chars": 1969,
"preview": "#pragma once\n\n#include <algorithm>\n#include <stdlib.h>\n#include \"macros.h\"\n#include \"notification_observer.h\"\n#include \""
},
{
"path": "src/base/notification_service.cc",
"chars": 4258,
"preview": "#include \"StdAfx.h\"\n#include \"lazy_instance.h\"\n#include \"notification_observer.h\"\n#include \"notification_types.h\"\n#inclu"
},
{
"path": "src/base/notification_service.h",
"chars": 4055,
"preview": "#pragma once\n\n#include <map>\n#include \"macros.h\"\n#include \"observer_list.h\"\n#include \"notification_details.h\"\n#include \""
},
{
"path": "src/base/notification_source.h",
"chars": 1452,
"preview": "#pragma once\n\nnamespace base {\n// Do not declare a NotificationSource directly--use either\n// \"Source<sourceclassname>(s"
},
{
"path": "src/base/notification_types.h",
"chars": 383,
"preview": "#pragma once\n\nnamespace base {\n\nenum NotificationType {\n\n NOTIFICATION_START = 0,\n\n // Special signal value to represe"
},
{
"path": "src/base/observer_list.h",
"chars": 3629,
"preview": "#pragma once\n\n#include \"WeakPtr.h\"\n#include <algorithm>\n#include <limits>\n#include <vector>\n\nnamespace base {\ntemplate <"
},
{
"path": "src/base/ref_counted.cc",
"chars": 919,
"preview": "// Copyright (c) 2011 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style l"
},
{
"path": "src/base/ref_counted.h",
"chars": 6216,
"preview": "#pragma once\n\n#include <cassert>\n#include \"macros.h\"\n\nnamespace base {\n\nnamespace subtle {\n\nclass RefCountedBase {\npubli"
},
{
"path": "src/base/scoped_handle.h",
"chars": 1689,
"preview": "#pragma once\n\n#include <windows.h>\n#include \"macros.h\"\n\nnamespace base {\nclass HandleTraits {\npublic:\n typedef HANDLE H"
},
{
"path": "src/base/string_util_win.h",
"chars": 719,
"preview": "#pragma once\n\n#include <stdio.h>\n#include <string.h>\n#include <wchar.h>\n\nnamespace base {\n\ninline int vsnprintf(char *bu"
},
{
"path": "src/base/stringprintf.cc",
"chars": 2854,
"preview": "#include \"StdAfx.h\"\n#include \"stringprintf.h\"\n#include \"macros.h\"\n\nnamespace base {\n\ninline int vsnprintfT(char *buffer,"
},
{
"path": "src/base/stringprintf.h",
"chars": 336,
"preview": "#pragma once\n\n#include \"string_util_win.h\"\n\nnamespace base {\nstd::string StringPrintf(const char *format, ...);\nstd::ws"
},
{
"path": "src/base/thread_local.cc",
"chars": 20,
"preview": "#include \"StdAfx.h\"\n"
},
{
"path": "src/base/thread_local.h",
"chars": 613,
"preview": "#pragma once\n\n#include \"macros.h\"\n\nnamespace base {\ntemplate <typename Type> class ThreadLocalPointer {\npublic:\n Thread"
},
{
"path": "src/base.h",
"chars": 293,
"preview": "#pragma once\n\n#include \"util/util_tools.h\"\n#include \"Event/WaitableEvent.h\"\n#include \"base/Thread.h\"\n#include \"base/Weak"
},
{
"path": "src/net/url_fetcher.cc",
"chars": 11332,
"preview": "#include \"StdAfx.h\"\n#include \"../base.h\"\n#include \"../LogAssist/LogAssist.h\"\n#include \"util/system.h\"\n#include \"url_fetc"
},
{
"path": "src/net/url_fetcher.h",
"chars": 3065,
"preview": "#pragma once\n\n#include \"../Event/WaitableEvent.h\"\n#include \"../base/MessageLoop.h\"\n#include \"../base/MessagePumpWin.h\"\n#"
},
{
"path": "src/res/xml/EngUIAgreement.xml",
"chars": 454,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"2\" title=\"\" left=\"0\" top=\"0\" width=\"644\" height=\"360\" center=\"1\" st"
},
{
"path": "src/res/xml/EngUICannotDown.xml",
"chars": 1469,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"2\" title=\"\" left=\"0\" top=\"0\" width=\"382\" height=\"232\" center=\"1\" st"
},
{
"path": "src/res/xml/EngUIContent.xml",
"chars": 3250,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"\" title=\"\" left=\"0\" top=\"0\" width=\"600\" height=\"288\" center=\"\" styl"
},
{
"path": "src/res/xml/EngUIMainWindow.xml",
"chars": 5366,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"1\" title=\"\" left=\"0\" top=\"0\" width=\"492\" height=\"402\" center=\"1\" st"
},
{
"path": "src/res/xml/UIAgreement.xml",
"chars": 453,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"2\" title=\"\" left=\"0\" top=\"0\" width=\"644\" height=\"360\" center=\"1\" st"
},
{
"path": "src/res/xml/UICannotDown.xml",
"chars": 1367,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"2\" title=\"\" left=\"0\" top=\"0\" width=\"382\" height=\"232\" center=\"1\" st"
},
{
"path": "src/res/xml/UIContent.xml",
"chars": 1170,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"\" title=\"\" left=\"0\" top=\"0\" width=\"600\" height=\"288\" center=\"\" styl"
},
{
"path": "src/res/xml/UIMainWindow.xml",
"chars": 5456,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<window id=\"1\" title=\"\" left=\"0\" top=\"0\" width=\"492\" height=\"402\" center=\"1\" st"
},
{
"path": "src/resource.h",
"chars": 460,
"preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ ɵİļ\n// downloader.rc ʹ\n//\n#define IDR_MAINFRAME 0x80\n#d"
},
{
"path": "src/time/time.cc",
"chars": 2026,
"preview": "// Copyright (c) 2011 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style l"
},
{
"path": "src/time/time.h",
"chars": 6297,
"preview": "#pragma once\n\n#include <string>\n#include <assert.h>\n#include <mmsystem.h>\n#include <windows.h>\n#include \"../base/macros."
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the sinajia/Downloader GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 197 files (2.7 MB), approximately 722.8k tokens, and a symbol index with 3377 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.