Showing preview only (2,782K chars total). Download the full file or copy to clipboard to get everything.
Repository: Squirrel/Squirrel.Windows
Branch: develop
Commit: 51f5e2cb01ad
Files: 216
Total size: 58.8 MB
Directory structure:
gitextract_rd62uedp/
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ └── bug_report.md
│ └── workflows/
│ └── build.yml
├── .gitignore
├── .gitmodules
├── CODE_OF_CONDUCT.md
├── COPYING
├── README.md
├── Squirrel.sln
├── devbuild.cmd
├── docs/
│ ├── contributing/
│ │ ├── branching-strategy.md
│ │ ├── building-squirrel.md
│ │ ├── contributing.md
│ │ └── vs-solution-overview.md
│ ├── faq.md
│ ├── getting-started/
│ │ ├── 0-overview.md
│ │ ├── 1-integrating.md
│ │ ├── 2-packaging.md
│ │ ├── 3-distributing.md
│ │ ├── 4-installing.md
│ │ └── 5-updating.md
│ ├── goals.md
│ ├── readme.md
│ └── using/
│ ├── amazon-s3.md
│ ├── application-signing.md
│ ├── custom-squirrel-events-non-cs.md
│ ├── custom-squirrel-events.md
│ ├── debugging-installs.md
│ ├── debugging-updates.md
│ ├── delta-packages.md
│ ├── github.md
│ ├── install-process.md
│ ├── loading-gif.md
│ ├── machine-wide-installs.md
│ ├── microsoft-iis.md
│ ├── naming.md
│ ├── nuget-package-metadata.md
│ ├── octopack.md
│ ├── packaging-tools.md
│ ├── squirrel-command-line.md
│ ├── staged-rollouts.md
│ ├── teamcity.md
│ ├── update-manager.md
│ ├── update-process.md
│ ├── visual-studio-packaging.md
│ └── x-doc-template.md
├── src/
│ ├── Directory.Build.props
│ ├── Setup/
│ │ ├── FxHelper.cpp
│ │ ├── FxHelper.h
│ │ ├── MachineInstaller.cpp
│ │ ├── MachineInstaller.h
│ │ ├── Setup.h
│ │ ├── Setup.rc
│ │ ├── Setup.vcxproj
│ │ ├── Setup.vcxproj.filters
│ │ ├── UpdateRunner.cpp
│ │ ├── UpdateRunner.h
│ │ ├── compat.manifest
│ │ ├── resource.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ ├── targetver.h
│ │ ├── unzip.cpp
│ │ ├── unzip.h
│ │ ├── winmain.cpp
│ │ └── wtl90/
│ │ ├── 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
│ ├── Squirrel/
│ │ ├── ApplyReleasesProgress.cs
│ │ ├── BinaryPatchUtility.cs
│ │ ├── ContentType.cs
│ │ ├── DeltaPackage.cs
│ │ ├── EnumerableExtensions.cs
│ │ ├── FileDownloader.cs
│ │ ├── IUpdateManager.cs
│ │ ├── MarkdownSharp.cs
│ │ ├── MsDeltaCompression.cs
│ │ ├── NativeMethods.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── ReleaseEntry.cs
│ │ ├── ReleaseExtensions.cs
│ │ ├── ReleasePackage.cs
│ │ ├── ShellFile.cs
│ │ ├── SimpleJson/
│ │ │ └── SimpleJson.cs
│ │ ├── SimpleSplat/
│ │ │ ├── AssemblyFinder.cs
│ │ │ ├── Logging.cs
│ │ │ ├── MemoizingMRUCache.cs
│ │ │ ├── ModeDetector.cs
│ │ │ ├── PlatformModeDetector.cs
│ │ │ └── ServiceLocation.cs
│ │ ├── Squirrel.csproj
│ │ ├── SquirrelAwareApp.cs
│ │ ├── SquirrelAwareExecutableDetector.cs
│ │ ├── TaskbarHelper.cs
│ │ ├── TrayHelper.cs
│ │ ├── UpdateInfo.cs
│ │ ├── UpdateManager.ApplyReleases.cs
│ │ ├── UpdateManager.CheckForUpdates.cs
│ │ ├── UpdateManager.DownloadReleases.cs
│ │ ├── UpdateManager.Factory.cs
│ │ ├── UpdateManager.InstallHelpers.cs
│ │ ├── UpdateManager.cs
│ │ └── Utility.cs
│ ├── Squirrel.nuspec
│ ├── StubExecutable/
│ │ ├── LICENSE.md
│ │ ├── Resource.h
│ │ ├── Semver200_comparator.cpp
│ │ ├── Semver200_parser.cpp
│ │ ├── StubExecutable.cpp
│ │ ├── StubExecutable.h
│ │ ├── StubExecutable.rc
│ │ ├── StubExecutable.vcxproj
│ │ ├── StubExecutable.vcxproj.filters
│ │ ├── semver200.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ ├── targetver.h
│ │ ├── version.h
│ │ └── version.inl
│ ├── SyncReleases/
│ │ ├── App.config
│ │ ├── Mono.Options/
│ │ │ └── Options.cs
│ │ ├── Program.cs
│ │ ├── SyncImplementations.cs
│ │ └── SyncReleases.csproj
│ ├── Update/
│ │ ├── AnimatedGifWindow.cs
│ │ ├── App.config
│ │ ├── AuthenticodeTools.cs
│ │ ├── CopStache.cs
│ │ ├── Mono.Options/
│ │ │ └── Options.cs
│ │ ├── Program.cs
│ │ ├── StartupOption.cs
│ │ ├── Update-Mono.csproj
│ │ ├── Update.com
│ │ ├── Update.csproj
│ │ ├── app.manifest
│ │ └── packages.config
│ ├── WriteZipToSetup/
│ │ ├── WriteZipToSetup.cpp
│ │ ├── WriteZipToSetup.vcxproj
│ │ ├── WriteZipToSetup.vcxproj.filters
│ │ ├── stdafx.cpp
│ │ └── stdafx.h
│ ├── build_official.cmd
│ └── squirrel.windows.props
├── test/
│ ├── Directory.Build.props
│ ├── Squirrel.Tests/
│ │ ├── ApplyReleasesProgressTests.cs
│ │ ├── ApplyReleasesTests.cs
│ │ ├── CheckForUpdateTests.cs
│ │ ├── ContentTypeTests.cs
│ │ ├── DeltaPackageTests.cs
│ │ ├── DownloadReleasesTests.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── ReleaseEntryTests.cs
│ │ ├── ReleasePackageTests.cs
│ │ ├── Squirrel.Tests.csproj
│ │ ├── SquirrelAwareExecutableDetectorTests.cs
│ │ ├── TestHelpers/
│ │ │ ├── AssertExtensions.cs
│ │ │ ├── ExposedClass.cs
│ │ │ ├── ExposedObject.cs
│ │ │ ├── ExposedObjectHelper.cs
│ │ │ ├── IntegrationTestHelper.cs
│ │ │ └── StaticHttpServer.cs
│ │ ├── UpdateManagerTests.cs
│ │ ├── UtilityTests.cs
│ │ └── fixtures/
│ │ ├── Caliburn.Micro.1.4.1.nupkg
│ │ ├── Caliburn.Micro.1.5.2.nupkg
│ │ ├── CaliburnMicroDemo.1.0.0.nupkg
│ │ ├── ProjectDependsOnJsonDotNet.1.0.nupkg
│ │ ├── ProjectWithContent.1.0.0.0-beta-full.nupkg
│ │ ├── ProjectWithContent.1.0.0.0-beta.nupkg
│ │ ├── RELEASES-OnePointOh
│ │ ├── RELEASES-OnePointOne
│ │ ├── SpecialCharacters-0.1.0-full.nupkg
│ │ ├── Squirrel.Core.1.0.0.0-full.nupkg
│ │ ├── Squirrel.Core.1.0.0.0.nupkg
│ │ ├── Squirrel.Core.1.1.0.0-delta.nupkg
│ │ ├── Squirrel.Core.1.1.0.0-full.nupkg
│ │ ├── Squirrel.Core.1.1.0.0.nupkg
│ │ ├── Squirrel.Core.1.1.0.0.nuspec
│ │ ├── Squirrel.Core.1.2.0.0-full.nupkg
│ │ ├── Squirrel.Core.1.3.0.0-full.nupkg
│ │ ├── Squirrel.Core.NoDependencies.1.0.0.0.nupkg
│ │ ├── Squirrel.Tests.0.1.0-pre.nupkg
│ │ ├── Squirrel.Tests.0.2.0-pre.nupkg
│ │ ├── SquirrelInstalledApp.nuspec
│ │ ├── ThisShouldBeANet45Project.1.0.nupkg
│ │ ├── content-types/
│ │ │ ├── basic-merged.xml
│ │ │ ├── basic.xml
│ │ │ ├── complex-merged.xml
│ │ │ └── complex.xml
│ │ ├── slack-1.1.8-full.nupkg
│ │ └── slack-1.2.0-delta.nupkg
│ └── test_official.cmd
├── vendor/
│ └── wix/
│ ├── candle.exe.config
│ ├── darice.cub
│ ├── light.exe.config
│ └── template.wxs
└── version.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.jpg binary
*.png binary
*.gif binary
*.cs text diff=csharp
*.vb text
*.c text
*.cpp text
*.cxx text
*.h text
*.hxx text
*.py text
*.rb text
*.java text
*.html text
*.htm text
*.css text
*.scss text
*.sass text
*.less text
*.js text
*.lisp text
*.clj text
*.sql text
*.php text
*.lua text
*.m text
*.asm text
*.erl text
*.fs text
*.fsx text
*.hs text
*.csproj text merge=union
*.vbproj text merge=union
*.fsproj text merge=union
*.dbproj text merge=union
*.sln text eol=crlf merge=union
src/Setup/resource.h binary
src/Setup/Setup.rc binary
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Feedback to help us improve the project
title: ''
labels: ''
assignees: ''
---
**Squirrel version(s)**
_Which version(s) of the project are you using?_
**Description**
_Replace this text with a short description of the problem_
**Steps to recreate**
1. Replace this
2. text with
3. the steps
4. to recreate
**Expected behavior**
_Explain what it's doing and why it's wrong_
**Actual behavior**
_Explain what it should be doing after it's fixed_
**Additional information**
_Add any other context about the problem here_
================================================
FILE: .github/workflows/build.yml
================================================
name: Build Squirrel
on:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop
env:
DOTNET_NOLOGO: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
NUGET_XMLDOC_MODE: skip
jobs:
build:
name: Build
runs-on: windows-2019
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
- name: Build Squirrel
shell: cmd
run: ./src/build_official.cmd
- name: Test Squirrel
shell: cmd
run: ./test/test_official.cmd
- name: Save build
uses: actions/upload-artifact@v2
with:
name: artifacts
path: build/artifacts/
================================================
FILE: .gitignore
================================================
#################
## Eclipse
#################
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
#################
## Visual Studio
#################
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
*.sln.ide
# Build results
**/[Dd]ebug/
**/[Rr]elease/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.vspscc
.builds
**/*.dotCover
**/packages/
packages
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
# Visual Studio profiler
*.psess
*.vsp
# ReSharper is a .NET coding add-in
_ReSharper*
# Installshield output folder
[Ee]xpress
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish
# Others
[Bb]in
[Oo]bj
sql
TestResults
*.Cache
ClientBin
stylecop.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
############
## Windows
############
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
#############
## Python
#############
*.py[co]
# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
.tox
#Translations
*.mo
#Mr Developer
.mr.developer.cfg
# Mac crap
.DS_Store
# NCrunch crap
*ncrunch*
## WiX PDBs
*.wixpdb
*.wixobj
## NUnit Test Output
nunit-Squirrel.Tests.xml
## Pester Test Output
tests/Test.xml
## CPP db crap
*.db
*.opendb
.vs/
================================================
FILE: .gitmodules
================================================
[submodule "vendor/nuget"]
path = vendor/nuget
url = https://github.com/Squirrel/NuGet
branch = fix-prerelease-comparison
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at github@brendanforster.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
================================================
FILE: COPYING
================================================
Copyright (c) 2012 GitHub, Inc.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE 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
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
================================================
FILE: README.md
================================================
| README.md |
|:---|
# Contributors Needed
We are looking for help with maintaining this important project - please read the discussion in [#1470](https://github.com/Squirrel/Squirrel.Windows/issues/1470) for more information.
---
# Squirrel: It's like ClickOnce but Works™

[](https://dev.azure.com/squirrel-installers/Squirrel.Windows/_build/latest?definitionId=1&branchName=master)
Squirrel is both a set of tools and a library, to completely manage both installation and updating your Desktop Windows application, written in either C# or any other language (i.e., Squirrel can manage native C++ applications).
Squirrel uses NuGet packages to create installation and update packages, which means that you probably already know most of what you need to create an installer.
## What Do We Want?
Windows apps should be as fast and as easy to install and update as apps like Google Chrome. From an app developer's side, it should be really straightforward to create an installer for my app, and publish updates to it, without having to jump through insane hoops.
* **Integrating** an app to use Squirrel should be extremely easy, provide a client API, and be developer friendly.
* **Packaging** is really easy, can be automated, and supports delta update packages.
* **Distributing** should be straightforward, use simple HTTP updates, and provide multiple "channels" (a-la Chrome Dev/Beta/Release).
* **Installing** is Wizard-Free™, with no UAC dialogs, does not require reboot, and is .NET Framework friendly.
* **Updating** is in the background, doesn't interrupt the user, and does not require a reboot.
Refer to our full list of goals for [integrating, packaging, distributing, installing, and updating](docs/goals.md).
## Documentation
See the documentation [Table of Contents](docs/readme.md) for an overview of the available documentation for Squirrel.Windows. It includes a [Getting Started Guide](docs/getting-started/0-overview.md) as well as additional topics related to using Squirrel in your applications.
## Building Squirrel
For the impatient:
```sh
git clone --recursive https://github.com/squirrel/squirrel.windows
cd squirrel.windows
devbuild.cmd
```
See [Contributing](docs/contributing/contributing.md) for additional information on building and contributing to Squirrel.
## License and Usage
See [COPYING](COPYING) for details on copyright and usage of the Squirrel.Windows software.
================================================
FILE: Squirrel.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28803.352
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel", "src\Squirrel\Squirrel.csproj", "{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Squirrel.Tests", "test\Squirrel.Tests\Squirrel.Tests.csproj", "{98AEB048-E27D-42F4-9440-505B7F78BAFD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Setup", "src\Setup\Setup.vcxproj", "{C1D40624-A484-438A-B846-052F321C89D1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Update", "src\Update\Update.csproj", "{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SyncReleases", "src\SyncReleases\SyncReleases.csproj", "{EB521191-1EBF-4D06-8541-ED192E2EE378}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionLevel", "SolutionLevel", "{ED657D2C-F8A0-4012-A64F-7367D41BE4D2}"
ProjectSection(SolutionItems) = preProject
src\Squirrel.nuspec = src\Squirrel.nuspec
vendor\wix\template.wxs = vendor\wix\template.wxs
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core", "vendor\nuget\src\Core\Core.csproj", "{F879F274-EFA0-4157-8404-33A19B4E6AEC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WriteZipToSetup", "src\WriteZipToSetup\WriteZipToSetup.vcxproj", "{4D3C8B70-075D-48A5-9FF3-EDB87347B136}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Update-Mono", "src\Update\Update-Mono.csproj", "{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StubExecutable", "src\StubExecutable\StubExecutable.vcxproj", "{C028DB2A-E7C5-4232-8C22-D5FBA2176136}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CIBuild|Any CPU = CIBuild|Any CPU
CIBuild|Mixed Platforms = CIBuild|Mixed Platforms
CIBuild|x64 = CIBuild|x64
CIBuild|x86 = CIBuild|x86
Coverage|Any CPU = Coverage|Any CPU
Coverage|Mixed Platforms = Coverage|Mixed Platforms
Coverage|x64 = Coverage|x64
Coverage|x86 = Coverage|x86
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Mono Debug|Any CPU = Mono Debug|Any CPU
Mono Debug|Mixed Platforms = Mono Debug|Mixed Platforms
Mono Debug|x64 = Mono Debug|x64
Mono Debug|x86 = Mono Debug|x86
Mono Release|Any CPU = Mono Release|Any CPU
Mono Release|Mixed Platforms = Mono Release|Mixed Platforms
Mono Release|x64 = Mono Release|x64
Mono Release|x86 = Mono Release|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|Any CPU.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|Any CPU.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|Mixed Platforms.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|x64.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|x64.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|x86.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.CIBuild|x86.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|Any CPU.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|Mixed Platforms.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|Mixed Platforms.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|x64.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|x64.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|x86.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Coverage|x86.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|x64.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|x64.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|x86.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Debug|x86.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|x64.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|x64.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|x86.ActiveCfg = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Debug|x86.Build.0 = Debug|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|Any CPU.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|Mixed Platforms.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|x64.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|x64.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|x86.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Mono Release|x86.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|Any CPU.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|x64.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|x64.Build.0 = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|x86.ActiveCfg = Release|Any CPU
{1436E22A-FE3C-4D68-9A85-9E74DF2E6A92}.Release|x86.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|Any CPU.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|Any CPU.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|Mixed Platforms.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|x64.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|x64.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|x86.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.CIBuild|x86.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|Any CPU.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|Mixed Platforms.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|Mixed Platforms.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|x64.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|x64.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|x86.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Coverage|x86.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|x64.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|x64.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|x86.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Debug|x86.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|x64.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|x64.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|x86.ActiveCfg = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Debug|x86.Build.0 = Debug|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|Any CPU.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|Mixed Platforms.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|x64.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|x64.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|x86.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Mono Release|x86.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|Any CPU.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|x64.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|x64.Build.0 = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|x86.ActiveCfg = Release|Any CPU
{98AEB048-E27D-42F4-9440-505B7F78BAFD}.Release|x86.Build.0 = Release|Any CPU
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|Any CPU.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|Any CPU.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|Mixed Platforms.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|Mixed Platforms.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|x64.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|x64.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|x86.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.CIBuild|x86.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|Any CPU.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|Any CPU.Build.0 = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|Mixed Platforms.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|Mixed Platforms.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|x64.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|x64.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|x86.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Coverage|x86.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Debug|Any CPU.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Debug|Any CPU.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Debug|x64.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Debug|x86.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Debug|x86.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|Any CPU.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|Any CPU.Build.0 = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|Mixed Platforms.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|x64.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|x64.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|x86.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Debug|x86.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|Any CPU.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|Any CPU.Build.0 = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|Mixed Platforms.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|Mixed Platforms.Build.0 = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|x64.ActiveCfg = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|x64.Build.0 = Debug|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|x86.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Mono Release|x86.Build.0 = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Release|Any CPU.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Release|Any CPU.Build.0 = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Release|Mixed Platforms.Build.0 = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Release|x64.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Release|x86.ActiveCfg = Release|Win32
{C1D40624-A484-438A-B846-052F321C89D1}.Release|x86.Build.0 = Release|Win32
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|Any CPU.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|Any CPU.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|Mixed Platforms.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|x64.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|x64.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|x86.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.CIBuild|x86.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|Any CPU.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|Mixed Platforms.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|x64.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|x64.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|x86.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Coverage|x86.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|x64.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|x64.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|x86.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Debug|x86.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|x64.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|x64.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|x86.ActiveCfg = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Debug|x86.Build.0 = Debug|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|Any CPU.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|Mixed Platforms.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|x64.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|x64.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|x86.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Mono Release|x86.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|Any CPU.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|x64.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|x64.Build.0 = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|x86.ActiveCfg = Release|Any CPU
{1EEBACBC-6982-4696-BD4E-899ED0AC6CD2}.Release|x86.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|Any CPU.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|Any CPU.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|Mixed Platforms.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|x64.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|x64.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|x86.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.CIBuild|x86.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|Any CPU.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|Mixed Platforms.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|Mixed Platforms.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|x64.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|x64.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|x86.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Coverage|x86.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|x64.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|x64.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|x86.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Debug|x86.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|x64.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|x64.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|x86.ActiveCfg = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Debug|x86.Build.0 = Debug|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|Any CPU.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|Mixed Platforms.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|x64.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|x64.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|x86.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Mono Release|x86.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|Any CPU.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|x64.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|x64.Build.0 = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|x86.ActiveCfg = Release|Any CPU
{EB521191-1EBF-4D06-8541-ED192E2EE378}.Release|x86.Build.0 = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|Any CPU.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|Any CPU.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|Mixed Platforms.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|Mixed Platforms.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|x64.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|x64.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|x86.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.CIBuild|x86.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|Any CPU.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|Any CPU.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|Mixed Platforms.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|Mixed Platforms.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|x64.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|x64.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|x86.ActiveCfg = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Coverage|x86.Build.0 = Coverage|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|x64.ActiveCfg = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|x64.Build.0 = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|x86.ActiveCfg = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Debug|x86.Build.0 = Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|Any CPU.ActiveCfg = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|Any CPU.Build.0 = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|Mixed Platforms.ActiveCfg = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|Mixed Platforms.Build.0 = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|x64.ActiveCfg = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|x64.Build.0 = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|x86.ActiveCfg = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Debug|x86.Build.0 = Mono Debug|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|Any CPU.ActiveCfg = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|Any CPU.Build.0 = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|Mixed Platforms.ActiveCfg = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|Mixed Platforms.Build.0 = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|x64.Build.0 = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Mono Release|x86.Build.0 = Mono Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|Any CPU.Build.0 = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|x64.ActiveCfg = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|x64.Build.0 = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|x86.ActiveCfg = Release|Any CPU
{F879F274-EFA0-4157-8404-33A19B4E6AEC}.Release|x86.Build.0 = Release|Any CPU
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|Any CPU.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|Any CPU.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|Mixed Platforms.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|Mixed Platforms.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|x64.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|x64.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|x86.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.CIBuild|x86.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|Any CPU.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|Any CPU.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|Mixed Platforms.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|Mixed Platforms.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|x64.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|x64.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|x86.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Coverage|x86.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Debug|Any CPU.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Debug|Any CPU.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Debug|x64.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Debug|x86.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Debug|x86.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|Any CPU.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|Any CPU.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|Mixed Platforms.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|x64.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|x64.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|x86.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Debug|x86.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|Any CPU.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|Any CPU.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|Mixed Platforms.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|Mixed Platforms.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|x64.ActiveCfg = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|x64.Build.0 = Debug|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|x86.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Mono Release|x86.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Release|Any CPU.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Release|Any CPU.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Release|Mixed Platforms.Build.0 = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Release|x64.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Release|x86.ActiveCfg = Release|Win32
{4D3C8B70-075D-48A5-9FF3-EDB87347B136}.Release|x86.Build.0 = Release|Win32
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|Any CPU.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|Any CPU.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|Mixed Platforms.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|Mixed Platforms.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|x64.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|x64.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|x86.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.CIBuild|x86.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|Any CPU.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|Mixed Platforms.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|Mixed Platforms.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|x64.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|x64.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|x86.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Coverage|x86.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|x64.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|x64.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|x86.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Debug|x86.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|x64.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|x64.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|x86.ActiveCfg = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Debug|x86.Build.0 = Debug|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|Any CPU.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|Mixed Platforms.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|x64.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|x64.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|x86.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Mono Release|x86.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|Any CPU.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|x64.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|x64.Build.0 = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|x86.ActiveCfg = Release|Any CPU
{5B4BC824-73FC-49D7-BD9D-CE53AA1AA86E}.Release|x86.Build.0 = Release|Any CPU
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|Any CPU.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|Any CPU.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|Mixed Platforms.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|Mixed Platforms.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|x64.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|x64.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|x86.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.CIBuild|x86.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|Any CPU.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|Any CPU.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|Mixed Platforms.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|Mixed Platforms.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|x64.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|x64.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|x86.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Coverage|x86.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|Any CPU.ActiveCfg = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|Any CPU.Build.0 = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|x64.ActiveCfg = Debug|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|x64.Build.0 = Debug|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|x86.ActiveCfg = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Debug|x86.Build.0 = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|Any CPU.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|Any CPU.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|Mixed Platforms.Build.0 = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|x64.ActiveCfg = Debug|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|x64.Build.0 = Debug|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|x86.ActiveCfg = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Debug|x86.Build.0 = Debug|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|Any CPU.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|Any CPU.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|Mixed Platforms.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|Mixed Platforms.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|x64.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|x64.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|x86.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Mono Release|x86.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|Any CPU.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|Any CPU.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|Mixed Platforms.Build.0 = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|x64.ActiveCfg = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|x64.Build.0 = Release|x64
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|x86.ActiveCfg = Release|Win32
{C028DB2A-E7C5-4232-8C22-D5FBA2176136}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {68CA987A-9BAB-4C75-8EEB-4596BA6BBD07}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
$0.TextStylePolicy = $1
$1.inheritsSet = VisualStudio
$1.inheritsScope = text/plain
$1.scope = text/plain
$0.CSharpFormattingPolicy = $2
$2.IndentSwitchBody = True
$2.IndentBlocksInsideExpressions = True
$2.AnonymousMethodBraceStyle = NextLine
$2.PropertyBraceStyle = NextLine
$2.PropertyGetBraceStyle = NextLine
$2.PropertySetBraceStyle = NextLine
$2.EventBraceStyle = NextLine
$2.EventAddBraceStyle = NextLine
$2.EventRemoveBraceStyle = NextLine
$2.StatementBraceStyle = NextLine
$2.ElseNewLinePlacement = NewLine
$2.CatchNewLinePlacement = NewLine
$2.FinallyNewLinePlacement = NewLine
$2.WhileNewLinePlacement = DoNotCare
$2.ArrayInitializerWrapping = DoNotChange
$2.ArrayInitializerBraceStyle = NextLine
$2.BeforeMethodDeclarationParentheses = False
$2.BeforeMethodCallParentheses = False
$2.BeforeConstructorDeclarationParentheses = False
$2.NewLineBeforeConstructorInitializerColon = NewLine
$2.NewLineAfterConstructorInitializerColon = SameLine
$2.BeforeDelegateDeclarationParentheses = False
$2.NewParentheses = False
$2.SpacesBeforeBrackets = False
$2.inheritsSet = Mono
$2.inheritsScope = text/x-csharp
$2.scope = text/x-csharp
EndGlobalSection
EndGlobal
================================================
FILE: devbuild.cmd
================================================
@echo off
setlocal
pushd %~dp0
:parse_args
if /i "%1"=="release" set _C=/p:Configuration=Release
if /i "%1"=="init" set _INIT=1
if /i "%1"=="initialize" set _INIT=1
if /i "%1"=="inc" set _INCREMENTAL=1
if /i "%1"=="incremental" set _INCREMENTAL=1
if /i "%1"=="clean" set _INCREMENTAL= & set _CLEAN=1
if not "%1"=="" shift & goto parse_args
if not "%_INCREMENTAL"=="1" rd /s /q build packages 2> nul
if not "%_CLEAN%"=="" goto end
if "%_INIT%"=="1" git submodule update --init --recursive
nuget restore
msbuild -Restore %_C% -m -nr:false -v:m
:end
popd
endlocal
================================================
FILE: docs/contributing/branching-strategy.md
================================================
| [docs](..) / [contributing](.) / branching-strategy.md
|:---|
# tl;dr
1. Fork Squirrel.Windows on GitHub
2. Send features/fixes via pull request targeting the default branch: `develop`
# Branching Strategy
Squirrel.Windows uses a very lightweight rendition of [gitflow](https://nvie.com/posts/a-successful-git-branching-model/).
* `master` branch - the `master` branch is where official releases of squirrel are built. Changes to `master` are made only via merge commits from the `develop` branch. Tags are made for each each release.
* `develop` branch - the `develop` branch is where the next version of squirrel is under development. Changes to `develop` are made via pull request from forks and feature branches. So `develop` is the default branch on GitHub.
* fork - your development takes place in fork. When a feature/fix is ready, a pull request is sent to Squirrel.Windows targeting the `develop` branch.
**Why gitflow?** This lightweight rendition of giflow adds minimal "overhead" in the `develop` branch. The `develop` branch allows us to experiment with new ideas and iterate on features. When "enough" work is completed for a release, complete integration testing--including multi-version upgrades--is done on the `develop` branch. When the testing is completed successfully, the `develop` branch is integrated into `master` and a release is automatically built and released.
## See Also
* [Building Squirrel](building-squirrel.md) - steps to build squirrel for the impatient.
* [VS Solution Overview](vs-solution-overview.md) - overview of the various projects in the Squirrel.Windows Visual Studio solution.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/contributing/building-squirrel.md
================================================
| [docs](..) / [contributing](.) / building-squirrel.md
|:---|
# Building Squirrel
Squirrel.Windows is a fairly typical C# / C++ project, the only special part is making sure to clone submodules via the command shown below.
For the Impatient:
```sh
git clone https://github.com/squirrel/squirrel.windows
cd squirrel.windows
git submodule update --init --recursive ## THIS IS THE PART YOU PROBABLY FORGOT
devbuild.cmd
```
**Tip:** You can compile the Squirrel.Windows solution with Visual Studio version 2019 and above (including community edition).
**Tip:** For Visual Studio versions that use the Visual Studio Installer (2017/2019 and above), you will need to have at least both Desktop .NET development and Desktop C++ development workloads checked in the Visual Studio Installer. You will also need to make sure that the individual package for the VC++ version used by Squirrel is checked.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/contributing/contributing.md
================================================
| [docs](..) / [contributing](.) / contributing.md
|:---|
# Contributing
Why not give back and help make Squirrel even better? Here is an overview of ways you can become more involved.
* **Contribute Documentation** - improve the documentation or provide additional code examples to benefit others.
* **Subscribe to Issues on GitHub** - have some experience using Squirrel? Help answer questions under issues or post a Pull Request fixing a bug.
* **Contribute Code** - have a great feature that you feel is a good fit for Squirrel? Send a Pull Request.
## See Also
* [Building Squirrel](building-squirrel.md) - steps to build squirrel for the impatient.
* [VS Solution Overview](vs-solution-overview.md) - overview of the various projects in the Squirrel.Windows Visual Studio solution.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/contributing/vs-solution-overview.md
================================================
| [docs](..) / [contributing](.) / vs-solution-overview.md
|:---|
# Visual Studio Solution Overview
An overview of the various projects in the Squirrel.Windows Visual Studio solution and how they relate to different aspects of the update process.
| Project / Assembly Name | Libraries (NuGet) | Libraries (NuGet) | Releases Directory (releasify output) | MyApp (install location) |
|--------------------------------|---------|-----|------------------|-------------|
| **Core** NuGet.Squirrel.dll | NuGet.Squirrel.dll | | | |
| **Squirrel** Squirrel.dll | Squirrel.dll | | | |
| **SyncRelease** SyncRelease.exe | | SyncRelease.exe | | |
| **Update** Update.exe | | Squirrel.exe | | Update.exe |
| **Setup** Setup.exe | | Setup.exe | Setup.exe (+MyApp.Latest.nupkg) | |
| **WriteZipToSetup** WriteZipToSetup.exe | | WriteZipToSetup.exe | | |
* **Project / Assembly Name**: Solution project name (from Squirrel.sln) and output assembly name.
* **Libraries (NuGet)**: Program libraries installed added as references in your MyApp solution when adding the Squirrel.Windows NuGet package to your project.
* **Libraries (NuGet)**: Executable tools included in the Squirrel.Windows NuGet package used to prepare deployments via the Package Manager Console (e.g., Squirrel.exe).
* **Releases Directory (releasify output)**: Directory where the Squirrel --releasify process outputs the packages and Setup application for your project (e.g., MyAppSourceCode/Releases).
* **MyApp (install location)**: MyApp install directory (e.g., %LOCALAPPDATA%\MyApp) where the application is actually installed and updated via Squirrel.Windows.
**Note**: Note that the Squirrel.exe application found in the tools directory of the Squirrel.Windows NuGet package is actually a renamed version of the Update.exe application (see Squirrel.Windows\src\Squirrel.nuspec)
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/faq.md
================================================
| [docs](.) / faq.md |
|:---|
# Frequently Asked Questions (FAQ)
Frequently Asked Questions for Squirrel.Windows, organized by area below.
## Integrating
1. **Can Squirrel.Windows be used on applications that aren't made with .Net?**
Yes, you can package a non-c# application in the same manner as described in the Getting Started guide. For additional customization, see [custom squirrel events for non-c# apps](using/custom-squirrel-events-non-cs.md).
1. **How do I migrate a ClickOnce app to Squirrel?**
You may want to look into the [ClickOnceToSquirrelMigrator](https://github.com/flagbug/ClickOnceToSquirrelMigrator) migration helper.
1. **How can I determine if my app is a Squirrel app? I provide a squirrel and non-squirrel install version and want to know which is running.**
You can check for the `Update.exe` in the parent directory to determine if the app is using Squirrel ([see #574](https://github.com/Squirrel/Squirrel.Windows/issues/574#issuecomment-176043311)).
```
var assembly = Assembly.GetEntryAssembly();
var updateDotExe = Path.Combine(Path.GetDirectoryName(assembly.Location), "..", "Update.exe");
var isSquirrelInstall = File.Exists(updateDotExe);
```
## Packaging
1. **How can I tell what is going wrong with the releasify?**
Check `packages\Squirrel.Windows.VERSION\tools\SquirrelSetup.log` for logging information when creating packages.
2. **Do I really have to add all the Squirrel DLLs to my app ?**
Yes, you have to add them all to the NuGet package, however, [others](https://github.com/Squirrel/Squirrel.Windows/issues/531) have used [ILMerge](https://www.microsoft.com/en-us/research/people/mbarnett/#ilmerge) to generate a single assembly.
## Distributing
1. **Can I distribute update files on IIS?**
Yes you can, see [Microsoft IIS](using/microsoft-iis.md) for details.
## Installing
1. **The Initial Install via `Setup.exe` is failing. How do I learn what is going wrong?**
Check `%LocalAppData%\SquirrelTemp\SquirrelSetup.log` for logs related to the initial install.
1. **Installer application doesn't do anything. The animation flashes but the application never starts.**
The app is likely crashing on the first run (see [Debugging Installs](using/debugging-installs.md) for details).
1. **The Installer seems to be blocked in Enterprise environments. How can I confirm this?**
Squirrel may be prevented from installing if Group Policy disallows the running of executables from `%LocalAppData%`. In this case, the "show log" button on the "installation failed" dialog will fail because `Update.exe` can not run to create a log file.
The `Setup.exe` for your application should still copy files to `%LocalAppData%\SquirrelTemp` as a pre-installation step. To verify that Group Policy is restricting you, execute `Update.exe` from the command line as follows:
```
C:\>%LocalAppData\MyApp\Update.exe
This program is blocked by group policy. For more information, contact your system administrator.
```
The best course of action is to request that executables for Squirrel and your application be whitelisted by your corporate overlords.
1. **No Shortcuts are Created for my Application**
Verify that the NuGet Package Metadata `id` property doesn't have a [space or \[dot\]](https://github.com/Squirrel/Squirrel.Windows/issues/530) in it.
1. **Can I use a different name for the `Setup.exe` install application?**
Yes, you can rename the `Setup.exe` to what ever you wish (e.g., `MyAppSetup.exe`) ([see #611](https://github.com/Squirrel/Squirrel.Windows/issues/611))
1. **Virus scanner is returning false positives on `MyApp.exe` or `Update.exe`. What can I do?**
[Application Signing](using/application-signing.md) will help. In addition, you can submit false positives to the various antivirus authors (e.g., [Symantec](https://submit.symantec.com/false_positive/), [Microsoft](https://www.microsoft.com/security/portal/Submission/Submit.aspx), [AVG](http://www.avg.com/submit-sample), [Comodo](https://www.comodo.com/home/internet-security/submit.php), [McAfee](https://support.mcafeesaas.com/MCAFEE/_cs/AnswerDetail.aspx?aid=65), [List of Submission Locations](http://www.techsupportalert.com/content/how-report-malware-or-false-positives-multiple-antivirus-vendors.htm), [see #218](https://github.com/Squirrel/Squirrel.Windows/issues/218#issuecomment-166406180)).
1. **Why is my application icon mangled after installation?**
Application icons specified in the [NuGet Package Metadata](using/nuget-package-metadata.md) must be of type icon (.ICO) rather than an image file (source: [issue #745](https://github.com/Squirrel/Squirrel.Windows/issues/745))
## Updating
1. **How do I determine what is going wrong with the UpdateManager in MyApp?**
You can setup your `\bin` directory so you can execute MyApp in the Visual Studio debugger and simply step through the update process as well as catch exceptions and log the results (see [Debugging Updates](using/debugging-updates.md) for details)
2. **I've Distributed a Broken Copy of Update.exe. How can I fix this?**
Sometimes, you might ship a broken copy of `Update.exe` that succeeds the initial install, but doesn't do what you want for some reason. To fix this, you can force an update of the `Update.exe` by including a copy of `Squirrel.exe` in your app update package. If Squirrel sees this, it will copy in this latest version to the local app installation.
3. **How can you replace DLLs while they're loaded? Impossible!**
You can't. So, how can you do it? The basic trick that ClickOnce uses is, you have a folder of EXEs and DLLs, and an Application Shortcut. When ClickOnce goes to update its stuff, it builds a completely *new* folder of binaries, then the last thing it does is rewrite the app shortcut to point to the new folder.
4. **My previous application version is still around after the update. Doesn't Squirrel clean up old versions?**
The current and immediately previous version of your application are not deleted on clean up (see [issue #589](https://github.com/Squirrel/Squirrel.Windows/issues/589)).
5. **How can I persist the [.NET Application Settings](https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/application-settings-overview) after an update?**
See (https://github.com/Squirrel/Squirrel.Windows/issues/198#issuecomment-299262613) for a simple workaround if you want to keep using .NET Application Settings. Alternatively, consider using a solution that lets you control where the settings are persisted, and store settings in an app-specific location under `%LOCALAPPDATA%`.
---
| Return: [Table of Contents](readme.md) |
|:---|
================================================
FILE: docs/getting-started/0-overview.md
================================================
| [docs](..) / [getting-started](.) / 0-overview.md|
|:---|
# Getting Started Guide
Getting Started will walk you through the integration of Squirrel.Windows for a basic c# Windows Forms application named MyApp.
## MyApp
MyApp simply displays the assembly location and application version on a simple form.

For simplicity, any unneeded references and files have been removed from the solution.

If you wish to follow along, you can [download](example/MyApp.zip) a zip file of the MyApp solution.
## Overview
This guide will go over the following steps to demonstrate using Squirrel.Windows to distribute and update MyApp.
1. [Integrating](1-integrating.md) - integrating Squirrel `UpdateManager` into your application.
1. [Packaging](2-packaging.md) - packaging application files and preparing them for release.
1. [Distributing](3-distributing.md) - providing install and update files for users.
1. [Installing](4-installing.md) - process of initial installation of your application.
1. [Updating](5-updating.md) - process of updating an existing install.
---
| Next: [1. Integrating](1-integrating.md)|
|:---|
================================================
FILE: docs/getting-started/1-integrating.md
================================================
| [docs](..) / [getting-started](.) / 1-integrating.md |
|:---|
# Step 1. Integrating
The first step is to configure MyApp to work with Squirrel.Windows. This requires you to install the Squirrel.Windows NuGet Package into the `MyApp.sln`.
## Installing Squirrel.Windows
The easiest way to install the Squirrel.Windows is using the [Package Manager Console](https://docs.NuGet.org/consume/package-manager-console) in Visual Studio after loading the MyApp solution.
~~~powershell
PM> Install-Package Squirrel.Windows
~~~
### Squirrel.Windows References
The package will install a number of dependent packages as well as tools that will be used to prepare MyApp to be released. The References in the Solution Explorer of the MyApp project now looks like the following (as of Squirrel.Windows version 1.2.2):

**Tip:** Alternatively, you can use the "Manage NuGet Packages" GUI to install Squirrel.Windows (right clicking on your project in the Solution Explorer of Visual Studio and select "Manage NuGet Packages...").
## Basic Updating
For the basic example we are going to have MyApp update from your local file system rather than distributing the files via the web. See section [Packaging](2-packaging.md) for additional options related to the distributing the update files.
### Basic Squirrel.Windows Update Code
The following code is added to MyApp `Program.cs` to cause the application to check for, download, and install any new releases of MyApp in the background while you use the application.
**`Program.cs`**
~~~cs
using Squirrel;
using System.Threading.Tasks;
~~~
**`static async Task Main()`**
~~~cs
using (var mgr = new UpdateManager("C:\\Projects\\MyApp\\Releases"))
{
await mgr.UpdateApp();
}
~~~
The code above demonstrates the most basic update mechanism using the `UpdateApp()` method in an asynchronous task. The actions it takes will be discussed further in section [Updating](5-updating.md).
**Caution:** The path you provide the `UpdateManager` is the path to the directory where the `RELEASES` file is located (which is also named `Releases` by default), and not the actual `RELEASES` file.
**Tip:** By default, the files for updating MyApp will be placed in the same directory as your `MyApp.sln` file under a `Releases` directory (e.g., `C:\Projects\MyApp\Releases`).
**Tip:** In this example we simply put the code in the `Program.cs` file. For a production application, place the update code later in start-up process so as to avoid slowing down your program start.
**Tip:** If you attempt to debug the application via Visual Studio, you will get an exception of `Update.exe not found, not a Squirrel-installed app?`. You can resolve this by placing a copy of the Update.exe in your bin directory (see [Debugging Updates: Update.exe not found?](../using/debugging-updates.md) section for details).
---
| Previous: [Getting Started Guide](0-overview.md) | Next: [2. Packaging](2-packaging.md)|
|:---|:---|
================================================
FILE: docs/getting-started/2-packaging.md
================================================
| [docs](..) / [getting-started](.) / 2-packaging.md |
|:---|
# Step 2. Packaging
Packaging is the process of building, packing, and preparing MyApp release packages for distribution.
## Building
The first step in preparing the application for distribution is to build the application.
1. **Set MyApp Version** - set the initial application version.
**`Properties\AssemblyInfo.cs`**
~~~cs
[assembly: AssemblyVersion("1.0.0")]
[assembly: AssemblyFileVersion("1.0.0")]
~~~
2. **Switch to Release** - switch your build configuration to `Release`.
3. **Build MyApp** - build your application to ensure the latest changes are included in the package we will be creating.
## Packing
Squirrel uses [NuGet](https://www.NuGet.org/) for bundling application files and various application properties (e.g., application name, version, description) in a single release package.
Section [NuGet Package Metadata](../using/nuget-package-metadata.md) provides additional details on using NuGet and `.nuspec` files to automate the packing of your application. We will be going through the process using the [NuGet Package Explorer](https://github.com/NuGetPackageExplorer/NuGetPackageExplorer) to manually create a NuGet package.
1. **Creating a New NuGet Package** - the first step is to create a new NuGet package.
2. **Edit Metadata** - update package metadata for MyApp.
* **Id** - name of the application (no spaces)
* **Version** - version specified in `Properties\Assembly.cs`
* **Dependencies** - Squirrel expects no dependencies in the package (all files should be explicitly added to the package)
3. **Add lib & net45** - add the `lib` folder and the `net45` folder to the project. Squirrel is expecting a single `lib / net45` directory provided regardless of whether your app is a `net45` application.
4. **Add Release Files** - add all the files from `bin\Release` needed by MyApp to execute (including the various files required by Squirrel).
* **Include MyApp Files:** MyApp.exe, MyApp.exe.config, any non-standard .NET dll's needed by MyApp.exe.
* **Include Squirrel Files:** Squirrel.dll, Splat.dll, NuGet.Squirrel.dll, Mono.Cecil.\*, DeltaCompressionDotNet.\*,
* **Exclude:** *.vshost.\*, *.pdb files
5. **Save the NuGet Package File** - save the NuGet package file to where you can easily access later (e.g., `MyApp.sln` directory). Follow the given naming format (e.g., `MyApp.1.0.0.nupkg`).

## Releasifying
Releasifying is the process of preparing the `MyApp.1.0.0.nupkg` for distribution.
### Using Releasify
You use the `Squirrel.exe` tool that was included in the Squirrel.Windows package you installed in the `MyApp.sln` previously.
Use the [Package Manager Console](https://docs.NuGet.org/consume/package-manager-console) to execute `Squirrel.exe --releasify` command.
~~~powershell
PM> Squirrel --releasify MyApp.1.0.0.nupkg
~~~
**Tip:** If you get an error stating that `...'Squirrel' is not recognized...` then you may simply need to restart Visual Studio so the `Package Manager Console` will have loaded all the package tools.
### Releasify Output
The `Squirrel --releasify` command completes the following:
* **Create `Releases` Directory** - creates a Releases directory (in the `MyApp.sln` directory by default).
* **Create `Setup.exe`** - creates a `Setup.exe` file which includes the latest version of the application to be installed.
* **Create `RELEASES` File** - creates a file that provides a list of all release files for MyApp to be used during the update process
* **Create `MyApp.1.0.0-full.nupkg`** - copies the package you created to the `Releases` directory.
* **Create `MyApp.*.*.*-delta.nupkg`** - if you are releasing an update, releasify creates a delta file package to reduce the update package size (see [Updating](5-updating.md) for details).
**`C:\Projects\MyApp\Releases`**

## See Also
* [Visual Studio Build Packaging](../using/visual-studio-packaging.md) - integrating NuGet packaging into your visual studio build process to include packing and releasifying.
---
| Previous: [1. Integrating](1-integrating.md) | Next: [3. Distributing](3-distributing.md)|
|:---|:---|
================================================
FILE: docs/getting-started/3-distributing.md
================================================
| [docs](..) / [getting-started](.) / 3-distributing.md |
|:---|
# Step 3. Distributing
After packaging MyApp for distribution, the various files in the `Releases` directory are used to distribute MyApp to users.
* **Setup Application** - the `Setup.exe` application is provided to new users to install the current version of MyApp (see [Installing](4-installing.md) for details).
* **Update Files** - the `RELEASES` file, along with versioned full and delta packages, are used by the update process (see [Updating](5-updating.md) for details).
## Local File Distribution
For simplicity, this Getting Started guide uses a local file system location for updates. The location is defined in the update location provided to the `UpdateManager` (see code in [Integrating: Basic Updating](1-integrating.md)).
This generally is not practical for updates, unless all your users have access to similar network path where the files could be easily placed.
---
| Previous: [2. Packaging](2-packaging.md) | Next: [4. Installing](4-installing.md)|
|:---|:---|
================================================
FILE: docs/getting-started/4-installing.md
================================================
| [docs](..) / [getting-started](.) / 4-installing.md |
|:---|
# Step 4. Installing
The process to install MyApp is as simple as executing the `Setup.exe` application. `Setup.exe` is generated by the `Squirrel --releasify` process and is located in the `Releases` directory.
## Setup.exe
`Setup.exe` is a C++ bootstrapper application used to install MyApp on the user's local system. It includes the latest full version of the MyApp package files embedded in the exe file (see [Install Process](../using/install-process.md) for details).
## Install Process Overview
The `Setup.exe` application does the following (see [Install Process](../using/install-process.md) for details):
* Creates a `%LocalAppData%\MyApp` directory for the MyApp to be installed.
* Extracts and prepares the MyApp files under an `app-1.0.0` directory.
* Launches `app-1.0.0\MyApp.exe` at the end of the setup process.
### Installed File Structure
An installation for MyApp will look like the following after the initial installation.
#### `%LocalAppData%\MyApp` Directory

---
| Previous: [3. Distributing](3-distributing.md) | Next: [5. Updating](5-updating.md)|
|:---|:---|
================================================
FILE: docs/getting-started/5-updating.md
================================================
| [docs](..) / [getting-started](.) / 5-updating.md |
|:---|
# Step 5. Updating
The update process uses the update files generated by the `Squirrel --releasify` process. This includes the `RELEASES` file as well as versioned full and delta packages as required. The location of where to look for the distributed update files is provided to the `UpdateManager` in the MyApp code (see code in [Integrating: Basic Updating](1-integrating.md)).
Updating MyApp to a new version is the culmination of integrating, packaging, and distributing after installing MyApp. The process will cause you to revisit the packaging and distributing steps.
HH
To release a new update, you must first build, pack, and releasify your updated application.
### Building
1. **Update MyApp Version** - update the application version.
**`Properties\AssemblyInfo.cs`**
~~~cs
[assembly: AssemblyVersion("1.0.1")]
[assembly: AssemblyFileVersion("1.0.1")]
~~~
2. **Switch to Release** - switch your build configuration to `Release`.
3. **Build MyApp** - build your application to ensure the latest changes are included in the package we will be creating.
### Packing
Using [NuGet Package Explorer](https://npe.codeplex.com/) complete the following:
1. **Open Previous NuGet Package** - open the previous NuGet package you created for MyApp version 1.0.0.
2. **Update Version** - update the version in the metadata.
4. **Replace Release Files** - replace the changed files under `lib\net45`. You can simply drag and drop any program specific files that have changed (i.e., the `MyApp.exe` file is the only one that has updated in the example).
5. **Save the NuGet Package File as New Version** - use the "Save As..." feature to save the new version of the package `MyApp.1.0.1.nupkg`.
### Releasifying
Use the [Package Manager Console](https://docs.NuGet.org/consume/package-manager-console) to execute `Squirrel.exe --releasify` command using the new `MyApp.1.0.1.nupkg` package.
~~~powershell
PM> Squirrel --releasify MyApp.1.0.1.nupkg
~~~
**Tip:** If you get an error stating that `...'Squirrel' is not recognized...` then you may simply need to restart Visual Studio so the `Package Manager Console` will have loaded all the package tools. This behavior has been seen on the Community Edition of VS 2013 and 2015.
#### Releasify Output
After packaging the new MyApp version 1.0.1, the `Releases` directory has been updated as follows:
* **Updated Setup Application** - the `Setup.exe` application has been updated to include the latest MyApp version 1.0.1 package.
* **Updated Files** - the `RELEASES` file has been appended to include the newly created full and delta packages.
## Distributing the New Release
The `Releases` directory now includes the updated files to distribute to your users.
**`Releases` Directory**

The `RELEASES` file contains SHA1 hash, filename, and file size for each package. This information is utilized by the application update process.
**`RELEASES` File**
~~~
E3F67244E4166A65310C816221A12685C83F8E6F MyApp-1.0.0-full.nupkg 600725
0D777EA94C612E8BF1EA7379164CAEFBA6E24463 MyApp-1.0.1-delta.nupkg 6030
85F4D657F8424DD437D1B33CC4511EA7AD86B1A7 MyApp-1.0.1-full.nupkg 600752
~~~
## Application Updating
In [Step 1. Integrating](1-integrating.md), we configured MyApp to look for and install any updates in the background each time MyApp is executed. In the MyApp example, a path to the `Releases` directory on the file system was specified.
### Updating Process Overview
The following steps are performed by the `UpdateManager` each time MyApp is executed (see [Update Process](../using/update-process.md) for details):
* The `UpdateManager` checks the `RELEASES` file at the distribution location for any updates.
* Any update packages are downloaded and the new MyApp is prepared for execution.
* App shortcuts are updated and old versions of MyApp are cleaned up.
### MyApp Example
The first time I run MyApp after providing the update the application is executed like normal.

In the background, MyApp has obtained and applied the updates in the installation directory.

The next time MyApp is executed, it will be the newly installed version.

---
| Previous: [4. Installing](4-installing.md) | Return: [Table of Contents](../readme.md)|
|:---|:---|
================================================
FILE: docs/goals.md
================================================
| [docs](.) / goals.md |
|:---|
# What Do We Want?
Deployment and Updates for Desktop applications are a real drag. ClickOnce almost works, but has some glaring bugs that don't seem like they'll ever be fixed. So let's own our own future and build a new one.
Windows apps should be as fast and as easy to install and update as apps like Google Chrome. From an app developer's side, it should be really straightforward to create an installer for my app, and publish updates to it, without having to jump through insane hoops
## Configuring
* Integrating the installer for an existing .NET application should be really easy.
* The client API should be able to check for updates and receive a (preferably in HTML) ChangeLog.
* Developer should have control over custom actions and events during installing and updating.
* Uninstall gives a chance for the application to clean up (i.e. I get to run a chunk of code on uninstall)
## Packaging
* Generating an installer given an existing .NET application should be really easy, like it is for ClickOnce.
* Creating an update for my app should be a very simple process that is easily automated.
* Packaging will support delta files to reduce the size of update packages.
## Distributing
* Hosting an update server should be really straightforward, and should be able to be done using simple HTTP (i.e. I should be able to host my installer and update feed via S3).
* Support for multiple "channels" (a-la Chrome Dev/Beta/Release).
## Installing
* Install is Wizard-Free™ and doesn't look awful (or at least, it should have the *possibility* to not look awful).
* No UAC dialogs, which means....
* ...installs to the local user account (i.e. under `%LocalAppData%`).
* No Reboots. None!
* Can pull down the .NET Framework if need be.
## Updating
* Updates should be able to be applied while the application is running.
* At no time should the user ever be forced to stop what he or she is doing.
* No Reboots. None!
---
| Return: [Table of Contents](readme.md) |
|:---|
================================================
FILE: docs/readme.md
================================================
| [docs](.) / readme.md |
|:---|

# Table of Contents
This document provides a table of contents for all the Squirrel documentation.
## General Documentation
* **[Squirrel Goals](goals.md)** - overview of the goals of the Squirrel.Windows project.
* **[Frequently Asked Questions (FAQ)](faq.md)** - list of frequently asked questions.
* **[Squirrel.Windows License](../COPYING)** - copyright and license for using Squirrel.Windows
## Getting Started Guide
The **[Getting Started Guide](getting-started/0-overview.md)** provides a step-by-step guide for integrating Squirrel into a simple Windows Forms application named MyApp.
1. **[Integrating](getting-started/1-integrating.md)** - integrating Squirrel `UpdateManager` into MyApp.
1. **[Packaging](getting-started/2-packaging.md)** - packaging MyApp files and preparing them for release.
1. **[Distributing](getting-started/3-distributing.md)** - providing install and update files for MyApp.
1. **[Installing](getting-started/4-installing.md)** - process of initial installation of MyApp.
1. **[Updating](getting-started/5-updating.md)** - process of updating an existing install of MyApp.
## Using Squirrel
* **Installing** - documentation related to the initial installation of your application via Setup.exe (and Setup.msi).
* [Install Process](using/install-process.md) - overview of the steps in the install process.
* [Custom Squirrel Events](using/custom-squirrel-events.md) - preforming custom actions for Squirrel events.
* [Custom Squirrel Events (non-c# apps)](using/custom-squirrel-events-non-cs.md) - steps on making a non-c# application Squirrel Aware and handling custom events.
* [Loading GIF](using/loading-gif.md) - specify a "loading" image during initial install of large applications.
* [GitHub](using/github.md) - overview of using GitHub for installing, distributing, and updating.
* [Machine-wide Installs](using/machine-wide-installs.md) - generating an MSI file suitable for installation via Group Policy.
* [Debugging Installs](using/debugging-installs.md) - tips for debugging Squirrel.Windows initial installs.
* **Packaging** - documentation related to packaging app files and preparing them for release.
* [Naming Conventions](using/naming.md) - overview of sources used in naming (e.g., shortcut name).
* [NuGet Package Metadata](using/nuget-package-metadata.md) - overview of the NuGet metadata and its uses by Squirrel.
* [Packaging Tools](using/packaging-tools.md) - tools available to assist in the process of packaging your application (e.g., NuGet, OctoPack, Auto.Squirrel)
* [Squirrel Command Line](using/squirrel-command-line.md) - command line options for `Squirrel --releasify`
* [Delta Packages](using/delta-packages.md) - an overview of how `Squirrel.exe` creates delta packages.
* [Application Signing](using/application-signing.md) - adding code signing to `Setup.exe` and your application.
* **Distributing** - documentation related to distributing the Setup.exe and update package files.
* [Microsoft IIS](using/microsoft-iis.md) - overview of using Microsoft IIS for distributing your application.
* [Amazon S3](using/amazon-s3.md) - overview of using Amazon S3 for distributing your application.
* [GitHub](using/github.md) - overview of using GitHub for installing, distributing, and updating.
* **Updating** - documentation related to updating an existing install via the `UpdateManager`.
* [Update Process](using/update-process.md) - overview of the steps in the update process.
* [Update Manager](using/update-manager.md) - reference guide for the `UpdateManager`.
* [GitHub](using/github.md) - overview of using GitHub for installing, distributing, and updating.
* [Debugging Updates](using/debugging-updates.md) - tips for debugging Squirrel.Windows updates.
* [Staged Rollouts](using/staged-rollouts.md) - how to use staged rollouts to ramp up install distribution over time
## Contributing
Why not give back and help make Squirrel even better by contributing to the project.
* [Contributing](contributing/contributing.md) - overview of ways you can become more involved with Squirrel.Windows.
* [Building Squirrel](contributing/building-squirrel.md) - steps to build squirrel for the impatient.
* [VS Solution Overview](contributing/vs-solution-overview.md) - overview of the various projects in the Squirrel.Windows Visual Studio solution.
* [Branching Strategy](contributing/branching-strategy.md) - overview of the different branches used in squirrel development.
================================================
FILE: docs/using/amazon-s3.md
================================================
| [docs](..) / [using](.) / amazon-s3.md
|:---|
# Amazon S3
Amazon S3 can be used as an easy mechanism to host your releases
## Amazon S3 Setup
The following steps setup an S3 account and prepares MyApp for distribution.
1. **Register for Amazon AWS** - if you haven't already, register for an Amazon AWS account and go to the AWS Console.
2. **Create Bucket** - create a new bucket to hold your application updates
3. **Update the Package Location** - update the package location on the `UpdateManager` in MyApp to use the S3 `Link` address for the files minus the actual file name. This is the address for downloading the file and is similar to the following address:
`https://s3-us-west-2.amazonaws.com/myapp.bucket`
4. **Build, Pack, Releasify** - perform the necessary steps to build, package, and releasify MyApp for distribution.
3. **Upload Files** - upload the files from the Squirrel `Releases` directory into the S3 bucket.
4. **Make Public** - make the files public by selecting the files and performing the "Make Public" action.
## Amazon S3 Updates
After you have setup your S3 account, the following steps will distribute a new package for release.
4. **Build, Pack, Releasify** - perform the necessary steps to build, package, and releasify MyApp for distribution.
3. **Upload Files** - upload the new files from the Squirrel `Releases` directory. Make sure to include the new `Setup.exe` and `RELEASES` file along with any full and delta files for the new version.
4. **Make Public** - make the new files public by selecting the files and performing the "Make Public" action.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/application-signing.md
================================================
| [docs](..) / [using](.) / application-signing.md
|:---|
# Application Signing
Signing your installer with a valid code signing certificate is one of the most important things that you need to do for production apps. Both IE SmartScreen as well as virus scanning software will give a significant amount of "points" to apps that are signed correctly, preventing your users from getting scary dialogs.
Acquire a code-signing certificate - it's recommended to get a Windows Error Reporting-compatible certificate, see this [MSDN article](https://msdn.microsoft.com/library/windows/hardware/hh801887.aspx) for more information, then pass the -n parameter, which are the parameters you would pass to `signtool.exe sign` to sign the app.
Squirrel makes signing easy, as it signs all of your application's executables *as well* as the final generated Setup.exe.
An example invocation including both of these features would be something like:
~~~powershell
PM> Squirrel --releasify MyApp.1.0.0.nupkg -n "/a /f CodeCert.pfx /p MySecretCertPassword /fd sha256 /tr http://timestamp.digicert.com /td sha256"
~~~
If you are using the [Visual Studio Build Packaging](visual-studio-packaging.md) process be careful how you escape your quotation marks in the `XML` of your `.csproj` file for the -n, --signWithParams argument. The wrapping quotation marks must be defined in `XML` safe ampersand escape strings or `"`. Within this command you will likely need quotation marks around your certificate password. Since this is already within a quoted string you will need to double quote the password: `/p ""PASSWORD""`.
~~~xml
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="myAssemblyInfo" />
</GetAssemblyIdentity>
<Exec Command="nuget pack MyApp.nuspec -Version %(myAssemblyInfo.Version) -Properties Configuration=Release -OutputDirectory $(OutDir) -BasePath $(OutDir)" />
<!-- Notice the use of " rather than " after the \n flag. For the password to contain spaces we need to double-" the string. -->
<Exec Command="squirrel --releasify $(OutDir)MyApp.$([System.Version]::Parse(%(myAssemblyInfo.Version)).ToString(3)).nupkg -n "/a /f .\CertificateInProjectFolder.pfx /p ""CERTIFICATE PASSWORD"" /fd sha256 /tr http://timestamp.digicert.com /td sha256"" />
</Target>
~~~
## See Also
* [Squirrel Command Line](squirrel-command-line.md) - command line options for `Squirrel --releasify`
* [Visual Studio Build Packaging](visual-studio-packaging.md) - integrating Squirrel packaging into your build process
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/custom-squirrel-events-non-cs.md
================================================
| [docs](..) / [using](.) / custom-squirrel-events-non-cs.md
|:---|
# Custom Squirrel Events (Non-C# Apps)
Squirrel events allow you to handle custom events around the installation and updating process.
### Making Your App Squirrel Aware
Add an entry to the *English* Version Block info called "SquirrelAwareVersion" with a value of "1". Typically this is done via the "App.rc" resource file. Here's a typical entry:
```
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "Installer for Squirrel-based applications"
VALUE "FileVersion", "0.5.0.0"
VALUE "InternalName", "Setup.exe"
VALUE "LegalCopyright", "Copyright (C) 2014"
VALUE "OriginalFilename", "Setup.exe"
VALUE "ProductName", "Squirrel-based application"
VALUE "ProductVersion", "0.5.0.0"
VALUE "SquirrelAwareVersion", "1"
END
END
```
### Application Startup Commands
This means that this EXE will be executed by the installer in a number of different scenarios, with special flags - you should handle them correctly:
* `--squirrel-install x.y.z.m` - called when your app is installed. Exit as soon as you're finished setting up the app
* `--squirrel-firstrun` - called after everything is set up. You should treat this like a normal app run (maybe show the "Welcome" screen)
* `--squirrel-updated x.y.z.m` - called when your app is updated to the given version. Exit as soon as you're finished.
* `--squirrel-obsolete x.y.z.m` - called when your out-of-date app is no longer the newest version. Exit as soon as you're finished.
* `--squirrel-uninstall x.y.z.m` - called when your app is uninstalled. Exit as soon as you're finished.
## See Also
* [Custom Squirrel Events for c# Apps](custom-squirrel-events.md) - steps on making a c# application Squirrel Aware and handling custom events.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/custom-squirrel-events.md
================================================
| [docs](..) / [using](.) / custom-squirrel-events.md
|:---|
# Custom Squirrel Events
## Handling Squirrel Events
Squirrel events allow you to handle custom events around the installation and updating process, which is important because Squirrel doesn't do much of anything at installation time automatically. However, since the code is executing inside your application, it's way easier to do stuff than other systems where you're writing custom "installer DLLs".
### Overriding Default Behaviors
When none of the apps in your package are "Squirrel-Aware", Squirrel does some things on your behalf to make your life easier, the primary one being that every EXE in your app package automatically gets a shortcut on both the Desktop and the Start Menu. Once you enable Squirrel events *for even a single EXE file*, you must do this yourself.
### Making Your App Squirrel Aware
In your app's `AssemblyInfo.cs`, add the following line:
```
[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
```
### Using the `SquirrelAwareApp` Helper
If you are writing a C# app, it is **highly encouraged** to use the `SquirrelAwareApp` helper class to implement this. Here's an implementation that is similar to the default (i.e. non-squirrel-aware) behavior:
```cs
static bool ShowTheWelcomeWizard;
...
static int Main(string[] args)
{
// NB: Note here that HandleEvents is being called as early in startup
// as possible in the app. This is very important! Do _not_ call this
// method as part of your app's "check for updates" code.
using (var mgr = new UpdateManager(updateUrl))
{
// Note, in most of these scenarios, the app exits after this method
// completes!
SquirrelAwareApp.HandleEvents(
onInitialInstall: v => mgr.CreateShortcutForThisExe(),
onAppUpdate: v => mgr.CreateShortcutForThisExe(),
onAppUninstall: v => mgr.RemoveShortcutForThisExe(),
onFirstRun: () => ShowTheWelcomeWizard = true);
}
}
```
## App Setup Helper Methods
These methods help you to set up your application in Squirrel events - if you're not using custom Squirrel events, you probably don't need to call these methods.
* `[Create/Remove]ShortcutsForExecutable` - creates and removes shortcuts on the desktop or in the Start Menu.
* `[Create/Remove]UninstallerRegistryEntry` - creates and removes the uninstaller entry. Normally called by `Update.exe`.
## See Also
* [Custom Squirrel Events for non-c# Apps](custom-squirrel-events-non-cs.md) - steps on making a non-c# application Squirrel Aware and handling custom events.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/debugging-installs.md
================================================
| [docs](..) / [using](.) / debugging-installs.md
|:---|
# Debugging Installs
The following tips will help you to debug the installation of an Squirrel app.
## Simulating an Install and First Run
If the install of your application doesn't seem to be working, you can explore the behavior by executing the install steps from the command line:
~~~ps
C:\user\AppData\Local\MyApp> Update.exe --squirrel-install 1.0.0
C:\user\AppData\Local\MyApp> Update.exe --squirrel-firstrun
~~~
The first cmd should create some shortcuts then immediately exit, then the 2nd one should start your app ([source](https://github.com/Squirrel/Squirrel.Windows/issues/525))
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/debugging-updates.md
================================================
| [docs](..) / [using](.) / debugging-updates.md
|:---|
# Debugging Updates
The following tips will help you to debug the update process in your application.
## Update.exe not found?
Executing MyApp from Visual Studio will execute the update process and you will get the following exception from the `UpdateManager`:
~~~
Update.exe not found, not a Squirrel-installed app?
~~~
The `UpdateManager` is expecting to find the `Update.exe` application installed one directory up from the EXE (e.g., the `\bin` directory for default Visual Studio projects).
To resolve this, you can simply place a file named `Update.exe` or you can copy the `Squirrel.exe` from the `MyApp\packages\squirrel.windows.1.2.2.tools` directory and rename it Update.exe (this is the actual Update.exe packaged inside `Setup.exe`).
Executing MyApp from Visual Studio will now cause it to complete the update process and your `\bin` directory will resemble the `%LocalAppData\MyApp%` install directory:

**Tip:** If you want to ensure that the Update.exe is always available in your output directory, you can add the Update.exe file to the Visual Studio project and set its Properties > Copy To Output Directory to 'Copy if newer'.
## Catching Update Exceptions
You can catch thrown exceptions and log the results.
~~~cs
using (var mgr = new UpdateManager("C:\\Projects\\MyApp\\Releases"))
{
await mgr.UpdateApp();
}
~~~
Alternatively, set up Splat Logging, see [here](https://github.com/Squirrel/Squirrel.Windows.Next/blob/6d7ae23602a3d9a7636265403d42c1090260e6dc/src/Update/Program.cs#L53) for an example.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/delta-packages.md
================================================
| [docs](..) / [using](.) / delta-packages.md
|:---|
# Delta Packages
Now, once we've got a full package, we need to generate a Delta package. To do this, we'll replace all the DLL/EXEs in the NuGet packages with bsdiff files. [bspatch/bsdiff](http://code.logos.com/blog/2010/12/binary_patching_with_bsdiff.html) is a mostly efficient algorithm for calculating diffs between binary files (especially Native binaries, but it works well for .NET ones too), and a way to apply them.
So, this is pretty easy:
1. Extract the previous NuGet package
1. Extract the current NuGet package
1. Replace every EXE/DLL with the bsdiff. So, `lib\net40\MyCoolApp.exe` becomes `lib\net40\MyCoolApp.exe.diff`. Create a file that contains a SHA1 of the expected resulting file and its filesize called `lib\net40\MyCoolApp.exe.shasum`
1. New DLLs in current get put in verbatim
1. Zip it back up
The .shasum file has the same format as the Releases file described in the "'Latest' Pointer" section, except that it will only have one entry.
So now we've got all of the *metadata* of the original package, just none of its *contents*. To get the final package, we do the following:
1. Take the previous version, expand it out
1. Take the delta version, do the same
1. For each DLL in the previous package, we bspatch it, then check the shasum file to ensure we created the correct resulting file
1. If we find a DLL in the new package, just copy it over
1. If we can't find a bspatch for a file, nuke it (it doesn't exist in the new rev)
1. Zip it back up
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/github.md
================================================
| [docs](..) / [using](.) / github.md
|:---|
# Using GitHub
GitHub release assets can be used to distribute the necessary Squirrel files for the Squirrel install and update process. It still requires you to upload all the release files as assets for each release, but provides you a means of hosting your update files via your GitHub repository.
**Important:** GitHub since February 22, 2018 [only support TLS 1.2 connections](https://githubengineering.com/crypto-removal-notice/). The host application is therefore required to use .NET framework 4.6.1, otherwise TLS 1.1 is the default protocol and check for update won't work.
## Installing from GitHub
GitHub allows you to provide a [static link](https://help.github.com/articles/linking-to-releases/) to a repositories latest release page. You can direct your users to download the `Setup.exe` from the list of assets you uploaded for the release.
~~~
https://github.com/myuser/MyApp/releases/latest
~~~
**Tip:** This link simply redirects to the repositories latest release page, and cannot be used to download an asset directly (i.e., you can't simply make a static link to ".../releases/latest/Setup.exe"). However, you can use the [GitHub API with ajax](http://stackoverflow.com/a/26454035) to provide a direct link on your website and avoid the user having to select the correct file or navigate to the GitHub website.
## Distributing from GitHub
The following steps are required to distribute your RELEASES and update NuGet packages with GitHub:
1. **Commit Latest Code** - In order for GitHub to mark a new release as the `Latest`, you have at least one additional commit since the last release tag was added (i.e., releases tags must not share the same commit).
1. **Create a New Release** - [Create a new GitHub release](https://help.github.com/articles/creating-releases/) in your MyApp repository matching your current release version (e.g., 1.0.0).
2. **Upload Release Files** - upload all of the files from `Releases` as assets of the GitHub release (e.g., RELEASES, MyApp.1.0.0-full.nupkg, MyApp.1.0.1-delta.nupkg, MyApp.1.0.1-full.nupkg).
3. **Set Pre-release (optional)** - if desired, set the release as a pre-release.
4. **Publish the Release** - click the "Publish Release" to make the release available to the general public and your users.
**Important:** You must upload all packages as assets you wish to be available for update (i.e., the GitHubUpdateManager doesn't look back to previous GitHub releases for previous version packages). If you only include the latest packages, Squirrel will be forced to download the latest full package for each update.
## Updating with GitHub
The Updating process requires you to build, package, releasify, and distribute the update files.
**Important:** You must ensure there is at least one additional commit since the last version release before adding a new release. GitHub will not update the latest release if the new release tag is tied to the same last commit as a previous release tag.
### GitHub Update Manager
To use GitHub release assets as your distribution mechanism you need to replace `UpdateManager` with `GitHubUpdateManager` when integrating Squirrel in your app:
**`Program.cs`**
~~~cs
using Squirrel;
using System.Threading.Tasks;
~~~
**`static async Task Main()`**
~~~cs
using (var mgr = UpdateManager.GitHubUpdateManager("https://github.com/myuser/myapp"))
{
await mgr.Result.UpdateApp();
}
~~~
**Important:** Make sure your url doesn't end in a forward slash ("/"). Adding the trailing forward slash will cause it to fail with a 404 error ([see #641](https://github.com/Squirrel/Squirrel.Windows/issues/641#issuecomment-201478324)).
**Tip:** You can also specify that the update manager should use `prerelease` for updating (see method signature for details).
**Source:** See [Issue #442](https://github.com/Squirrel/Squirrel.Windows/issues/442) for more information.
### How it Works
The GitHub API is used by the `GitHubUpdateManager` to obtain the correct release and asset files for downloading. The following actions are performed:
1. Extracts the username and repository from the url (e.g., "myuser" and "myapp").
2. Uses the GitHub API to get the latest release information. For example, the following url obtains a json list of all release information for the Squirrel.Windows repository: [https://api.github.com/repos/Squirrel/Squirrel.Windows/releases](https://api.github.com/repos/Squirrel/Squirrel.Windows/releases)
3. Obtains the correct download path from the `html_url` attribute of the latest release (or pre-release if specified) to be used as the path for downloading assets.
4. Follows the normal Squirrel update process by looking for a `RELEASES` file and downloading the necessary delta or full application packages.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/install-process.md
================================================
| [docs](..) / [using](.) / install-process.md
|:---|
# Install Process
This section goes into detail about the install process.
## Setup.exe
`Setup.exe` is a C++ bootstrapper application used to install your app on the user's local system. It is generated as part of the `Squirrel --releasify` process.
The `Setup.exe` file includes the `Update.exe` application and the latest version of the MyApp package to be installed. A single executable file can be provided due to the `WriteZipToSetup.exe` tool injecting the appropriate files into the exe.
In addition, the `Setup.exe` will also ensure that .NET 4.5 is installed on the user's computer.
## Install Location
The `Setup.exe`, and later the `UpdateManager` in MyApp must have the ability to write files to and execute files from the application install location. To ensure permission for all types of users, the user's application data directory is selected as the install location (i.e., `%LocalAppData%\MyApp`).
The installation root really only needs to consist of two types of folders:
* **Packages** - folder used to download and assemble the update package files.
* **App Folders** - the "installed" application files for a given version of MyApp.
```
\%LocalAppData%\MyApp
\packages
MyApp-1.0.0.nupkg
MyApp-1.0.1-delta.nupkg
MyApp-1.0.1.nupkg
\app-1.0.0
MyApp.exe
\app-1.0.1
MyApp.exe
```
The packages directory is effectively immutable, it simply consists of the packages we've downloaded. Using the user's local application data directory means that we the needed write-access to the install directory on a per-user basis.
**Tip:** See [Machine-wide Installs](machine-wide-installs.md) for more information on ensuring your application pushed to all users in an enterprise environment.
## Install Process Overview
The `Setup.exe` application preforms the following:
1. **Ensures .NET Framework Installed** - determines if .NET Framework is available, and if not relaunches itself with `/installfx45` to download and launch the .NET Framework installer.
1. **Create `%LocalAppData%\MyApp` Directory** - creates a directory for the MyApp to be installed.
2. **Extracts `Update.exe`** - extracts the `Update.exe` application to the application directory (`%LocalAppData%\MyApp`).
3. **Extracts `MyApp.1.0.0-full.nupkg`** - extracts the MyApp full application package to the `%LocalAppData%\MyApp\packages\temp` directory.
4. **Executes `Update.exe` to Finish Install** - executes the `Update.exe` application with the `/install` switch to finish the application installation and then launch the application.
1. **Copy MyApp to `app-1.0.0` Directory** - copy the full version of MyApp files to a application sub-directory (e.g., `MyApp\app-1.0.0`).
2. **Launch MyApp** - at the end of the setup process, the Updater launches the newly installed version of MyApp.
6. **MyApp Creates Shortcuts** - the first execution of the application will cause shortcuts to be created on the desktop and Windows start menu for MyApp.
## Desktop & Windows Start Shortcuts
By default, application shortcuts are created on the desktop and the Windows Start menu that point to the `Update.exe` application with additional arguments pointing to the correct application to execute.
**`MyApp.lnk` (Application Shortcut)**
* **Target:** `C:\Users\kbailey\AppData\Local\MyApp\Update.exe --processStart MyApp.exe`
* **Start in:** `C:\Users\kbailey\AppData\Local\MyApp\app-1.0.0`
## See Also
* [Loading GIF](loading-gif.md) - specify a "loading" image during initial install of large applications.
* [Machine-wide Installs](machine-wide-installs.md) - generating an MSI file suitable for installation via Group Policy.
* [NuGet Package Metadata](nuget-package-metadata.md) - overview of the NuGet metadata and its uses by Squirrel.
* [Naming Conventions](naming.md) - A more complete view of how Squirrel names everything.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/loading-gif.md
================================================
| [docs](..) / [using](.) / loading-gif.md
|:---|
# Loading GIF
Squirrel installers don't have any UI - the goal of a Squirrel installer is to install so blindingly fast that double-clicking on Setup.exe *feels* like double-clicking on an app shortcut. Make your installer **fast**.
However, for large applications, this isn't possible. For these apps, Squirrel will optionally display a graphic as a "splash screen" while installation is processing, but only if installation takes more than a pre-set amount of time. This will be centered, backed by a transparent window, and can optionally be an animated GIF. Specify this via the `-g` parameter.
~~~powershell
PM> Squirrel --releasify MyApp.1.0.0.nupkg -g .\loading.gif
~~~
## See Also
* [Squirrel Command Line](squirrel-command-line.md) - command line options for `Squirrel --releasify`
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/machine-wide-installs.md
================================================
| [docs](..) / [using](.) / machine-wide-installs.md
|:---|
# Machine-wide Installs
Squirrel's Releasify command generates an MSI file suitable for installation via Group Policy. This MSI isn't a general-purpose installer, this means that once you run the MSI, users from now on will get the app installed, on next Login.
So, most normal users should continue to run the Setup.exe's generated by Releasify, but if you want to have an IT Admin Friendly version, you can hand off the MSI
## Common pitfalls
### Missing data in `.nuspec`
Most users of Squirrel won't have to do anything new to enable this behavior, though certain NuGet package IDs / names might cause problems with MSI.
**Source:** See [issue #466](https://github.com/Squirrel/Squirrel.Windows/issues/466) for more details.
### Nothing happens on login
In cases where the end user has previously installed your application, the installer that runs on login will not re-install your application on every login. This can easily be the case if you as a developer is testing out both the EXE and the MSI.
Squirrel leaves behind an almost-empty `%LocalAppData%\MyApp` folder after an uninstall. Deleting this folder (the entire folder, not just the contents) will allow the installer that runs on login to install successfully.
**Source:**: See [issue #555](https://github.com/Squirrel/Squirrel.Windows/issues/555#issuecomment-253265130) for details.
## Disabling MSI Generation
Generating MSIs can be disabled via the --no-msi flag as shown below:
~~~powershell
PM> Squirrel --releasify MyApp.1.0.0.nupkg --no-msi
~~~
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/microsoft-iis.md
================================================
| [docs](..) / [using](.) / microsoft-iis.md
|:---|
# Microsoft IIS
If you use Microsoft IIS to distribute the necessary Squirrel files, you must provide a custom `Web.config` file as described below.
## Hosting on IIS
All versions of IIS (including Microsoft Azure PaaS) deny serving files when
the extension MIME type is unknown. If you are hosting your updates in this
manner then you will need to add a `Web.config` to your downloads repository as
follows:
**`~/downloads/Web.config` File**
~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".nupkg" mimeType="application/zip" />
<mimeMap fileExtension="." mimeType="text/plain" />
</staticContent>
</system.webServer>
</configuration>
~~~
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/naming.md
================================================
| [docs](..) / [using](.) / naming.md
|:---|
# Naming Conventions
In addition to the [NuGet Package Metadata](nuget-package-metadata.md), there are other places that squirrel pulls naming information from. Here is the logic:
## Shortcut name
The shortcut name is selected from the first non-null item below:
1. `[assembly: AssemblyProduct("MyApp")` (from `AssemblyInfo.cs`)
2. Squirrel NuGet Package Metadata `title` property.
3. `[assembly: AssemblyDescription("MyApp")` (from `AssemblyInfo.cs`)
4. Filename of the Exe (e.g., MyApp)
## Local Install location
The local install location is determined by the `id` in the NuGet package metadata.
* `%LocalAppData%\<NuGet Package ID>`
**Warning:** Using \[dots\] (i.e., "."'s) in your package id will cause issues ([see issue #523](https://github.com/Squirrel/Squirrel.Windows/issues/523)).
## Program and Features Entry
The entry in the Windows Uninstall is determined as follows:
* Squirrel NuGet Package Metadata `title` property
## Releases Folder
The `Squirrel --releasify` command will create update packages based on the following:
* `<NuGet Package ID>-<NuGet Package Version>-delta.nupkg`
* `<NuGet Package ID>-<NuGet Package Version>-full.nupkg`

## See Also
* [NuGet Package Metadata](nuget-package-metadata.md) - naming from the NuGet Package Metadata perspective.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/nuget-package-metadata.md
================================================
| [docs](..) / [using](.) / nuget-package-metadata.md
|:---|
# NuGet Package Metadata
Squirrel uses information from your app's EXE as well as the NuGet package Metadata for the setup and uninstall UI.
* **Id** - name of the application (**warning:** you must **[avoid using spaces and dots](https://github.com/Squirrel/Squirrel.Windows/issues/523)** in the Id).
* Name of the release packages (e.g., **MyApp**-1.0.0-full.nupkg).
* Local installation directory (e.g., `%LocalAppData%\MyApp`).
* **Title** - used for the name of the application in the Windows Application Uninstaller.
* **Version** - version specified in `Properties\Assembly.cs`.
* Name of the release package (e.g., MyApp-**1.0.0**-full.nupkg).
* Version number in the Windows Uninstaller (see screenshot below).
* **Icon Url** - url to an icon to be used for the application. Used for the shortcuts and Windows Uninstaller icons. This must be an icon file (*.ICO) to work correctly. Note that the icon is fetched at installation time rather than
packaging (source: [issue #745](https://github.com/Squirrel/Squirrel.Windows/issues/745))
* **Language** Changes the codepage in to support non english characters. Defaults to 1252 if not present.

## See Also
* [Naming Conventions](naming.md) - overview of sources used naming (including those outside of the NuGet Package Metadata).
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/octopack.md
================================================
| [docs](..) / [using](.) / octopack.md
|:---|
# Using OctoPack
In order to automatically construct your nuget packages you can use [OctoPack](https://github.com/OctopusDeploy/OctoPack). Octopack allows you to specify a .nuspec file which will be used to specify how your .nupkg should be created.
Follow the core instructions for creating your .nuspec file on the [OctoPack](https://github.com/OctopusDeploy/OctoPack) page.
You'll then need to add a files specification to match Squirrel's expected .nupkg structure:
~~~
<files>
<file src="bin\Release\*.*" target="lib\net45\" exclude="bin\release\*.pdb;bin\release\*.nupkg;bin\release\*.vshost.*"/>
</files>
~~~
If you're building using Visual Studio, you will also need to edit your .csproj file to include a property group.
~~~
<PropertyGroup>
<RunOctoPack>true</RunOctoPack>
</PropertyGroup>
~~~
If you're using a build server, see OctoPack's guides on how to trigger it to be run.
---
| Return: [Packaging Tools](packaging-tools.md) |
|----|
================================================
FILE: docs/using/packaging-tools.md
================================================
| [docs](..) / [using](.) / packaging-tools.md
|:---|
# Packaging Tools
The following tools can simplify and/or automate the packaging process.
* [NuGet Docs](http://docs.nuget.org/) - documentation for NuGet packaging manager.
* [NuGet Package Explorer](https://npe.codeplex.com/) - GUI tool for building NuGet packages.
* [Visual Studio Build Packaging](visual-studio-packaging.md) - integrating NuGet packaging into your visual studio build process.
* [OctoPack](octopack.md) - steps to use OctoPack to build the source NuGet package to provide to `squirrel --releasify`.
* [Auto.Squirrel Package Manager](https://github.com/tenacious/Auto.Squirrel) - tool to fully automatize the application deploy, from build to upload the updated files.
* [Paket](http://fsprojects.github.io/Paket/template-files.html) - dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource.
* [TeamCity](teamcity.md) - tips on using the TeamCity build server to package your app.
## See Also
* [Step 2. Packaging](../getting-started/2-packaging.md) - step from getting started guide on using NuGet Package Explorer.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/squirrel-command-line.md
================================================
| [docs](..) / [using](.) / squirrel-command-line.md
|:---|
# Squirrel Command Line
Here is a simplified help output specifically around creating releases:
```
Usage: Squirrel.exe command [OPTS]
Creates Squirrel packages
Commands
--releasify=VALUE Update or generate a releases directory with a
given NuGet package
Options:
-h, -?, --help Display Help and exit
-r, --releaseDir=VALUE Path to a release directory to use with Releasify
-p, --packagesDir=VALUE Path to the NuGet Packages directory for C# apps
--bootstrapperExe=VALUE
Path to the Setup.exe to use as a template
-g, --loadingGif=VALUE Path to an animated GIF to be displayed during
installation
-n, --signWithParams=VALUE Sign the installer via SignTool.exe with the
parameters given
--setupIcon=VALUE Path to an ICO file that will be used for the
Setup executable's icon
-b --baseUrl=VALUE Provides a base URL to prefix the RELEASES file
packages with
--no-msi Don't generate an MSI package
--msi-win64 Mark the MSI as 64-bit, which is useful in
Enterprise deployment scenarios
--no-delta Don't generate delta packages to save time
--framework-version=VALUE
Set the required .NET framework version, e.g. net461
```
## See Also
* [Loading GIF](loading-gif.md) - specify a "loading" image during initial install of large applications.
* [Application Signing](application-signing.md) - adding code signing to `Setup.exe` and your application.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/staged-rollouts.md
================================================
| [docs](..) / [using](.) / staged-rollouts.md
|:---|
# Staged Rollouts
Staged rollouts allow you to distribute the latest version of your app to a subset of users that you can increase over time, similar to rollouts on platforms like Google Play. This feature requires Squirrel.Windows 1.4.0 or above.
### How to use
Staged rollouts are controlled by manually editing your `RELEASES` file. Here's an example:
~~~
e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725
~~~
Now let's ship a new version to 10% of our userbase.
```
e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725
0d777ea94c612e8bf1ea7379164caefba6e24463 myapp-1.0.1-delta.nupkg 6030# 10%
85f4d657f8424dd437d1b33cc4511ea7ad86b1a7 myapp-1.0.1-full.nupkg 600752# 10%
```
Note that the syntax is `# nn%` - due to a bug in earlier versions of Squirrel.Windows, for now, you *must* put the `#` immediately following the file size, no spaces. Once all of your users have Squirrel 1.4.0 or higher, you can add a space after the `#` (similar to a comment).
Assuming that this rollout is going well, at some point you can upload a new version of the `RELEASES` file:
```
e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725
0d777ea94c612e8bf1ea7379164caefba6e24463 myapp-1.0.1-delta.nupkg 6030# 50%
85f4d657f8424dd437d1b33cc4511ea7ad86b1a7 myapp-1.0.1-full.nupkg 600752# 50%
```
When you're confident that this release has gone successfully, you can remove the comment so that 100% of users get the file:
```
e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725
0d777ea94c612e8bf1ea7379164caefba6e24463 myapp-1.0.1-delta.nupkg 6030
85f4d657f8424dd437d1b33cc4511ea7ad86b1a7 myapp-1.0.1-full.nupkg 600752
```
### Handling failed rollouts
If you want to pull a staged release because it hasn't gone well, you should hand-edit the RELEASES file to completely remove the bad version:
~~~
e3f67244e4166a65310c816221a12685c83f8e6f myapp-1.0.0-full.nupkg 600725
~~~
Once you do this, you **must** increment the version number higher than your broken release (in this example, we would need to release MyApp 1.0.2). Because some of your users will be on the broken 1.0.1, releasing a _new_ 1.0.1 would result in them staying on a broken version.
================================================
FILE: docs/using/teamcity.md
================================================
| [docs](..) / [using](.) / teamcity.md
|:---|
# Team City Packaging
## Adding the Packaging Step
When TeamCity pulls down your code, the squirrel.exe will sit under packages if it was added to your solution using NuGet.
1. Add a NuGet Pack process which will create the .nupkg based on a .nuspec file to ensure the package is correct.
2. Create a command line build process and add the following:
~~~
%system.teamcity.build.workingDir%\packages\squirrel.windows.1.4.0\tools\squirrel --releasify [BUILD_SERVER_NUPKG_PATH]\%system.build.number%.nupkg -r [OUTPUT_PATH]
~~~
**Note:** Paths may vary depending on your structure so make sure to update the path information above correctly.
This will cause the appropriate files to be created just as if you had run it from the Package Manager Console.
**Source:** [Issue #737](https://github.com/Squirrel/Squirrel.Windows/issues/737)
## See Also
* [Packaging Tools](packaging-tools.md) - list of packaging tools to simplify and/or automate the packaging process.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/update-manager.md
================================================
| [docs](..) / [using](.) / update-manager.md
|:---|
# Update Manager Reference
## Basic Updating
The "Easy Mode" method that does everything all in one go.
* `UpdateApp` - downloads and updates the app to the latest version.
## Advanced Updating
The following methods are provided to allow you to have more control of the update process (i.e., to interact with app updates and apply them if desired).
* `CheckForUpdate` - checks on the server if there are updates available. Returns an `UpdateInfo` object that contains information about any pending updates.
* `DownloadReleases` - downloads release files (the `nupkg` file deltas) from the server to the local machine
* `ApplyReleases` - installs the downloaded packages, and returns the new `app-[version]` directory path.
### UpdateInfo
The `UpdateInfo` class contains information about available and installed releases.
~~~cs
public class UpdateInfo
{
public ReleaseEntry CurrentlyInstalledVersion;
public ReleaseEntry FutureReleaseEntry;
public List<ReleaseEntry> ReleasesToApply;
}
~~~
### ReleaseEntry
The `ReleaseEntry` class contains the specifics of each release.
~~~cs
public interface ReleaseEntry
{
public string SHA1;
public string Filename;
public long Filesize;
public bool IsDelta;
}
~~~
## See Also
* [Update Process](update-process.md) - overview of the steps in the update process.
* [GitHub Update Manager](github.md) - process of using `GitHubUpdateManager`.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/update-process.md
================================================
| [docs](..) / [using](.) / update-process.md
|:---|
# Update Process
The following steps are performed by the `UpdateManager` each time your app is executed:
1. **Check for Updates** - the `RELEASES` file at the distribution location is downloaded and compared to local `RELEASES` file to check for any updates.
2. **Download & Verify Update Packages** - if there is a new release, the `UpdateManager` determines whether to download the deltas or the latest full package (by calculating which one requires less total downloading) to update to the current version. The packages are compared against their SHA1 in the `RELEASES` file for verification.
3. **Build Full Package from Deltas** - if delta packages were downloaded, a new full package is created from the previous full package and the downloaded delta file.
3. **Install New Version** - the current version of MyApp is extracted from the full package and placed in a new `%LocalAppData%\MyApp` install directory based on the version number (e.g., `app-1.0.1`).
4. **Update Shortcuts** - desktop and Windows Start Menu shortcuts are updated to point to the new MyApp version (via the `--processStart` command line parameter passed to `Update.exe`).
5. **Previous Version Clean-up** - on the next startup of MyApp, all but current and immediately previous version of your app are deleted as part of clean up (e.g., after updating to app-1.0.5, app-1.0.4 will remain, but app-1.0.3 and before will be deleted - see [issue #589](https://github.com/Squirrel/Squirrel.Windows/issues/589)).
## Rollback
Currently, there is no built-in support for rolling back to a previous version.
## See Also
* [Update Manager](update-manager.md) - reference guide for the `UpdateManager`.
* [Debugging Updates](debugging-updates.md) - tips on debugging your Squirrel application.
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: docs/using/visual-studio-packaging.md
================================================
| [docs](..) / [using](.) / visual-studio-packaging.md
|:---|
# Visual Studio Build Packaging
Squirrel packaging can be easily integrated directly into your build process using only NuGet and Squirrel.
## Define Build Target
The first step is to define a build target in your `.csproj` file.
```xml
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="myAssemblyInfo"/>
</GetAssemblyIdentity>
<Exec Command="nuget pack MyApp.nuspec -Version %(myAssemblyInfo.Version) -Properties Configuration=Release -OutputDirectory $(OutDir) -BasePath $(OutDir)" />
<Exec Command="squirrel --releasify $(OutDir)MyApp.$([System.Version]::Parse(%(myAssemblyInfo.Version)).ToString(3)).nupkg" />
</Target>
```
This will generate a NuGet package from .nuspec file setting version from AssemblyInfo.cs and place it in OutDir (by default bin\Release). Then it will generate release files from it.
## Example .nuspec file for MyApp
Here is an example `MyApp.nuspec` file for the above build target example.
```xml
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MyApp</id>
<!-- version will be replaced by MSBuild -->
<version>0.0.0.0</version>
<title>title</title>
<authors>authors</authors>
<description>description</description>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<copyright>Copyright 2016</copyright>
<dependencies />
</metadata>
<files>
<file src="*.*" target="lib\net45\" exclude="*.pdb;*.nupkg;*.vshost.*"/>
</files>
</package>
```
## Additional Notes
Please be aware of the following when using this solution:
* Solution needs to have nuget.exe available which can be accomplished by installing `NuGet.CommandLine` package in your solution.
```pm
PM> Install-Package NuGet.CommandLine
```
* It suffers from a bug when sometimes NuGet packages are not loaded properly and throws nuget/squirrel is not recogized (9009) errors.
**Tip:** In this case you may simply need to restart Visual Studio so the Package Manager Console will have loaded all the package tools
* If you get the following error you may need add the full path to squirrel.exe in the build target `Exec Command` call. `'squirrel' is not recognized as an internal or external command`
**Source:** [Issue #630](https://github.com/Squirrel/Squirrel.Windows/issues/630)
---
| Return: [Packaging Tools](packaging-tools.md) |
|----|
================================================
FILE: docs/using/x-doc-template.md
================================================
| [docs](..) / [using](.) / filename.md
|:---|
# Title
text
## Sub-title
text
~~~cs
code
~~~
**Tip:** text
## See Also
* [seealso]() - text
---
| Return: [Table of Contents](../readme.md) |
|----|
================================================
FILE: src/Directory.Build.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<EnableSourceLink Condition=" '$(NCrunch)' == '1' ">false</EnableSourceLink>
<ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
<BaseOutputPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\))</BaseOutputPath>
<BaseIntermediateOutputPath>$(BaseOutputPath)obj\$(Configuration)\$(ProjectName)\</BaseIntermediateOutputPath>
<OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
<Company>GitHub</Company>
<Copyright>Copyright © GitHub 2013-2015</Copyright>
<PackageLicenseExpression>MS-RL</PackageLicenseExpression>
<Product>Squirrel</Product>
</PropertyGroup>
<ItemGroup Condition=" '$(MSBuildProjectExtension)'=='.csproj' ">
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta2-18618-05" PrivateAssets="All" />
<PackageReference Include="Nerdbank.GitVersioning" Version="3.4.240" PrivateAssets="All" />
</ItemGroup>
<PropertyGroup Condition=" '$(MSBuildProjectExtension)'=='.vcxproj' ">
<Platform Condition=" '$(Platform)' == '' OR '$(Platform)' == 'AnyCPU' ">Win32</Platform>
<IntDir>$(BaseIntermediateOutputPath)$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(OutputPath)$(Platform)\</OutDir>
</PropertyGroup>
</Project>
================================================
FILE: src/Setup/FxHelper.cpp
================================================
#include "stdafx.h"
#include "FxHelper.h"
#include "resource.h"
// http://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx#net_b
static const wchar_t* ndpPath = L"SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full";
static const int fx45ReleaseVersion = 378389;
static const int fx451ReleaseVersion = 378675; //Minimum version for .NET 4.5.1
static const int fx452ReleaseVersion = 379893;
static const int fx46ReleaseVersion = 393295; //Windows 10 version, other systems are higher
static const int fx461ReleaseVersion = 394254; // Minimum version for .NET 4.6.1
static const int fx462ReleaseVersion = 394802; // Minimum version for .NET 4.6.2
static const int fx47ReleaseVersion = 460798; // Minimum version for .NET 4.7
static const int fx471ReleaseVersion = 461308; // Minimum version for .NET 4.7.1
static const int fx472ReleaseVersion = 461808; // Minimum version for .NET 4.7.2
static const int fx48ReleaseVersion = 528040; // Minimum version for .NET 4.8
// According to https://msdn.microsoft.com/en-us/library/8z6watww%28v=vs.110%29.aspx,
// to install .NET 4.5 we must be Vista SP2+, Windows 7 SP1+, or later.
// However Anas thinks this is just for customer support, anything >= Vista will generally work.
bool CFxHelper::CanInstallDotNet4_5()
{
return IsWindowsVistaOrGreater();
}
NetVersion CFxHelper::GetRequiredDotNetVersion()
{
wchar_t* versionFlag = (wchar_t*)LoadResource(NULL, FindResource(NULL, (LPCWSTR)IDR_FX_VERSION_FLAG, L"FLAGS"));
CString resourceFlag(versionFlag);
if (resourceFlag.Compare(L"net451") == 0) return NetVersion::net451;
if (resourceFlag.Compare(L"net452") == 0) return NetVersion::net452;
if (resourceFlag.Compare(L"net46") == 0) return NetVersion::net46;
if (resourceFlag.Compare(L"net461") == 0) return NetVersion::net461;
if (resourceFlag.Compare(L"net462") == 0) return NetVersion::net462;
if (resourceFlag.Compare(L"net47") == 0) return NetVersion::net47;
if (resourceFlag.Compare(L"net471") == 0) return NetVersion::net471;
if (resourceFlag.Compare(L"net472") == 0) return NetVersion::net472;
if (resourceFlag.Compare(L"net48") == 0) return NetVersion::net48;
//Default to standard net45
return NetVersion::net45;
}
bool CFxHelper::IsDotNetInstalled(NetVersion required)
{
ATL::CRegKey key;
if (key.Open(HKEY_LOCAL_MACHINE, ndpPath, KEY_READ) != ERROR_SUCCESS) {
return false;
}
DWORD dwReleaseInfo = 0;
if (key.QueryDWORDValue(L"Release", dwReleaseInfo) != ERROR_SUCCESS ||
dwReleaseInfo < GetDotNetVersionReleaseNumber(required)) {
return false;
}
return true;
}
UINT CFxHelper::GetDotNetVersionReleaseNumber(NetVersion version)
{
switch (version) {
case NetVersion::net451:
return fx451ReleaseVersion;
case NetVersion::net452:
return fx452ReleaseVersion;
case NetVersion::net46:
return fx46ReleaseVersion;
case NetVersion::net461:
return fx461ReleaseVersion;
case NetVersion::net462:
return fx462ReleaseVersion;
case NetVersion::net47:
return fx47ReleaseVersion;
case NetVersion::net471:
return fx471ReleaseVersion;
case NetVersion::net472:
return fx472ReleaseVersion;
case NetVersion::net48:
return fx48ReleaseVersion;
case NetVersion::net45:
default:
return fx45ReleaseVersion;
}
}
class ATL_NO_VTABLE CDownloadProgressCallback :
public CComObjectRoot,
public IBindStatusCallback
{
public:
CDownloadProgressCallback()
{
}
DECLARE_NOT_AGGREGATABLE(CDownloadProgressCallback)
BEGIN_COM_MAP(CDownloadProgressCallback)
COM_INTERFACE_ENTRY(IBindStatusCallback)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct() { return S_OK; }
void FinalRelease()
{
}
void SetProgressDialog(IProgressDialog* pd)
{
m_spProgressDialog = pd;
}
STDMETHOD(OnProgress)(ULONG ulProgress, ULONG ulProgressMax, ULONG /*ulStatusCode*/, LPCWSTR /*szStatusText*/)
{
if (m_spProgressDialog != nullptr) {
if (m_spProgressDialog->HasUserCancelled()) {
return E_ABORT;
}
m_spProgressDialog->SetProgress(ulProgress, ulProgressMax);
}
return S_OK;
}
STDMETHOD(OnStartBinding)(DWORD /*dwReserved*/, IBinding *pBinding) { return E_NOTIMPL; }
STDMETHOD(GetPriority)(LONG *pnPriority) { return E_NOTIMPL; }
STDMETHOD(OnLowResource)(DWORD /*reserved*/) { return E_NOTIMPL; }
STDMETHOD(OnStopBinding)(HRESULT /*hresult*/, LPCWSTR /*szError*/) { return E_NOTIMPL; }
STDMETHOD(GetBindInfo)(DWORD *pgrfBINDF, BINDINFO *pbindInfo) { return E_NOTIMPL; }
STDMETHOD(OnDataAvailable)(DWORD grfBSCF, DWORD dwSize, FORMATETC * /*pformatetc*/, STGMEDIUM *pstgmed) { return E_NOTIMPL; }
STDMETHOD(OnObjectAvailable)(REFIID /*riid*/, IUnknown * /*punk*/) { return E_NOTIMPL; }
private:
CComPtr<IProgressDialog> m_spProgressDialog;
};
HRESULT CFxHelper::InstallDotNetFramework(NetVersion version, bool isQuiet)
{
if (!isQuiet) {
CTaskDialog dlg;
TASKDIALOG_BUTTON buttons[] = {
{ 1, L"Install", },
{ 2, L"Cancel", },
};
dlg.SetButtons(buttons, 2);
dlg.SetMainInstructionText(GetInstallerMainInstructionForVersion(version));
dlg.SetContentText(GetInstallerContentForVersion(version));
dlg.SetMainIcon(TD_INFORMATION_ICON);
dlg.SetExpandedInformationText(GetInstallerExpandedInfoForVersion(version));
int nButton;
if (FAILED(dlg.DoModal(::GetActiveWindow(), &nButton)) || nButton != 1) {
return S_FALSE;
}
}
HRESULT hr = E_FAIL;
WCHAR szFinalTempFileName[_MAX_PATH] = L"";
CComPtr<IBindStatusCallback> bscb;
CComPtr<IProgressDialog> pd;
SHELLEXECUTEINFO execInfo = { sizeof(execInfo), };
CString url;
url.LoadString(GetInstallerUrlForVersion(version));
WCHAR szTempPath[_MAX_PATH];
DWORD dwTempPathResult = GetTempPath(_MAX_PATH, szTempPath);
if (dwTempPathResult == 0) {
hr = AtlHresultFromLastError();
goto out;
} else if (dwTempPathResult > _MAX_PATH) {
hr = DISP_E_BUFFERTOOSMALL;
goto out;
}
WCHAR szTempFileName[_MAX_PATH];
if (!GetTempFileName(szTempPath, L"NDP", 0, szTempFileName)) {
hr = AtlHresultFromLastError();
goto out;
}
szTempFileName[_countof(szTempFileName) - 1] = L'\0';
if (wcscpy_s(szFinalTempFileName, _countof(szFinalTempFileName), szTempFileName) != 0) {
hr = E_FAIL;
goto out;
}
WCHAR* pLastDot = wcsrchr(szFinalTempFileName, L'.');
if (pLastDot == nullptr) {
if (wcscat_s(szFinalTempFileName, _countof(szFinalTempFileName), L".exe") != 0) {
hr = E_FAIL;
goto out;
}
} else {
if (wcscpy_s(pLastDot, _countof(szFinalTempFileName) - (pLastDot - szFinalTempFileName), L".exe") != 0) {
hr = E_FAIL;
goto out;
}
}
if (!MoveFile(szTempFileName, szFinalTempFileName)) {
hr = AtlHresultFromLastError();
goto out;
}
if (!isQuiet) {
pd.CoCreateInstance(CLSID_ProgressDialog);
if (pd != nullptr) {
pd->SetTitle(L"Downloading");
pd->SetLine(1, L"Downloading the .NET Framework installer", FALSE, nullptr);
pd->StartProgressDialog(nullptr, nullptr, 0, nullptr);
CComObject<CDownloadProgressCallback>* bscbObj = nullptr;
if (SUCCEEDED(CComObject<CDownloadProgressCallback>::CreateInstance(&bscbObj))) {
bscbObj->SetProgressDialog(pd);
bscb = bscbObj;
}
}
}
hr = URLDownloadToFile(nullptr, url, szFinalTempFileName, 0, bscb);
if (pd != nullptr) {
pd->StopProgressDialog();
}
if (hr != S_OK) {
goto out;
}
execInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
execInfo.lpVerb = L"open";
execInfo.lpFile = szFinalTempFileName;
if (isQuiet) {
execInfo.lpParameters = L"/q /norestart";
}
else {
execInfo.lpParameters = L"/passive /norestart /showrmui";
}
execInfo.nShow = SW_SHOW;
if (!ShellExecuteEx(&execInfo)) {
hr = AtlHresultFromLastError();
goto out;
}
WaitForSingleObject(execInfo.hProcess, INFINITE);
DWORD exitCode;
if (!GetExitCodeProcess(execInfo.hProcess, &exitCode)) {
hr = AtlHresultFromLastError();
goto out;
}
if (exitCode == 1641 || exitCode == 3010) {
// The framework installer wants a reboot before we can continue
// See https://msdn.microsoft.com/en-us/library/ee942965%28v=vs.110%29.aspx
hr = HandleRebootRequirement(isQuiet);
// Exit as a failure, so that setup doesn't carry on now
}
else {
hr = exitCode != 0 ? E_FAIL : S_OK;
}
out:
if (execInfo.hProcess != NULL && execInfo.hProcess != INVALID_HANDLE_VALUE) {
CloseHandle(execInfo.hProcess);
}
if (*szFinalTempFileName != L'\0') {
DeleteFile(szFinalTempFileName);
}
return hr;
}
UINT CFxHelper::GetInstallerMainInstructionForVersion(NetVersion version)
{
if (version >= NetVersion::net48) {
return IDS_FXINSTRUCTION48;
}
if (version >= NetVersion::net47) {
return IDS_FXINSTRUCTION47;
}
if (version >= NetVersion::net46) {
return IDS_FXINSTRUCTION46;
}
return IDS_FXINSTRUCTION;
}
UINT CFxHelper::GetInstallerContentForVersion(NetVersion version)
{
if (version >= NetVersion::net48) {
return IDS_FXCONTENT48;
}
if (version >= NetVersion::net47) {
return IDS_FXCONTENT47;
}
if (version >= NetVersion::net46) {
return IDS_FXCONTENT46;
}
return IDS_FXCONTENT;
}
UINT CFxHelper::GetInstallerExpandedInfoForVersion(NetVersion version)
{
if (version >= NetVersion::net48) {
return IDS_FXEXPANDEDINFO48;
}
if (version >= NetVersion::net47) {
return IDS_FXEXPANDEDINFO47;
}
if (version >= NetVersion::net46) {
return IDS_FXEXPANDEDINFO46;
}
return IDS_FXEXPANDEDINFO;
}
UINT CFxHelper::GetInstallerUrlForVersion(NetVersion version)
{
if (version >= NetVersion::net48) {
return IDS_FXDOWNLOADURL48;
}
if (version >= NetVersion::net47) {
return IDS_FXDOWNLOADURL47;
}
if (version >= NetVersion::net46) {
return IDS_FXDOWNLOADURL46;
}
return IDS_FXDOWNLOADURL;
}
// Deal with the aftermath of the framework installer telling us that we need to reboot
HRESULT CFxHelper::HandleRebootRequirement(bool isQuiet)
{
if (isQuiet) {
// Don't silently reboot - just error-out
fprintf_s(stderr, "A reboot is required following .NET installation - reboot then run installer again.\n");
return E_FAIL;
}
CTaskDialog dlg;
TASKDIALOG_BUTTON buttons[] = {
{ 1, L"Restart Now", },
{ 2, L"Cancel", },
};
dlg.SetButtons(buttons, 2);
dlg.SetMainInstructionText(L"Restart System");
dlg.SetContentText(L"To finish installing the .NET Framework, the system now needs to restart. The installation will finish after you restart and log-in again.");
dlg.SetMainIcon(TD_INFORMATION_ICON);
dlg.SetExpandedInformationText(L"If you click 'Cancel', you'll need to re-run this setup program yourself, after restarting your system.");
int nButton;
if (FAILED(dlg.DoModal(::GetActiveWindow(), &nButton)) || nButton != 1) {
return S_FALSE;
}
// We need to set up a runonce entry to restart this installer once the reboot has happened
if (!WriteRunOnceEntry()) {
return E_FAIL;
}
// And now, reboot
if (!RebootSystem()) {
return E_FAIL;
}
// About to reboot, but just in case...
return S_FALSE;
}
//
// Write a runonce entry to the registry to tell it to continue with
// setup after a reboot
//
bool CFxHelper::WriteRunOnceEntry()
{
ATL::CRegKey key;
if (key.Open(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", KEY_WRITE) != ERROR_SUCCESS) {
return false;
}
TCHAR exePath[MAX_PATH];
GetModuleFileName(NULL, exePath, MAX_PATH);
if (key.SetStringValue(L"SquirrelInstall", exePath) != ERROR_SUCCESS) {
return false;
}
return true;
}
bool CFxHelper::RebootSystem()
{
// First we need to enable the SE_SHUTDOWN_NAME privilege
LUID luid;
if (!LookupPrivilegeValue(L"", SE_SHUTDOWN_NAME, &luid)) {
return false;
}
HANDLE hToken = NULL;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) {
return false;
}
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, 0)) {
CloseHandle(hToken);
return false;
}
// Now we have that privilege, we can ask Windows to restart
return ExitWindowsEx(EWX_REBOOT, 0) != 0;
}
================================================
FILE: src/Setup/FxHelper.h
================================================
#pragma once
enum class NetVersion {net45=0, net451=1, net452=2, net46=3, net461=4, net462=5, net47=6, net471=7, net472=8, net48=9};
class CFxHelper
{
public:
static NetVersion GetRequiredDotNetVersion();
static bool CanInstallDotNet4_5();
static bool IsDotNetInstalled(NetVersion requiredVersion);
static HRESULT InstallDotNetFramework(NetVersion version, bool isQuiet);
private:
static HRESULT HandleRebootRequirement(bool isQuiet);
static bool WriteRunOnceEntry();
static bool RebootSystem();
static UINT GetDotNetVersionReleaseNumber(NetVersion version);
static UINT GetInstallerUrlForVersion(NetVersion version);
static UINT GetInstallerMainInstructionForVersion(NetVersion version);
static UINT GetInstallerContentForVersion(NetVersion version);
static UINT GetInstallerExpandedInfoForVersion(NetVersion version);
};
================================================
FILE: src/Setup/MachineInstaller.cpp
================================================
#include "stdafx.h"
#include "unzip.h"
#include "MachineInstaller.h"
#include "resource.h"
#include <sddl.h>
bool directoryExists(wchar_t* path) {
DWORD dwResult = GetFileAttributes(path);
if (dwResult != INVALID_FILE_ATTRIBUTES) {
return true;
}
// NB: The directory could exist but we can't access it, let's check
DWORD dwLastError = GetLastError();
if (dwLastError == ERROR_FILE_NOT_FOUND) return false;
if (dwLastError == ERROR_PATH_NOT_FOUND) return false;
return true;
}
bool MachineInstaller::ShouldSilentInstall()
{
// Figure out the package name from our own EXE name
// The name consist of [$pkgName]DeploymentTool.exe
wchar_t ourFile[MAX_PATH];
HMODULE hMod = GetModuleHandle(NULL);
GetModuleFileName(hMod, ourFile, _countof(ourFile));
CString fullPath = CString(ourFile);
CString pkgName = CString(ourFile + fullPath.ReverseFind(L'\\'));
pkgName.Replace(L"DeploymentTool.exe", L"");
wchar_t installFolder[MAX_PATH];
// NB: Users often get into the sitch where they install the MSI, then try to
// install the standalone package on top of that. In previous versions we tried
// to detect if the app was properly installed, but now we're taking the much
// more conservative approach, that if the package dir exists in any way, we're
// bailing out
// C:\Users\Username\AppData\Local\$pkgName
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, installFolder);
wcscat(installFolder, L"\\");
wcscat(installFolder, pkgName);
if (directoryExists(installFolder)) {
return false;
}
// C:\ProgramData\$pkgName\$username
wchar_t username[512];
DWORD unamesize = _countof(username);
SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, installFolder);
GetUserName(username, &unamesize);
wcscat(installFolder, L"\\");
wcscat(installFolder, pkgName);
wcscat(installFolder, L"\\");
wcscat(installFolder, username);
if (directoryExists(installFolder)) {
return false;
}
// None of these exist, we should install
return true;
}
================================================
FILE: src/Setup/MachineInstaller.h
================================================
#pragma once
class MachineInstaller
{
public:
static bool ShouldSilentInstall();
};
================================================
FILE: src/Setup/Setup.h
================================================
#pragma once
#include "resource.h"
================================================
FILE: src/Setup/Setup.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{C1D40624-A484-438A-B846-052F321C89D1}</ProjectGuid>
<ConfigurationType>Application</ConfigurationType>
<Keyword>Win32Proj</Keyword>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<RootNamespace>Setup</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(ProjectDir)/wtl90</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(ProjectDir)/wtl90</IncludePath>
</PropertyGroup>
<!-- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CIBuild|Win32'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>C:\WinDDK\7600.16385.1\inc\atl71;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(ProjectDir)/wtl90</IncludePath>
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>
<IntDir>$(ProjectDir)obj\$(Configuration)\</IntDir>
<LibraryPath>C:\WinDDK\7600.16385.1\lib\ATL\i386;$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86)</LibraryPath>
</PropertyGroup> -->
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>urlmon.lib</AdditionalDependencies>
<DelayLoadDLLs>comctl32.dll;shell32.dll;shlwapi.dll;urlmon.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<AdditionalManifestFiles>compat.manifest</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MinSpace</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BrowseInformation>true</BrowseInformation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<AdditionalDependencies>urlmon.lib</AdditionalDependencies>
<DelayLoadDLLs>comctl32.dll;shell32.dll;shlwapi.dll;urlmon.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<AdditionalManifestFiles>compat.manifest</AdditionalManifestFiles>
</Manifest>
<Bscmake>
<PreserveSbr>true</PreserveSbr>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="FxHelper.h" />
<ClInclude Include="MachineInstaller.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="Setup.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
<ClInclude Include="unzip.h" />
<ClInclude Include="UpdateRunner.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="FxHelper.cpp" />
<ClCompile Include="MachineInstaller.cpp" />
<ClCompile Include="unzip.cpp" />
<ClCompile Include="UpdateRunner.cpp" />
<ClCompile Include="winmain.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Setup.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="Setup.ico" />
<Image Include="small.ico" />
</ItemGroup>
<ItemGroup>
<None Include="flags1.bin" />
<None Include="update.zip" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: src/Setup/Setup.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="targetver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Setup.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="FxHelper.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="unzip.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="UpdateRunner.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MachineInstaller.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="winmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="FxHelper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="unzip.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="UpdateRunner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="MachineInstaller.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Setup.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Image Include="small.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="Setup.ico">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<None Include="update.zip">
<Filter>Resource Files</Filter>
</None>
<None Include="flags1.bin">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
</Project>
================================================
FILE: src/Setup/UpdateRunner.cpp
================================================
#include "stdafx.h"
#include "unzip.h"
#include "Resource.h"
#include "UpdateRunner.h"
#include <vector>
void CUpdateRunner::DisplayErrorMessage(CString& errorMessage, wchar_t* logFile)
{
CTaskDialog dlg;
TASKDIALOG_BUTTON buttons[] = {
{ 1, L"Open Setup Log", },
{ 2, L"Close", },
};
// TODO: Something about contacting support?
if (logFile == NULL) {
dlg.SetButtons(&buttons[1], 1, 1);
} else {
dlg.SetButtons(buttons, 2, 1);
}
dlg.SetMainInstructionText(L"Installation has failed");
dlg.SetContentText(errorMessage);
dlg.SetMainIcon(TD_ERROR_ICON);
int nButton;
if (FAILED(dlg.DoModal(::GetActiveWindow(), &nButton))) {
return;
}
if (nButton == 1 && logFile != NULL) {
ShellExecute(NULL, NULL, logFile, NULL, NULL, SW_SHOW);
}
}
HRESULT CUpdateRunner::AreWeInWine()
{
// NB: Behaving differently in Wine is *usually* discouraged
// https://wiki.winehq.org/Developer_FAQ#How_can_I_detect_Wine.3F
HMODULE hntdll = GetModuleHandle(L"ntdll.dll");
if (!hntdll) {
// NB: This can never fail but we'll be pedantic
return E_FAIL;
}
return GetProcAddress(hntdll, "wine_get_version") != NULL ? S_OK : S_FALSE;
}
HRESULT CUpdateRunner::AreWeUACElevated()
{
HANDLE hProcess = GetCurrentProcess();
HANDLE hToken = 0;
HRESULT hr;
if (!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)) {
hr = HRESULT_FROM_WIN32(GetLastError());
goto out;
}
TOKEN_ELEVATION_TYPE elevType;
DWORD dontcare;
if (!GetTokenInformation(hToken, TokenElevationType, &elevType, sizeof(TOKEN_ELEVATION_TYPE), &dontcare)) {
hr = HRESULT_FROM_WIN32(GetLastError());
goto out;
}
hr = (elevType == TokenElevationTypeFull ? S_OK : S_FALSE);
out:
if (hToken) {
CloseHandle(hToken);
}
return hr;
}
HRESULT FindDesktopFolderView(REFIID riid, void **ppv)
{
HRESULT hr;
CComPtr<IShellWindows> spShellWindows;
spShellWindows.CoCreateInstance(CLSID_ShellWindows);
CComVariant vtLoc(CSIDL_DESKTOP);
CComVariant vtEmpty;
long lhwnd;
CComPtr<IDispatch> spdisp;
hr = spShellWindows->FindWindowSW(
&vtLoc, &vtEmpty,
SWC_DESKTOP, &lhwnd, SWFO_NEEDDISPATCH, &spdisp);
if (FAILED(hr)) return hr;
CComPtr<IShellBrowser> spBrowser;
hr = CComQIPtr<IServiceProvider>(spdisp)->QueryService(SID_STopLevelBrowser, IID_PPV_ARGS(&spBrowser));
if (FAILED(hr)) return hr;
CComPtr<IShellView> spView;
hr = spBrowser->QueryActiveShellView(&spView);
if (FAILED(hr)) return hr;
hr = spView->QueryInterface(riid, ppv);
if (FAILED(hr)) return hr;
return S_OK;
}
HRESULT GetDesktopAutomationObject(REFIID riid, void **ppv)
{
HRESULT hr;
CComPtr<IShellView> spsv;
hr = FindDesktopFolderView(IID_PPV_ARGS(&spsv));
if (FAILED(hr)) return hr;
CComPtr<IDispatch> spdispView;
hr = spsv->GetItemObject(SVGIO_BACKGROUND, IID_PPV_ARGS(&spdispView));
if (FAILED(hr)) return hr;
return spdispView->QueryInterface(riid, ppv);
}
HRESULT CUpdateRunner::ShellExecuteFromExplorer(LPWSTR pszFile, LPWSTR pszParameters)
{
HRESULT hr;
CComPtr<IShellFolderViewDual> spFolderView;
hr = GetDesktopAutomationObject(IID_PPV_ARGS(&spFolderView));
if (FAILED(hr)) return hr;
CComPtr<IDispatch> spdispShell;
hr = spFolderView->get_Application(&spdispShell);
if (FAILED(hr)) return hr;
return CComQIPtr<IShellDispatch2>(spdispShell)->ShellExecute(
CComBSTR(pszFile),
CComVariant(pszParameters ? pszParameters : L""),
CComVariant(L""),
CComVariant(L""),
CComVariant(SW_SHOWDEFAULT));
}
bool CUpdateRunner::DirectoryExists(wchar_t* szPath)
{
DWORD dwAttrib = GetFileAttributes(szPath);
return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
bool CUpdateRunner::DirectoryIsWritable(wchar_t * szPath)
{
wchar_t szTempFileName[MAX_PATH];
UINT uRetVal = GetTempFileNameW(szPath, L"Squirrel", 0, szTempFileName);
if (uRetVal == 0) {
return false;
}
DeleteFile(szTempFileName);
return true;
}
int CUpdateRunner::ExtractUpdaterAndRun(wchar_t* lpCommandLine, bool useFallbackDir)
{
PROCESS_INFORMATION pi = { 0 };
STARTUPINFO si = { 0 };
CResource zipResource;
wchar_t targetDir[MAX_PATH] = { 0 };
wchar_t logFile[MAX_PATH];
std::vector<CString> to_delete;
wchar_t* envSquirrelTemp = _wgetenv(L"SQUIRREL_TEMP");
if (envSquirrelTemp &&
DirectoryExists(envSquirrelTemp) &&
DirectoryIsWritable(envSquirrelTemp) &&
!PathIsUNCW(envSquirrelTemp)) {
_swprintf_c(targetDir, _countof(targetDir), L"%s", envSquirrelTemp);
goto gotADir;
}
if (!useFallbackDir) {
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, targetDir);
goto gotADir;
}
wchar_t username[512];
wchar_t appDataDir[MAX_PATH];
ULONG unameSize = _countof(username);
SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, appDataDir);
GetUserName(username, &unameSize);
_swprintf_c(targetDir, _countof(targetDir), L"%s\\%s", appDataDir, username);
if (!CreateDirectory(targetDir, NULL) && GetLastError() != ERROR_ALREADY_EXISTS) {
wchar_t err[4096];
_swprintf_c(err, _countof(err), L"Unable to write to %s - IT policies may be restricting access to this folder", targetDir);
DisplayErrorMessage(CString(err), NULL);
return -1;
}
gotADir:
wcscat_s(targetDir, _countof(targetDir), L"\\SquirrelTemp");
if (!CreateDirectory(targetDir, NULL) && GetLastError() != ERROR_ALREADY_EXISTS) {
wchar_t err[4096];
_swprintf_c(err, _countof(err), L"Unable to write to %s - IT policies may be restricting access to this folder", targetDir);
if (useFallbackDir) {
DisplayErrorMessage(CString(err), NULL);
}
goto failedExtract;
}
swprintf_s(logFile, L"%s\\SquirrelSetup.log", targetDir);
if (!zipResource.Load(L"DATA", IDR_UPDATE_ZIP)) {
goto failedExtract;
}
DWORD dwSize = zipResource.GetSize();
if (dwSize < 0x100) {
goto failedExtract;
}
BYTE* pData = (BYTE*)zipResource.Lock();
HZIP zipFile = OpenZip(pData, dwSize, NULL);
SetUnzipBaseDir(zipFile, targetDir);
// NB: This library is kind of a disaster
ZRESULT zr;
int index = 0;
do {
ZIPENTRY zentry;
wchar_t targetFile[MAX_PATH];
zr = GetZipItem(zipFile, index, &zentry);
if (zr != ZR_OK && zr != ZR_MORE) {
break;
}
// NB: UnzipItem won't overwrite data, we need to do it ourselves
swprintf_s(targetFile, L"%s\\%s", targetDir, zentry.name);
DeleteFile(targetFile);
if (UnzipItem(zipFile, index, zentry.name) != ZR_OK) break;
to_delete.push_back(CString(targetFile));
index++;
} while (zr == ZR_MORE || zr == ZR_OK);
CloseZip(zipFile);
zipResource.Release();
// nfi if the zip extract actually worked, check for Update.exe
wchar_t updateExePath[MAX_PATH];
swprintf_s(updateExePath, L"%s\\%s", targetDir, L"Update.exe");
if (GetFileAttributes(updateExePath) == INVALID_FILE_ATTRIBUTES) {
goto failedExtract;
}
// Run Update.exe
si.cb = sizeof(STARTUPINFO);
si.wShowWindow = SW_SHOW;
si.dwFlags = STARTF_USESHOWWINDOW;
if (!lpCommandLine || wcsnlen_s(lpCommandLine, MAX_PATH) < 1) {
lpCommandLine = L"";
}
wchar_t cmd[MAX_PATH];
swprintf_s(cmd, L"\"%s\" --install . %s", updateExePath, lpCommandLine);
if (!CreateProcess(NULL, cmd, NULL, NULL, false, 0, NULL, targetDir, &si, &pi)) {
goto failedExtract;
}
WaitForSingleObject(pi.hProcess, INFINITE);
DWORD dwExitCode;
if (!GetExitCodeProcess(pi.hProcess, &dwExitCode)) {
dwExitCode = (DWORD)-1;
}
if (dwExitCode != 0) {
DisplayErrorMessage(CString(
L"There was an error while installing the application. "
L"Check the setup log for more information and contact the author."), logFile);
}
for (unsigned int i = 0; i < to_delete.size(); i++) {
DeleteFile(to_delete[i]);
}
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return (int) dwExitCode;
failedExtract:
if (!useFallbackDir) {
// Take another pass at it, using C:\ProgramData instead
return ExtractUpdaterAndRun(lpCommandLine, true);
}
DisplayErrorMessage(CString(L"Failed to extract installer"), NULL);
return (int) dwExitCode;
}
================================================
FILE: src/Setup/UpdateRunner.h
================================================
#pragma once
class CUpdateRunner
{
public:
static void DisplayErrorMessage(CString& errorMessage, wchar_t* logFile);
static HRESULT AreWeInWine();
static HRESULT AreWeUACElevated();
static HRESULT ShellExecuteFromExplorer(LPWSTR pszFile, LPWSTR pszParameters);
static bool DirectoryExists(wchar_t* szPath);
static bool DirectoryIsWritable(wchar_t* szPath);
static int ExtractUpdaterAndRun(wchar_t* lpCommandLine, bool useFallbackDir);
};
================================================
FILE: src/Setup/compat.manifest
================================================
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
</application>
</compatibility>
</assembly>
================================================
FILE: src/Setup/stdafx.cpp
================================================
// stdafx.cpp : source file that includes just the standard includes
// Setup.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
================================================
FILE: src/Setup/stdafx.h
================================================
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#define SECURITY_WIN32
// Windows Header Files:
#include <windows.h>
#include <shellapi.h>
#include <shlobj.h>
#include <urlmon.h>
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <atlbase.h>
#include <atlapp.h>
#include <atlmisc.h>
#include <atldlgs.h>
#include <atlwin.h>
#include <windows.h>
#include <security.h>
#include <shlobj.h>
#include <exdisp.h>
#include <shlwapi.h>
#if defined _M_IX86
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
================================================
FILE: src/Setup/targetver.h
================================================
#pragma once
// Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
#include <WinSDKVer.h>
#define _WIN32_WINNT 0x0600
#include <SDKDDKVer.h>
================================================
FILE: src/Setup/unzip.cpp
================================================
#include "stdafx.h"
#include "unzip.h"
// THIS FILE is almost entirely based upon code by Jean-loup Gailly
// and Mark Adler. It has been modified by Lucian Wischik.
// The modifications were: incorporate the bugfixes of 1.1.4, allow
// unzipping to/from handles/pipes/files/memory, encryption, unicode,
// a windowsish api, and putting everything into a single .cpp file.
// The original code may be found at http://www.gzip.org/zlib/
// The original copyright text follows.
//
//
//
// zlib.h -- interface of the 'zlib' general purpose compression library
// version 1.1.3, July 9th, 1998
//
// Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler
//
// This software is provided 'as-is', without any express or implied
// warranty. In no event will the authors be held liable for any damages
// arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it
// freely, subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not
// claim that you wrote the original software. If you use this software
// in a product, an acknowledgment in the product documentation would be
// appreciated but is not required.
// 2. Altered source versions must be plainly marked as such, and must not be
// misrepresented as being the original software.
// 3. This notice may not be removed or altered from any source distribution.
//
// Jean-loup Gailly Mark Adler
// jloup@gzip.org madler@alumni.caltech.edu
//
//
// The data format used by the zlib library is described by RFCs (Request for
// Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
// (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
//
//
// The 'zlib' compression library provides in-memory compression and
// decompression functions, including integrity checks of the uncompressed
// data. This version of the library supports only one compression method
// (deflation) but other algorithms will be added later and will have the same
// stream interface.
//
// Compression can be done in a single step if the buffers are large
// enough (for example if an input file is mmap'ed), or can be done by
// repeated calls of the compression function. In the latter case, the
// application must provide more input and/or consume the output
// (providing more output space) before each call.
//
// The library also supports reading and writing files in gzip (.gz) format
// with an interface similar to that of stdio.
//
// The library does not install any signal handler. The decoder checks
// the consistency of the compressed data, so the library should never
// crash even in case of corrupted input.
//
// for more info about .ZIP format, see ftp://ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip
// PkWare has also a specification at ftp://ftp.pkware.com/probdesc.zip
#define ZIP_HANDLE 1
#define ZIP_FILENAME 2
#define ZIP_MEMORY 3
#define zmalloc(len) malloc(len)
#define zfree(p) free(p)
/*
void *zmalloc(unsigned int len)
{ char *buf = new char[len+32];
for (int i=0; i<16; i++)
{ buf[i]=i;
buf[len+31-i]=i;
}
*((unsigned int*)buf) = len;
char c[1000]; wsprintf(c,"malloc 0x%lx - %lu",buf+16,len);
OutputDebugString(c);
return buf+16;
}
void zfree(void *buf)
{ char c[1000]; wsprintf(c,"free 0x%lx",buf);
OutputDebugString(c);
char *p = ((char*)buf)-16;
unsigned int len = *((unsigned int*)p);
bool blown=false;
for (int i=0; i<16; i++)
{ char lo = p[i];
char hi = p[len+31-i];
if (hi!=i || (lo!=i && i>4)) blown=true;
}
if (blown)
{ OutputDebugString("BLOWN!!!");
}
delete[] p;
}
*/
typedef struct tm_unz_s
{ unsigned int tm_sec; // seconds after the minute - [0,59]
unsigned int tm_min; // minutes after the hour - [0,59]
unsigned int tm_hour; // hours since midnight - [0,23]
unsigned int tm_mday; // day of the month - [1,31]
unsigned int tm_mon; // months since January - [0,11]
unsigned int tm_year; // years - [1980..2044]
} tm_unz;
// unz_global_info structure contain global data about the ZIPfile
typedef struct unz_global_info_s
{ unsigned long number_entry; // total number of entries in the central dir on this disk
unsigned long size_comment; // size of the global comment of the zipfile
} unz_global_info;
// unz_file_info contain information about a file in the zipfile
typedef struct unz_file_info_s
{ unsigned long version; // version made by 2 bytes
unsigned long version_needed; // version needed to extract 2 bytes
unsigned long flag; // general purpose bit flag 2 bytes
unsigned long compression_method; // compression method 2 bytes
unsigned long dosDate; // last mod file date in Dos fmt 4 bytes
unsigned long crc; // crc-32 4 bytes
unsigned long compressed_size; // compressed size 4 bytes
unsigned long uncompressed_size; // uncompressed size 4 bytes
unsigned long size_filename; // filename length 2 bytes
unsigned long size_file_extra; // extra field length 2 bytes
unsigned long size_file_comment; // file comment length 2 bytes
unsigned long disk_num_start; // disk number start 2 bytes
unsigned long internal_fa; // internal file attributes 2 bytes
unsigned long external_fa; // external file attributes 4 bytes
tm_unz tmu_date;
} unz_file_info;
#define UNZ_OK (0)
#define UNZ_END_OF_LIST_OF_FILE (-100)
#define UNZ_ERRNO (Z_ERRNO)
#define UNZ_EOF (0)
#define UNZ_PARAMERROR (-102)
#define UNZ_BADZIPFILE (-103)
#define UNZ_INTERNALERROR (-104)
#define UNZ_CRCERROR (-105)
#define UNZ_PASSWORD (-106)
#define ZLIB_VERSION "1.1.3"
// Allowed flush values; see deflate() for details
#define Z_NO_FLUSH 0
#define Z_SYNC_FLUSH 2
#define Z_FULL_FLUSH 3
#define Z_FINISH 4
// compression levels
#define Z_NO_COMPRESSION 0
#define Z_BEST_SPEED 1
#define Z_BEST_COMPRESSION 9
#define Z_DEFAULT_COMPRESSION (-1)
// compression strategy; see deflateInit2() for details
#define Z_FILTERED 1
#define Z_HUFFMAN_ONLY 2
#define Z_DEFAULT_STRATEGY 0
// Possible values of the data_type field
#define Z_BINARY 0
#define Z_ASCII 1
#define Z_UNKNOWN 2
// The deflate compression method (the only one supported in this version)
#define Z_DEFLATED 8
// for initializing zalloc, zfree, opaque
#define Z_NULL 0
// case sensitivity when searching for filenames
#define CASE_SENSITIVE 1
#define CASE_INSENSITIVE 2
// Return codes for the compression/decompression functions. Negative
// values are errors, positive values are used for special but normal events.
#define Z_OK 0
#define Z_STREAM_END 1
#define Z_NEED_DICT 2
#define Z_ERRNO (-1)
#define Z_STREAM_ERROR (-2)
#define Z_DATA_ERROR (-3)
#define Z_MEM_ERROR (-4)
#define Z_BUF_ERROR (-5)
#define Z_VERSION_ERROR (-6)
// Basic data types
typedef unsigned char Byte; // 8 bits
typedef unsigned int uInt; // 16 bits or more
typedef unsigned long uLong; // 32 bits or more
typedef void *voidpf;
typedef void *voidp;
typedef long z_off_t;
typedef voidpf (*alloc_func) (voidpf opaque, uInt items, uInt size);
typedef void (*free_func) (voidpf opaque, voidpf address);
struct internal_state;
typedef struct z_stream_s {
Byte *next_in; // next input byte
uInt avail_in; // number of bytes available at next_in
uLong total_in; // total nb of input bytes read so far
Byte *next_out; // next output byte should be put there
uInt avail_out; // remaining free space at next_out
uLong total_out; // total nb of bytes output so far
char *msg; // last error message, NULL if no error
struct internal_state *state; // not visible by applications
alloc_func zalloc; // used to allocate the internal state
free_func zfree; // used to free the internal state
voidpf opaque; // private data object passed to zalloc and zfree
int data_type; // best guess about the data type: ascii or binary
uLong adler; // adler32 value of the uncompressed data
uLong reserved; // reserved for future use
} z_stream;
typedef z_stream *z_streamp;
// The application must update next_in and avail_in when avail_in has
// dropped to zero. It must update next_out and avail_out when avail_out
// has dropped to zero. The application must initialize zalloc, zfree and
// opaque before calling the init function. All other fields are set by the
// compression library and must not be updated by the application.
//
// The opaque value provided by the application will be passed as the first
// parameter for calls of zalloc and zfree. This can be useful for custom
// memory management. The compression library attaches no meaning to the
// opaque value.
//
// zalloc must return Z_NULL if there is not enough memory for the object.
// If zlib is used in a multi-threaded application, zalloc and zfree must be
// thread safe.
//
// The fields total_in and total_out can be used for statistics or
// progress reports. After compression, total_in holds the total size of
// the uncompressed data and may be saved for use in the decompressor
// (particularly if the decompressor wants to decompress everything in
// a single step).
//
// basic functions
const char *zlibVersion ();
// The application can compare zlibVersion and ZLIB_VERSION for consistency.
// If the first character differs, the library code actually used is
// not compatible with the zlib.h header file used by the application.
// This check is automatically made by inflateInit.
int inflate (z_streamp strm, int flush);
//
// inflate decompresses as much data as possible, and stops when the input
// buffer becomes empty or the output buffer becomes full. It may some
// introduce some output latency (reading input without producing any output)
// except when forced to flush.
//
// The detailed semantics are as follows. inflate performs one or both of the
// following actions:
//
// - Decompress more input starting at next_in and update next_in and avail_in
// accordingly. If not all input can be processed (because there is not
// enough room in the output buffer), next_in is updated and processing
// will resume at this point for the next call of inflate().
//
// - Provide more output starting at next_out and update next_out and avail_out
// accordingly. inflate() provides as much output as possible, until there
// is no more input data or no more space in the output buffer (see below
// about the flush parameter).
//
// Before the call of inflate(), the application should ensure that at least
// one of the actions is possible, by providing more input and/or consuming
// more output, and updating the next_* and avail_* values accordingly.
// The application can consume the uncompressed output when it wants, for
// example when the output buffer is full (avail_out == 0), or after each
// call of inflate(). If inflate returns Z_OK and with zero avail_out, it
// must be called again after making room in the output buffer because there
// might be more output pending.
//
// If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much
// output as possible to the output buffer. The flushing behavior of inflate is
// not specified for values of the flush parameter other than Z_SYNC_FLUSH
// and Z_FINISH, but the current implementation actually flushes as much output
// as possible anyway.
//
// inflate() should normally be called until it returns Z_STREAM_END or an
// error. However if all decompression is to be performed in a single step
// (a single call of inflate), the parameter flush should be set to
// Z_FINISH. In this case all pending input is processed and all pending
// output is flushed; avail_out must be large enough to hold all the
// uncompressed data. (The size of the uncompressed data may have been saved
// by the compressor for this purpose.) The next operation on this stream must
// be inflateEnd to deallocate the decompression state. The use of Z_FINISH
// is never required, but can be used to inform inflate that a faster routine
// may be used for the single inflate() call.
//
// If a preset dictionary is needed at this point (see inflateSetDictionary
// below), inflate sets strm-adler to the adler32 checksum of the
// dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise
// it sets strm->adler to the adler32 checksum of all output produced
// so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or
// an error code as described below. At the end of the stream, inflate()
// checks that its computed adler32 checksum is equal to that saved by the
// compressor and returns Z_STREAM_END only if the checksum is correct.
//
// inflate() returns Z_OK if some progress has been made (more input processed
// or more output produced), Z_STREAM_END if the end of the compressed data has
// been reached and all uncompressed output has been produced, Z_NEED_DICT if a
// preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
// corrupted (input stream not conforming to the zlib format or incorrect
// adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent
// (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not
// enough memory, Z_BUF_ERROR if no progress is possible or if there was not
// enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR
// case, the application may then call inflateSync to look for a good
// compression block.
//
int inflateEnd (z_streamp strm);
//
// All dynamically allocated data structures for this stream are freed.
// This function discards any unprocessed input and does not flush any
// pending output.
//
// inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
// was inconsistent. In the error case, msg may be set but then points to a
// static string (which must not be deallocated).
// Advanced functions
// The following functions are needed only in some special applications.
int inflateSetDictionary (z_streamp strm,
const Byte *dictionary,
uInt dictLength);
//
// Initializes the decompression dictionary from the given uncompressed byte
// sequence. This function must be called immediately after a call of inflate
// if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
// can be determined from the Adler32 value returned by this call of
// inflate. The compressor and decompressor must use exactly the same
// dictionary.
//
// inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
// parameter is invalid (such as NULL dictionary) or the stream state is
// inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
// expected one (incorrect Adler32 value). inflateSetDictionary does not
// perform any decompression: this will be done by subsequent calls of
// inflate().
int inflateSync (z_streamp strm);
//
// Skips invalid compressed data until a full flush point can be found, or until all
// available input is skipped. No output is provided.
//
// inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
// if no more input was provided, Z_DATA_ERROR if no flush point has been found,
// or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
// case, the application may save the current current value of total_in which
// indicates where valid compressed data was found. In the error case, the
// application may repeatedly call inflateSync, providing more input each time,
// until success or end of the input data.
int inflateReset (z_streamp strm);
// This function is equivalent to inflateEnd followed by inflateInit,
// but does not free and reallocate all the internal decompression state.
// The stream will keep attributes that may have been set by inflateInit2.
//
// inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
// stream state was inconsistent (such as zalloc or state being NULL).
//
// checksum functions
// These functions are not related to compression but are exported
// anyway because they might be useful in applications using the
// compression library.
uLong adler32 (uLong adler, const Byte *buf, uInt len);
// Update a running Adler-32 checksum with the bytes buf[0..len-1] and
// return the updated checksum. If buf is NULL, this function returns
// the required initial value for the checksum.
// An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
// much faster. Usage example:
//
// uLong adler = adler32(0L, Z_NULL, 0);
//
// while (read_buffer(buffer, length) != EOF) {
// adler = adler32(adler, buffer, length);
// }
// if (adler != original_adler) error();
uLong ucrc32 (uLong crc, const Byte *buf, uInt len);
// Update a running crc with the bytes buf[0..len-1] and return the updated
// crc. If buf is NULL, this function returns the required initial value
// for the crc. Pre- and post-conditioning (one's complement) is performed
// within this function so it shouldn't be done by the application.
// Usage example:
//
// uLong crc = crc32(0L, Z_NULL, 0);
//
// while (read_buffer(buffer, length) != EOF) {
// crc = crc32(crc, buffer, length);
// }
// if (crc != original_crc) error();
const char *zError (int err);
int inflateSyncPoint (z_streamp z);
const uLong *get_crc_table (void);
typedef unsigned char uch;
typedef uch uchf;
typedef unsigned short ush;
typedef ush ushf;
typedef unsigned long ulg;
const char * const z_errmsg[10] = { // indexed by 2-zlib_error
"need dictionary", // Z_NEED_DICT 2
"stream end", // Z_STREAM_END 1
"", // Z_OK 0
"file error", // Z_ERRNO (-1)
"stream error", // Z_STREAM_ERROR (-2)
"data error", // Z_DATA_ERROR (-3)
"insufficient memory", // Z_MEM_ERROR (-4)
"buffer error", // Z_BUF_ERROR (-5)
"incompatible version",// Z_VERSION_ERROR (-6)
""};
#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
#define ERR_RETURN(strm,err) \
return (strm->msg = (char*)ERR_MSG(err), (err))
// To be used only when the state is known to be valid
// common constants
#define STORED_BLOCK 0
#define STATIC_TREES 1
#define DYN_TREES 2
// The three kinds of block type
#define MIN_MATCH 3
#define MAX_MATCH 258
// The minimum and maximum match lengths
#define PRESET_DICT 0x20 // preset dictionary flag in zlib header
// target dependencies
#define OS_CODE 0x0b // Window 95 & Windows NT
// functions
#define zmemzero(dest, len) memset(dest, 0, len)
// Diagnostic functions
#define LuAssert(cond,msg)
#define LuTrace(x)
#define LuTracev(x)
#define LuTracevv(x)
#define LuTracec(c,x)
#define LuTracecv(c,x)
typedef uLong (*check_func) (uLong check, const Byte *buf, uInt len);
voidpf zcalloc (voidpf opaque, unsigned items, unsigned size);
void zcfree (voidpf opaque, voidpf ptr);
#define ZALLOC(strm, items, size) \
(*((strm)->zalloc))((strm)->opaque, (items), (size))
#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
//void ZFREE(z_streamp strm,voidpf addr)
//{ *((strm)->zfree))((strm)->opaque, addr);
//}
#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
// Huffman code lookup table entry--this entry is four bytes for machines
// that have 16-bit pointers (e.g. PC's in the small or medium model).
typedef struct inflate_huft_s inflate_huft;
struct inflate_huft_s {
union {
struct {
Byte Exop; // number of extra bits or operation
Byte Bits; // number of bits in this code or subcode
} what;
uInt pad; // pad structure to a power of 2 (4 bytes for
} word; // 16-bit, 8 bytes for 32-bit int's)
uInt base; // literal, length base, distance base, or table offset
};
// Maximum size of dynamic tree. The maximum found in a long but non-
// exhaustive search was 1004 huft structures (850 for length/literals
// and 154 for distances, the latter actually the result of an
// exhaustive search). The actual maximum is not known, but the
// value below is more than safe.
#define MANY 1440
int inflate_trees_bits (
uInt *, // 19 code lengths
uInt *, // bits tree desired/actual depth
inflate_huft * *, // bits tree result
inflate_huft *, // space for trees
z_streamp); // for messages
int inflate_trees_dynamic (
uInt, // number of literal/length codes
uInt, // number of distance codes
uInt *, // that many (total) code lengths
uInt *, // literal desired/actual bit depth
uInt *, // distance desired/actual bit depth
inflate_huft * *, // literal/length tree result
inflate_huft * *, // distance tree result
inflate_huft *, // space for trees
z_streamp); // for messages
int inflate_trees_fixed (
uInt *, // literal desired/actual bit depth
uInt *, // distance desired/actual bit depth
const inflate_huft * *, // literal/length tree result
const inflate_huft * *, // distance tree result
z_streamp); // for memory allocation
struct inflate_blocks_state;
typedef struct inflate_blocks_state inflate_blocks_statef;
inflate_blocks_statef * inflate_blocks_new (
z_streamp z,
check_func c, // check function
uInt w); // window size
int inflate_blocks (
inflate_blocks_statef *,
z_streamp ,
int); // initial return code
void inflate_blocks_reset (
inflate_blocks_statef *,
z_streamp ,
uLong *); // check value on output
int inflate_blocks_free (
inflate_blocks_statef *,
z_streamp);
void inflate_set_dictionary (
inflate_blocks_statef *s,
const Byte *d, // dictionary
uInt n); // dictionary length
int inflate_blocks_sync_point (
inflate_blocks_statef *s);
struct inflate_codes_state;
typedef struct inflate_codes_state inflate_codes_statef;
inflate_codes_statef *inflate_codes_new (
uInt, uInt,
const inflate_huft *, const inflate_huft *,
z_streamp );
int inflate_codes (
inflate_blocks_statef *,
z_streamp ,
int);
void inflate_codes_free (
inflate_codes_statef *,
z_streamp );
typedef enum {
IBM_TYPE, // get type bits (3, including end bit)
IBM_LENS, // get lengths for stored
IBM_STORED, // processing stored block
IBM_TABLE, // get table lengths
IBM_BTREE, // get bit lengths tree for a dynamic block
IBM_DTREE, // get length, distance trees for a dynamic block
IBM_CODES, // processing fixed or dynamic block
IBM_DRY, // output remaining window bytes
IBM_DONE, // finished last block, done
IBM_BAD} // got a data error--stuck here
inflate_block_mode;
// inflate blocks semi-private state
struct inflate_blocks_state {
// mode
inflate_block_mode mode; // current inflate_block mode
// mode dependent information
union {
uInt left; // if STORED, bytes left to copy
struct {
uInt table; // table lengths (14 bits)
uInt index; // index into blens (or border)
uInt *blens; // bit lengths of codes
uInt bb; // bit length tree depth
inflate_huft *tb; // bit length decoding tree
} trees; // if DTREE, decoding info for trees
struct {
inflate_codes_statef
*codes;
} decode; // if CODES, current state
} sub; // submode
uInt last; // true if this block is the last block
// mode independent information
uInt bitk; // bits in bit buffer
uLong bitb; // bit buffer
inflate_huft *hufts; // single malloc for tree space
Byte *window; // sliding window
Byte *end; // one byte after sliding window
Byte *read; // window read pointer
Byte *write; // window write pointer
check_func checkfn; // check function
uLong check; // check on output
};
// defines for inflate input/output
// update pointers and return
#define UPDBITS {s->bitb=b;s->bitk=k;}
#define UPDIN {z->avail_in=n;z->total_in+=(uLong)(p-z->next_in);z->next_in=p;}
#define UPDOUT {s->write=q;}
#define UPDATE {UPDBITS UPDIN UPDOUT}
#define LEAVE {UPDATE return inflate_flush(s,z,r);}
// get bytes and bits
#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;}
#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
#define NEXTBYTE (n--,*p++)
#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}}
#define DUMPBITS(j) {b>>=(j);k-=(j);}
// output bytes
#define WAVAIL (uInt)(q<s->read?s->read-q-1:s->end-q)
#define LOADOUT {q=s->write;m=(uInt)WAVAIL;m;}
#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}}
#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
#defin
gitextract_rd62uedp/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── bug_report.md │ └── workflows/ │ └── build.yml ├── .gitignore ├── .gitmodules ├── CODE_OF_CONDUCT.md ├── COPYING ├── README.md ├── Squirrel.sln ├── devbuild.cmd ├── docs/ │ ├── contributing/ │ │ ├── branching-strategy.md │ │ ├── building-squirrel.md │ │ ├── contributing.md │ │ └── vs-solution-overview.md │ ├── faq.md │ ├── getting-started/ │ │ ├── 0-overview.md │ │ ├── 1-integrating.md │ │ ├── 2-packaging.md │ │ ├── 3-distributing.md │ │ ├── 4-installing.md │ │ └── 5-updating.md │ ├── goals.md │ ├── readme.md │ └── using/ │ ├── amazon-s3.md │ ├── application-signing.md │ ├── custom-squirrel-events-non-cs.md │ ├── custom-squirrel-events.md │ ├── debugging-installs.md │ ├── debugging-updates.md │ ├── delta-packages.md │ ├── github.md │ ├── install-process.md │ ├── loading-gif.md │ ├── machine-wide-installs.md │ ├── microsoft-iis.md │ ├── naming.md │ ├── nuget-package-metadata.md │ ├── octopack.md │ ├── packaging-tools.md │ ├── squirrel-command-line.md │ ├── staged-rollouts.md │ ├── teamcity.md │ ├── update-manager.md │ ├── update-process.md │ ├── visual-studio-packaging.md │ └── x-doc-template.md ├── src/ │ ├── Directory.Build.props │ ├── Setup/ │ │ ├── FxHelper.cpp │ │ ├── FxHelper.h │ │ ├── MachineInstaller.cpp │ │ ├── MachineInstaller.h │ │ ├── Setup.h │ │ ├── Setup.rc │ │ ├── Setup.vcxproj │ │ ├── Setup.vcxproj.filters │ │ ├── UpdateRunner.cpp │ │ ├── UpdateRunner.h │ │ ├── compat.manifest │ │ ├── resource.h │ │ ├── stdafx.cpp │ │ ├── stdafx.h │ │ ├── targetver.h │ │ ├── unzip.cpp │ │ ├── unzip.h │ │ ├── winmain.cpp │ │ └── wtl90/ │ │ ├── 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 │ ├── Squirrel/ │ │ ├── ApplyReleasesProgress.cs │ │ ├── BinaryPatchUtility.cs │ │ ├── ContentType.cs │ │ ├── DeltaPackage.cs │ │ ├── EnumerableExtensions.cs │ │ ├── FileDownloader.cs │ │ ├── IUpdateManager.cs │ │ ├── MarkdownSharp.cs │ │ ├── MsDeltaCompression.cs │ │ ├── NativeMethods.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ ├── ReleaseEntry.cs │ │ ├── ReleaseExtensions.cs │ │ ├── ReleasePackage.cs │ │ ├── ShellFile.cs │ │ ├── SimpleJson/ │ │ │ └── SimpleJson.cs │ │ ├── SimpleSplat/ │ │ │ ├── AssemblyFinder.cs │ │ │ ├── Logging.cs │ │ │ ├── MemoizingMRUCache.cs │ │ │ ├── ModeDetector.cs │ │ │ ├── PlatformModeDetector.cs │ │ │ └── ServiceLocation.cs │ │ ├── Squirrel.csproj │ │ ├── SquirrelAwareApp.cs │ │ ├── SquirrelAwareExecutableDetector.cs │ │ ├── TaskbarHelper.cs │ │ ├── TrayHelper.cs │ │ ├── UpdateInfo.cs │ │ ├── UpdateManager.ApplyReleases.cs │ │ ├── UpdateManager.CheckForUpdates.cs │ │ ├── UpdateManager.DownloadReleases.cs │ │ ├── UpdateManager.Factory.cs │ │ ├── UpdateManager.InstallHelpers.cs │ │ ├── UpdateManager.cs │ │ └── Utility.cs │ ├── Squirrel.nuspec │ ├── StubExecutable/ │ │ ├── LICENSE.md │ │ ├── Resource.h │ │ ├── Semver200_comparator.cpp │ │ ├── Semver200_parser.cpp │ │ ├── StubExecutable.cpp │ │ ├── StubExecutable.h │ │ ├── StubExecutable.rc │ │ ├── StubExecutable.vcxproj │ │ ├── StubExecutable.vcxproj.filters │ │ ├── semver200.h │ │ ├── stdafx.cpp │ │ ├── stdafx.h │ │ ├── targetver.h │ │ ├── version.h │ │ └── version.inl │ ├── SyncReleases/ │ │ ├── App.config │ │ ├── Mono.Options/ │ │ │ └── Options.cs │ │ ├── Program.cs │ │ ├── SyncImplementations.cs │ │ └── SyncReleases.csproj │ ├── Update/ │ │ ├── AnimatedGifWindow.cs │ │ ├── App.config │ │ ├── AuthenticodeTools.cs │ │ ├── CopStache.cs │ │ ├── Mono.Options/ │ │ │ └── Options.cs │ │ ├── Program.cs │ │ ├── StartupOption.cs │ │ ├── Update-Mono.csproj │ │ ├── Update.com │ │ ├── Update.csproj │ │ ├── app.manifest │ │ └── packages.config │ ├── WriteZipToSetup/ │ │ ├── WriteZipToSetup.cpp │ │ ├── WriteZipToSetup.vcxproj │ │ ├── WriteZipToSetup.vcxproj.filters │ │ ├── stdafx.cpp │ │ └── stdafx.h │ ├── build_official.cmd │ └── squirrel.windows.props ├── test/ │ ├── Directory.Build.props │ ├── Squirrel.Tests/ │ │ ├── ApplyReleasesProgressTests.cs │ │ ├── ApplyReleasesTests.cs │ │ ├── CheckForUpdateTests.cs │ │ ├── ContentTypeTests.cs │ │ ├── DeltaPackageTests.cs │ │ ├── DownloadReleasesTests.cs │ │ ├── Properties/ │ │ │ └── AssemblyInfo.cs │ │ ├── ReleaseEntryTests.cs │ │ ├── ReleasePackageTests.cs │ │ ├── Squirrel.Tests.csproj │ │ ├── SquirrelAwareExecutableDetectorTests.cs │ │ ├── TestHelpers/ │ │ │ ├── AssertExtensions.cs │ │ │ ├── ExposedClass.cs │ │ │ ├── ExposedObject.cs │ │ │ ├── ExposedObjectHelper.cs │ │ │ ├── IntegrationTestHelper.cs │ │ │ └── StaticHttpServer.cs │ │ ├── UpdateManagerTests.cs │ │ ├── UtilityTests.cs │ │ └── fixtures/ │ │ ├── Caliburn.Micro.1.4.1.nupkg │ │ ├── Caliburn.Micro.1.5.2.nupkg │ │ ├── CaliburnMicroDemo.1.0.0.nupkg │ │ ├── ProjectDependsOnJsonDotNet.1.0.nupkg │ │ ├── ProjectWithContent.1.0.0.0-beta-full.nupkg │ │ ├── ProjectWithContent.1.0.0.0-beta.nupkg │ │ ├── RELEASES-OnePointOh │ │ ├── RELEASES-OnePointOne │ │ ├── SpecialCharacters-0.1.0-full.nupkg │ │ ├── Squirrel.Core.1.0.0.0-full.nupkg │ │ ├── Squirrel.Core.1.0.0.0.nupkg │ │ ├── Squirrel.Core.1.1.0.0-delta.nupkg │ │ ├── Squirrel.Core.1.1.0.0-full.nupkg │ │ ├── Squirrel.Core.1.1.0.0.nupkg │ │ ├── Squirrel.Core.1.1.0.0.nuspec │ │ ├── Squirrel.Core.1.2.0.0-full.nupkg │ │ ├── Squirrel.Core.1.3.0.0-full.nupkg │ │ ├── Squirrel.Core.NoDependencies.1.0.0.0.nupkg │ │ ├── Squirrel.Tests.0.1.0-pre.nupkg │ │ ├── Squirrel.Tests.0.2.0-pre.nupkg │ │ ├── SquirrelInstalledApp.nuspec │ │ ├── ThisShouldBeANet45Project.1.0.nupkg │ │ ├── content-types/ │ │ │ ├── basic-merged.xml │ │ │ ├── basic.xml │ │ │ ├── complex-merged.xml │ │ │ └── complex.xml │ │ ├── slack-1.1.8-full.nupkg │ │ └── slack-1.2.0-delta.nupkg │ └── test_official.cmd ├── vendor/ │ └── wix/ │ ├── candle.exe.config │ ├── darice.cub │ ├── light.exe.config │ └── template.wxs └── version.json
Showing preview only (340K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4039 symbols across 93 files)
FILE: src/Setup/FxHelper.cpp
function NetVersion (line 26) | NetVersion CFxHelper::GetRequiredDotNetVersion()
function UINT (line 61) | UINT CFxHelper::GetDotNetVersionReleaseNumber(NetVersion version)
class ATL_NO_VTABLE (line 88) | class ATL_NO_VTABLE
function HRESULT (line 105) | HRESULT FinalConstruct() { return S_OK; }
function FinalRelease (line 107) | void FinalRelease()
function SetProgressDialog (line 111) | void SetProgressDialog(IProgressDialog* pd)
function HRESULT (line 141) | HRESULT CFxHelper::InstallDotNetFramework(NetVersion version, bool isQuiet)
function UINT (line 286) | UINT CFxHelper::GetInstallerMainInstructionForVersion(NetVersion version)
function UINT (line 302) | UINT CFxHelper::GetInstallerContentForVersion(NetVersion version)
function UINT (line 318) | UINT CFxHelper::GetInstallerExpandedInfoForVersion(NetVersion version)
function UINT (line 334) | UINT CFxHelper::GetInstallerUrlForVersion(NetVersion version)
function HRESULT (line 351) | HRESULT CFxHelper::HandleRebootRequirement(bool isQuiet)
FILE: src/Setup/FxHelper.h
function NetVersion (line 3) | enum class NetVersion {net45=0, net451=1, net452=2, net46=3, net461=4, n...
FILE: src/Setup/MachineInstaller.cpp
function directoryExists (line 7) | bool directoryExists(wchar_t* path) {
FILE: src/Setup/MachineInstaller.h
function class (line 2) | class MachineInstaller
FILE: src/Setup/UpdateRunner.cpp
function HRESULT (line 37) | HRESULT CUpdateRunner::AreWeInWine()
function HRESULT (line 50) | HRESULT CUpdateRunner::AreWeUACElevated()
function HRESULT (line 78) | HRESULT FindDesktopFolderView(REFIID riid, void **ppv)
function HRESULT (line 109) | HRESULT GetDesktopAutomationObject(REFIID riid, void **ppv)
function HRESULT (line 124) | HRESULT CUpdateRunner::ShellExecuteFromExplorer(LPWSTR pszFile, LPWSTR p...
FILE: src/Setup/UpdateRunner.h
function class (line 2) | class CUpdateRunner
FILE: src/Setup/unzip.cpp
type tm_unz_s (line 108) | struct tm_unz_s
type unz_global_info_s (line 119) | struct unz_global_info_s
type unz_file_info_s (line 125) | struct unz_file_info_s
type internal_state (line 233) | struct internal_state
type z_stream_s (line 235) | struct z_stream_s {
type internal_state (line 245) | struct internal_state
type inflate_huft_s (line 549) | struct inflate_huft_s
type inflate_huft_s (line 551) | struct inflate_huft_s {
type inflate_blocks_state (line 598) | struct inflate_blocks_state
type inflate_blocks_state (line 599) | struct inflate_blocks_state
type inflate_codes_state (line 631) | struct inflate_codes_state
type inflate_codes_state (line 632) | struct inflate_codes_state
type inflate_blocks_state (line 665) | struct inflate_blocks_state {
function inflate_flush (line 889) | int inflate_flush(inflate_blocks_statef *s,z_streamp z,int r)
type inflate_codes_state (line 975) | struct inflate_codes_state {
function inflate_codes_statef (line 1003) | inflate_codes_statef *inflate_codes_new(
function inflate_codes (line 1025) | int inflate_codes(inflate_blocks_statef *s, z_streamp z, int r)
function inflate_codes_free (line 1183) | void inflate_codes_free(inflate_codes_statef *c,z_streamp z)
function inflate_blocks_reset (line 1246) | void inflate_blocks_reset(inflate_blocks_statef *s, z_streamp z, uLong *c)
function inflate_blocks_statef (line 1264) | inflate_blocks_statef *inflate_blocks_new(z_streamp z, check_func c, uIn...
function huft_build (line 1634) | int huft_build(
function inflate_trees_bits (line 1834) | int inflate_trees_bits(
function inflate_trees_dynamic (line 1861) | int inflate_trees_dynamic(
function inflate_trees_fixed (line 1923) | int inflate_trees_fixed(
function inflate_fast (line 1956) | int inflate_fast(
function uLong (line 2185) | const uLong * get_crc_table()
function uLong (line 2194) | uLong ucrc32(uLong crc, const Byte *buf, uInt len)
function Uupdate_keys (line 2207) | void Uupdate_keys(unsigned long *keys, char c)
function Udecrypt_byte (line 2213) | char Udecrypt_byte(unsigned long *keys)
function zdecode (line 2217) | char zdecode(unsigned long *keys, char c)
function uLong (line 2243) | uLong adler32(uLong adler, const Byte *buf, uInt len)
function voidpf (line 2295) | voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
function zcfree (line 2301) | void zcfree (voidpf opaque, voidpf ptr)
type internal_state (line 2333) | struct internal_state {
function inflateReset (line 2356) | int inflateReset(z_streamp z)
function inflateEnd (line 2368) | int inflateEnd(z_streamp z)
function inflateInit2 (line 2381) | int inflateInit2(z_streamp z)
function inflate (line 2449) | int inflate(z_streamp z, int f)
type unz_file_info_internal_s (line 2593) | struct unz_file_info_internal_s
function LUFILE (line 2609) | LUFILE *lufopen(void *z,unsigned int len,DWORD flags,ZRESULT *err)
function lufclose (line 2651) | int lufclose(LUFILE *stream)
function luferror (line 2658) | int luferror(LUFILE *stream)
function luftell (line 2663) | long int luftell(LUFILE *stream)
function lufseek (line 2669) | int lufseek(LUFILE *stream, long offset, int whence)
function lufread (line 2687) | size_t lufread(void *ptr,size_t size,size_t n,LUFILE *stream)
function unzlocal_getByte (line 2779) | int unzlocal_getByte(LUFILE *fin,int *pi)
function unzlocal_getShort (line 2795) | int unzlocal_getShort (LUFILE *fin,uLong *pX)
function unzlocal_getLong (line 2815) | int unzlocal_getLong (LUFILE *fin,uLong *pX)
function strcmpcasenosensitive_internal (line 2845) | int strcmpcasenosensitive_internal (const char* fileName1,const char *fi...
function unzStringFileNameCompare (line 2874) | int unzStringFileNameCompare (const char*fileName1,const char*fileName2,...
function uLong (line 2885) | uLong unzlocal_SearchCentralDir(LUFILE *fin)
function unzFile (line 2924) | unzFile unzOpenInternal(LUFILE *fin)
function unzClose (line 2975) | int unzClose (unzFile file)
function unzGetGlobalInfo (line 2994) | int unzGetGlobalInfo (unzFile file,unz_global_info *pglobal_info)
function unzlocal_DosDateToTmuDate (line 3006) | void unzlocal_DosDateToTmuDate (uLong ulDosDate, tm_unz* ptm)
function unzlocal_GetCurrentFileInfoInternal (line 3031) | int unzlocal_GetCurrentFileInfoInternal (unzFile file, unz_file_info *pf...
function unzGetCurrentFileInfo (line 3182) | int unzGetCurrentFileInfo (unzFile file, unz_file_info *pfile_info,
function unzGoToFirstFile (line 3192) | int unzGoToFirstFile (unzFile file)
function unzGoToNextFile (line 3211) | int unzGoToNextFile (unzFile file)
function unzLocateFile (line 3240) | int unzLocateFile (unzFile file, const char *szFileName, int iCaseSensit...
function unzlocal_CheckCurrentFileCoherencyHeader (line 3287) | int unzlocal_CheckCurrentFileCoherencyHeader (unz_s *s,uInt *piSizeVar,
function unzOpenCurrentFile (line 3371) | int unzOpenCurrentFile (unzFile file, const char *password)
function unzReadCurrentFile (line 3471) | int unzReadCurrentFile (unzFile file, voidp buf, unsigned len, bool *re...
function z_off_t (line 3570) | z_off_t unztell (unzFile file)
function unzeof (line 3587) | int unzeof (unzFile file)
function unzGetLocalExtrafield (line 3613) | int unzGetLocalExtrafield (unzFile file,voidp buf,unsigned len)
function unzCloseCurrentFile (line 3653) | int unzCloseCurrentFile (unzFile file)
function unzGetGlobalComment (line 3696) | int unzGetGlobalComment (unzFile file, char *szComment, uLong uSizeBuf)
function FILETIME (line 3724) | FILETIME timet2filetime(const lutime_t t)
function FILETIME (line 3732) | FILETIME dosdatetime2filetime(WORD dosdate,WORD dostime)
class TUnzip (line 3749) | class TUnzip
method TUnzip (line 3751) | TUnzip(const char *pwd) : uf(0), unzbuf(0), currentfile(-1), czei(-1),...
function ZRESULT (line 3768) | ZRESULT TUnzip::Open(void *z,unsigned int len,DWORD flags)
function ZRESULT (line 3792) | ZRESULT TUnzip::SetUnzipBaseDir(const TCHAR *dir)
function ZRESULT (line 3800) | ZRESULT TUnzip::Get(int index,ZIPENTRY *ze)
function ZRESULT (line 3923) | ZRESULT TUnzip::Find(const TCHAR *tname,bool ic,int *index,ZIPENTRY *ze)
function EnsureDirectory (line 3946) | void EnsureDirectory(const TCHAR *rootdir, const TCHAR *dir)
function ZRESULT (line 3964) | ZRESULT TUnzip::Unzip(int index,void *dst,unsigned int len,DWORD flags)
function ZRESULT (line 4038) | ZRESULT TUnzip::Close()
function FormatZipMessageU (line 4050) | unsigned int FormatZipMessageU(ZRESULT code, TCHAR *buf,unsigned int len)
function HZIP (line 4090) | HZIP OpenZipInternal(void *z,unsigned int len,DWORD flags, const char *p...
function HZIP (line 4097) | HZIP OpenZipHandle(HANDLE h, const char *password) {return OpenZipIntern...
function HZIP (line 4098) | HZIP OpenZip(const TCHAR *fn, const char *password) {return OpenZipInter...
function HZIP (line 4099) | HZIP OpenZip(void *z,unsigned int len, const char *password) {return Ope...
function ZRESULT (line 4102) | ZRESULT GetZipItem(HZIP hz, int index, ZIPENTRY *ze)
function ZRESULT (line 4112) | ZRESULT FindZipItem(HZIP hz, const TCHAR *name, bool ic, int *index, ZIP...
function ZRESULT (line 4121) | ZRESULT UnzipItemInternal(HZIP hz, int index, void *dst, unsigned int le...
function ZRESULT (line 4129) | ZRESULT UnzipItemHandle(HZIP hz, int index, HANDLE h) {return UnzipItemI...
function ZRESULT (line 4130) | ZRESULT UnzipItem(HZIP hz, int index, const TCHAR *fn) {return UnzipItem...
function ZRESULT (line 4131) | ZRESULT UnzipItem(HZIP hz, int index, void *z,unsigned int len) {return ...
function ZRESULT (line 4133) | ZRESULT SetUnzipBaseDir(HZIP hz, const TCHAR *dir)
function ZRESULT (line 4143) | ZRESULT CloseZipU(HZIP hz)
function IsZipHandleU (line 4154) | bool IsZipHandleU(HZIP hz)
FILE: src/Setup/unzip.h
type DWORD (line 17) | typedef DWORD ZRESULT;
type ZIPENTRY (line 20) | typedef struct
FILE: src/Setup/winmain.cpp
function PreloadLibs (line 18) | static void PreloadLibs()
function MitigateDllHijacking (line 34) | static void MitigateDllHijacking()
function wWinMain (line 50) | int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
FILE: src/Setup/wtl90/atlapp.h
function BOOL (line 125) | inline BOOL IsMenu(HMENU hMenu)
function MulDiv (line 139) | inline int MulDiv(IN int nNumber, IN int nNumerator, IN int nDenominator)
function namespace (line 165) | namespace ATL
function lstrlenA (line 177) | inline int WINAPI lstrlenA(LPCSTR lpszString)
function LONG_PTR (line 186) | inline LONG_PTR tmp_SetWindowLongPtrW( HWND hWnd, int nIndex, LONG_PTR d...
function LONG_PTR (line 194) | inline LONG_PTR tmp_GetWindowLongPtrW( HWND hWnd, int nIndex )
function LPTSTR (line 219) | inline LPTSTR lstrcpyn(LPTSTR lpstrDest, LPCTSTR lpstrSrc, int nLength)
function LPWSTR (line 231) | inline LPWSTR lstrcpynW(LPWSTR lpstrDest, LPCWSTR lpstrSrc, int nLength)
function LPSTR (line 238) | inline LPSTR lstrcpynA(LPSTR lpstrDest, LPCSTR lpstrSrc, int nLength)
type LONG_PTR (line 382) | typedef long LONG_PTR;
type ULONG_PTR (line 383) | typedef unsigned long ULONG_PTR;
type ULONG_PTR (line 384) | typedef ULONG_PTR DWORD_PTR;
type errno_t (line 493) | typedef int errno_t;
type _IMAGELIST (line 530) | struct _IMAGELIST { }
type _TREEITEM (line 531) | struct _TREEITEM { }
type _PSP (line 532) | struct _PSP { }
function namespace (line 548) | namespace ATL { HRESULT AtlGetCommCtrlVersion(LPDWORD pdwMajor, LPDWORD ...
function namespace (line 556) | namespace WTL
function BOOL (line 630) | inline BOOL AtlInitCommonControls(DWORD dwFlags)
function namespace (line 679) | namespace RunTimeHelper
function namespace (line 838) | namespace ModuleHelper
function namespace (line 881) | namespace SecureHelper
function namespace (line 1082) | namespace MinCrtHelper
function namespace (line 1170) | namespace GenericWndClass
function class (line 1200) | class CMessageFilter
function class (line 1210) | class CIdleHandler
type CIdleHandler (line 1218) | typedef CIdleHandler CUpdateUIObject;
function class (line 1226) | class CMessageLoop
function class (line 1363) | class CStaticDataInitCriticalSectionLock
function class (line 1394) | class CWindowCreateCriticalSectionLock
function m_p (line 1457) | CTempBuffer(size_t nElements) : m_p(NULL)
function operator (line 1468) | operator T*() const
function T (line 1479) | T* Allocate(size_t nElements)
function T (line 1485) | T* AllocateBytes(size_t nBytes)
function class (line 1509) | class CAppModule : public ATL::CComModule
function Term (line 1534) | void Term()
function BOOL (line 1542) | BOOL AddMessageLoop(CMessageLoop* pMsgLoop)
function BOOL (line 1562) | BOOL RemoveMessageLoop()
function CMessageLoop (line 1579) | CMessageLoop* GetMessageLoop(DWORD dwThreadID = ::GetCurrentThreadId()) ...
function BOOL (line 1598) | BOOL InitSettingChangeNotify(DLGPROC pfnDlgProc = _SettingChangeDlgProc)
function TermSettingChangeNotify (line 1643) | void TermSettingChangeNotify()
function BOOL (line 1661) | BOOL AddSettingChangeNotify(HWND hWnd)
function BOOL (line 1681) | BOOL RemoveSettingChangeNotify(HWND hWnd)
function DLGTEMPLATE (line 1701) | struct _ATL_EMPTY_DLGTEMPLATE : DLGTEMPLATE
function BOOL (line 1714) | static BOOL CALLBACK _SettingChangeDlgProc(HWND hWnd, UINT uMsg, WPARAM ...
function class (line 1749) | class CServerAppModule : public CAppModule
function Term (line 1765) | void Term()
function LONG (line 1773) | LONG Unlock()
function MonitorShutdown (line 1784) | void MonitorShutdown()
function StartMonitor (line 1813) | bool StartMonitor()
function DWORD (line 1830) | static DWORD WINAPI MonitorProc(void* pv)
function LPCTSTR (line 1839) | static LPCTSTR FindOneOf(LPCTSTR p1, LPCTSTR p2)
function class (line 1863) | class CRegKeyEx : public ATL::CRegKey
function LONG (line 1885) | LONG SetValue(LPCTSTR pszValueName, DWORD dwType, const void* pValue, UL...
function LONG (line 1891) | LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue)
function LONG (line 1907) | LONG SetBinaryValue(LPCTSTR pszValueName, const void* pValue, ULONG nBytes)
function LONG (line 1913) | LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue)
function LONG (line 1920) | LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue)
function LONG (line 1927) | LONG SetStringValue(LPCTSTR pszValueName, LPCTSTR pszValue, DWORD dwType...
function LONG (line 1940) | LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue)
function LONG (line 1962) | LONG QueryValue(LPCTSTR pszValueName, DWORD* pdwType, void* pData, ULONG...
function LONG (line 1968) | LONG QueryGUIDValue(LPCTSTR pszValueName, GUID& guidValue)
function LONG (line 1998) | LONG QueryBinaryValue(LPCTSTR pszValueName, void* pValue, ULONG* pnBytes)
function LONG (line 2013) | LONG QueryDWORDValue(LPCTSTR pszValueName, DWORD& dwValue)
function LONG (line 2029) | LONG QueryQWORDValue(LPCTSTR pszValueName, ULONGLONG& qwValue)
function LONG (line 2045) | LONG QueryStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG* pnCh...
function LONG (line 2083) | LONG QueryMultiStringValue(LPCTSTR pszValueName, LPTSTR pszValue, ULONG*...
type ATL (line 2110) | typedef ATL::CRegKey CRegKeyEx;
function namespace (line 2153) | namespace ATL
FILE: src/Setup/wtl90/atlctrls.h
function namespace (line 86) | namespace WTL
function LPCTSTR (line 130) | static LPCTSTR GetWndClassName()
function HICON (line 136) | HICON GetIcon() const
function HENHMETAFILE (line 148) | HENHMETAFILE GetEnhMetaFile() const
function HICON (line 160) | HICON GetIcon() const
function CBitmapHandle (line 173) | CBitmapHandle GetBitmap() const
type CStaticT (line 198) | typedef CStaticT<ATL::CWindow> CStatic;
function LPCTSTR (line 226) | static LPCTSTR GetWndClassName()
function UINT (line 231) | UINT GetState() const
function GetCheck (line 243) | int GetCheck() const
function UINT (line 255) | UINT GetButtonStyle() const
function HICON (line 274) | HICON SetIcon(HICON hIcon)
function CBitmapHandle (line 280) | CBitmapHandle GetBitmap() const
function BOOL (line 348) | BOOL SetSplitInfo(PBUTTON_SPLITINFO pSplitInfo)
function GetNoteLength (line 355) | int GetNoteLength() const
function BOOL (line 369) | BOOL SetNote(LPCWSTR lpstrNoteText)
function LRESULT (line 376) | LRESULT SetElevationRequiredState(BOOL bSet)
function Click (line 384) | void Click()
type CButtonT (line 391) | typedef CButtonT<ATL::CWindow> CButton;
function LPCTSTR (line 419) | static LPCTSTR GetWndClassName()
function GetCount (line 425) | int GetCount() const
function SetHorizontalExtent (line 446) | void SetHorizontalExtent(int cxExtent)
function GetTopIndex (line 452) | int GetTopIndex() const
function LCID (line 464) | LCID GetLocale() const
function DWORD (line 477) | DWORD GetListBoxInfo() const
function SetCurSel (line 496) | int SetCurSel(int nSelect)
function GetSel (line 504) | int GetSel(int nIndex) const // also works for single-selection
function GetSelItems (line 524) | int GetSelItems(int nMaxItems, LPINT rgIndex) const
function GetAnchorIndex (line 531) | int GetAnchorIndex() const
function GetCaretIndex (line 545) | int GetCaretIndex() const
function SetItemData (line 564) | int SetItemData(int nIndex, DWORD_PTR dwItemData)
function SetItemDataPtr (line 576) | int SetItemDataPtr(int nIndex, void* pData)
function GetItemRect (line 582) | int GetItemRect(int nIndex, LPRECT lpRect) const
function GetText (line 588) | int GetText(int nIndex, LPTSTR lpszBuffer) const
function BOOL (line 596) | BOOL GetTextBSTR(int nIndex, BSTR& bstrText) const
function GetText (line 621) | int GetText(int nIndex, _CSTRING_NS::CString& strText) const
function GetTextLen (line 638) | int GetTextLen(int nIndex) const
function GetItemHeight (line 644) | int GetItemHeight(int nIndex) const
function SetItemHeight (line 650) | int SetItemHeight(int nIndex, UINT cyItemHeight)
function SetColumnWidth (line 657) | void SetColumnWidth(int cxWidth)
function BOOL (line 663) | BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
function BOOL (line 670) | BOOL SetTabStops()
function BOOL (line 677) | BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
function InitStorage (line 685) | int InitStorage(int nItems, UINT nBytes)
function ResetContent (line 691) | void ResetContent()
function UINT (line 697) | UINT ItemFromPoint(POINT pt, BOOL& bOutside) const
function AddString (line 706) | int AddString(LPCTSTR lpszItem)
function DeleteString (line 712) | int DeleteString(UINT nIndex)
function InsertString (line 718) | int InsertString(int nIndex, LPCTSTR lpszItem)
function Dir (line 725) | int Dir(UINT attr, LPCTSTR lpszWildCard)
function AddFile (line 731) | int AddFile(LPCTSTR lpstrFileName)
function FindString (line 739) | int FindString(int nStartAfter, LPCTSTR lpszItem) const
function FindStringExact (line 745) | int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
function SelectString (line 751) | int SelectString(int nStartAfter, LPCTSTR lpszItem)
function SelItemRange (line 757) | int SelItemRange(BOOL bSelect, int nFirstItem, int nLastItem)
function BOOL (line 771) | BOOL SetInputMode(DWORD dwMode)
type CListBoxT (line 778) | typedef CListBoxT<ATL::CWindow> CListBox;
function LPCTSTR (line 808) | static LPCTSTR GetWndClassName()
function GetCount (line 814) | int GetCount() const
function SetCurSel (line 826) | int SetCurSel(int nSelect)
function LCID (line 832) | LCID GetLocale() const
function GetTopIndex (line 844) | int GetTopIndex() const
function UINT (line 856) | UINT GetHorizontalExtent() const
function GetDroppedWidth (line 868) | int GetDroppedWidth() const
function BOOL (line 881) | BOOL GetComboBoxInfo(PCOMBOBOXINFO pComboBoxInfo) const
function DWORD (line 893) | DWORD GetEditSel() const
function DWORD_PTR (line 906) | DWORD_PTR GetItemData(int nIndex) const
function SetItemData (line 912) | int SetItemData(int nIndex, DWORD_PTR dwItemData)
function SetItemDataPtr (line 924) | int SetItemDataPtr(int nIndex, void* pData)
function GetLBText (line 930) | int GetLBText(int nIndex, LPTSTR lpszText) const
function BOOL (line 937) | BOOL GetLBTextBSTR(int nIndex, BSTR& bstrText) const
function GetLBText (line 961) | int GetLBText(int nIndex, _CSTRING_NS::CString& strText) const
function GetLBTextLen (line 978) | int GetLBTextLen(int nIndex) const
function GetItemHeight (line 984) | int GetItemHeight(int nIndex) const
function SetItemHeight (line 990) | int SetItemHeight(int nIndex, UINT cyItemHeight)
function BOOL (line 996) | BOOL GetExtendedUI() const
function BOOL (line 1014) | BOOL GetDroppedState() const
function BOOL (line 1027) | BOOL SetMinVisible(int nMinVisible)
function BOOL (line 1034) | BOOL GetCueBannerText(LPWSTR lpwText, int cchText) const
function BOOL (line 1044) | BOOL SetCueBannerText(LPCWSTR lpcwText)
function InitStorage (line 1055) | int InitStorage(int nItems, UINT nBytes)
function ResetContent (line 1061) | void ResetContent()
function BOOL (line 1068) | BOOL LimitText(int nMaxChars)
function AddString (line 1082) | int AddString(LPCTSTR lpszString)
function DeleteString (line 1088) | int DeleteString(UINT nIndex)
function InsertString (line 1094) | int InsertString(int nIndex, LPCTSTR lpszString)
function Dir (line 1101) | int Dir(UINT attr, LPCTSTR lpszWildCard)
function FindString (line 1109) | int FindString(int nStartAfter, LPCTSTR lpszString) const
function FindStringExact (line 1115) | int FindStringExact(int nIndexStart, LPCTSTR lpszFind) const
function SelectString (line 1121) | int SelectString(int nStartAfter, LPCTSTR lpszString)
function Clear (line 1128) | void Clear()
function Copy (line 1134) | void Copy()
function Cut (line 1140) | void Cut()
function Paste (line 1146) | void Paste()
type CComboBoxT (line 1153) | typedef CComboBoxT<ATL::CWindow> CComboBox;
function LPCTSTR (line 1182) | static LPCTSTR GetWndClassName()
function BOOL (line 1187) | BOOL CanUndo() const
function BOOL (line 1199) | BOOL GetModify() const
function DWORD (line 1217) | DWORD GetSel() const
function HLOCAL (line 1230) | HLOCAL GetHandle() const
function DWORD (line 1243) | DWORD GetMargins() const
function UINT (line 1263) | UINT GetLimitText() const
function POINT (line 1275) | POINT PosFromChar(UINT nChar) const
function GetLine (line 1293) | int GetLine(int nIndex, LPTSTR lpszBuffer) const
function GetLine (line 1299) | int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const
function TCHAR (line 1306) | TCHAR GetPasswordChar() const
function EDITWORDBREAKPROC (line 1319) | EDITWORDBREAKPROC GetWordBreakProc() const
function GetFirstVisibleLine (line 1332) | int GetFirstVisibleLine() const
function BOOL (line 1368) | BOOL GetCueBannerText(LPCWSTR lpstrText, int cchText) const
function EmptyUndoBuffer (line 1383) | void EmptyUndoBuffer()
function BOOL (line 1389) | BOOL FmtLines(BOOL bAddEOL)
function SetRect (line 1431) | void SetRect(LPCRECT lpRect)
function SetRectNP (line 1437) | void SetRectNP(LPCRECT lpRect)
function BOOL (line 1469) | BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
function BOOL (line 1475) | BOOL SetTabStops()
function BOOL (line 1481) | BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
function ScrollCaret (line 1487) | void ScrollCaret()
function Scroll (line 1493) | int Scroll(int nScrollAction)
function BOOL (line 1516) | BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBaloonTip)
function BOOL (line 1522) | BOOL HideBalloonTip()
function DWORD (line 1530) | DWORD GetHilite() const
function SetHilite (line 1544) | void SetHilite(int nStartChar, int nEndChar)
function BOOL (line 1552) | BOOL Undo()
function Clear (line 1558) | void Clear()
function Copy (line 1564) | void Copy()
function Cut (line 1570) | void Cut()
function Paste (line 1576) | void Paste()
function DWORD (line 1583) | DWORD GetExtendedStyle()
function DWORD (line 1588) | DWORD SetExtendedStyle(DWORD dwMask, DWORD dwExStyle)
function BOOL (line 1598) | BOOL SetInputMode(DWORD dwMode)
function BOOL (line 1603) | BOOL SetSymbols(LPCTSTR szSymbols)
function BOOL (line 1608) | BOOL ResetSymbols()
type CEditT (line 1615) | typedef CEditT<ATL::CWindow> CEdit;
function BOOL (line 1725) | BOOL HasSelection() const
function LPCTSTR (line 1766) | static LPCTSTR GetWndClassName()
function GetScrollPos (line 1772) | int GetScrollPos() const
function GetScrollLimit (line 1812) | int GetScrollLimit() const
type CScrollBarT (line 1850) | typedef CScrollBarT<ATL::CWindow> CScrollBar;
type CImageListT (line 1860) | typedef CImageListT<false> CImageList;
type CImageListT (line 1861) | typedef CImageListT<true> CImageListManaged;
function Attach (line 1887) | void Attach(HIMAGELIST hImageList)
function HIMAGELIST (line 1896) | HIMAGELIST Detach()
function COLORREF (line 1920) | COLORREF SetBkColor(COLORREF cr)
function BOOL (line 1926) | BOOL GetImageInfo(int nImage, IMAGEINFO* pImageInfo) const
function HICON (line 1932) | HICON GetIcon(int nIndex, UINT uFlags = ILD_NORMAL) const
function BOOL (line 1938) | BOOL GetIconSize(int& cx, int& cy) const
function BOOL (line 1944) | BOOL GetIconSize(SIZE& size) const
function BOOL (line 1950) | BOOL SetIconSize(int cx, int cy)
function BOOL (line 1956) | BOOL SetIconSize(SIZE size)
function BOOL (line 1962) | BOOL SetImageCount(UINT uNewCount)
function BOOL (line 1968) | BOOL SetOverlayImage(int nImage, int nOverlay)
function BOOL (line 1975) | BOOL Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow)
function BOOL (line 1982) | BOOL Create(ATL::_U_STRINGorID bitmap, int cx, int nGrow, COLORREF crMask)
function BOOL (line 1996) | BOOL Merge(HIMAGELIST hImageList1, int nImage1, HIMAGELIST hImageList2, ...
function BOOL (line 2005) | BOOL CreateFromStream(LPSTREAM lpStream)
function BOOL (line 2014) | BOOL Destroy()
function Add (line 2030) | int Add(HBITMAP hBitmap, COLORREF crMask)
function BOOL (line 2036) | BOOL Remove(int nImage)
function BOOL (line 2042) | BOOL RemoveAll()
function BOOL (line 2048) | BOOL Replace(int nImage, HBITMAP hBitmap, HBITMAP hBitmapMask)
function AddIcon (line 2054) | int AddIcon(HICON hIcon)
function ReplaceIcon (line 2060) | int ReplaceIcon(int nImage, HICON hIcon)
function HICON (line 2066) | HICON ExtractIcon(int nImage)
function BOOL (line 2072) | BOOL Draw(HDC hDC, int nImage, int x, int y, UINT nStyle)
function BOOL (line 2079) | BOOL Draw(HDC hDC, int nImage, POINT pt, UINT nStyle)
function BOOL (line 2086) | BOOL DrawEx(int nImage, HDC hDC, int x, int y, int dx, int dy, COLORREF ...
function BOOL (line 2093) | BOOL DrawEx(int nImage, HDC hDC, RECT& rect, COLORREF rgbBk, COLORREF rg...
function BOOL (line 2100) | static BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp)
function BOOL (line 2105) | BOOL Copy(int nSrc, int nDst, UINT uFlags = ILCF_MOVE)
function HIMAGELIST (line 2113) | static HIMAGELIST Read(LPSTREAM lpStream)
function BOOL (line 2118) | BOOL Write(LPSTREAM lpStream)
function HRESULT (line 2126) | static HRESULT ReadEx(DWORD dwFlags, LPSTREAM lpStream, REFIID riid, PVO...
function HRESULT (line 2131) | HRESULT WriteEx(DWORD dwFlags, LPSTREAM lpStream)
function BOOL (line 2140) | BOOL BeginDrag(int nImage, POINT ptHotSpot)
function BOOL (line 2146) | BOOL BeginDrag(int nImage, int xHotSpot, int yHotSpot)
function EndDrag (line 2152) | static void EndDrag()
function BOOL (line 2157) | static BOOL DragMove(POINT pt)
function BOOL (line 2162) | static BOOL DragMove(int x, int y)
function BOOL (line 2167) | BOOL SetDragCursorImage(int nDrag, POINT ptHotSpot)
function BOOL (line 2173) | BOOL SetDragCursorImage(int nDrag, int xHotSpot, int yHotSpot)
function CImageList (line 2184) | static CImageList GetDragImage(LPPOINT lpPoint, LPPOINT lpPointHotSpot)
function BOOL (line 2189) | static BOOL DragEnter(HWND hWnd, POINT point)
function BOOL (line 2194) | static BOOL DragEnter(HWND hWnd, int x, int y)
function BOOL (line 2199) | static BOOL DragLeave(HWND hWnd)
function CImageList (line 2211) | static CImageList Duplicate(HIMAGELIST hImageList)
function class (line 2225) | class CToolInfo : public TOOLINFO
function operator (line 2233) | operator LPTOOLINFO() { return this; }
function operator (line 2235) | operator LPARAM() { return (LPARAM)this; }
function LPCTSTR (line 2284) | static LPCTSTR GetWndClassName()
function GetText (line 2289) | void GetText(LPTOOLINFO lpToolInfo) const
function BOOL (line 2303) | BOOL GetToolInfo(LPTOOLINFO lpToolInfo) const
function BOOL (line 2309) | BOOL GetToolInfo(HWND hWnd, UINT nIDTool, UINT* puFlags, LPRECT lpRect, ...
function SetToolInfo (line 2325) | void SetToolInfo(LPTOOLINFO lpToolInfo)
function SetToolRect (line 2331) | void SetToolRect(LPTOOLINFO lpToolInfo)
function SetToolRect (line 2337) | void SetToolRect(HWND hWnd, UINT nIDTool, LPCRECT lpRect)
function GetToolCount (line 2347) | int GetToolCount() const
function SetDelayTime (line 2359) | void SetDelayTime(DWORD dwType, int nTime)
function GetMargin (line 2365) | void GetMargin(LPRECT lpRect) const
function SetMargin (line 2371) | void SetMargin(LPRECT lpRect)
function GetMaxTipWidth (line 2377) | int GetMaxTipWidth() const
function COLORREF (line 2389) | COLORREF GetTipBkColor() const
function COLORREF (line 2401) | COLORREF GetTipTextColor() const
function BOOL (line 2413) | BOOL GetCurrentTool(LPTOOLINFO lpToolInfo) const
function SIZE (line 2420) | SIZE GetBubbleSize(LPTOOLINFO lpToolInfo) const
function BOOL (line 2428) | BOOL SetTitle(UINT uIcon, 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 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 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 HTREEITEM (line 4545) | HTREEITEM GetNextSelectedItem() const
function BOOL (line 4558) | BOOL SelectItem(HTREEITEM hItem)
function BOOL (line 4564) | BOOL SelectDropTarget(HTREEITEM hItem)
function BOOL (line 4570) | BOOL SelectSetFirstVisible(HTREEITEM hItem)
function CEdit (line 4576) | CEdit EditLabel(HTREEITEM hItem)
function BOOL (line 4582) | BOOL EndEditLabelNow(BOOL bCancel)
function HTREEITEM (line 4588) | HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const
function HTREEITEM (line 4594) | HTREEITEM HitTest(POINT pt, UINT* pFlags) const
function BOOL (line 4611) | BOOL EnsureVisible(HTREEITEM hItem)
function CImageList (line 4623) | CImageList RemoveImageList(int nImageList)
function CImageList (line 4629) | CImageList CreateDragImage(HTREEITEM hItem)
function BOOL (line 4636) | BOOL SetInsertMark(HTREEITEM hTreeItem, BOOL bAfter)
function BOOL (line 4642) | BOOL RemoveInsertMark()
function HTREEITEM (line 4650) | HTREEITEM MapAccIDToHTREEITEM(UINT uID) const
function UINT (line 4656) | UINT MapHTREEITEMToAccID(HTREEITEM hTreeItem) const
function ShowInfoTip (line 4664) | void ShowInfoTip(HTREEITEM hItem)
type CTreeViewCtrlT (line 4672) | typedef CTreeViewCtrlT<ATL::CWindow> CTreeViewCtrl;
function operator (line 4698) | operator HTREEITEM() { return m_hTreeItem; }
function DWORD_PTR (line 4727) | DWORD_PTR GetData() const;
function BOOL (line 4764) | BOOL HasChildren() const;
function LPCTSTR (line 5325) | static LPCTSTR GetWndClassName()
function BOOL (line 5330) | BOOL IsButtonEnabled(int nID) const
function BOOL (line 5336) | BOOL IsButtonChecked(int nID) const
function BOOL (line 5342) | BOOL IsButtonPressed(int nID) const
function BOOL (line 5348) | BOOL IsButtonHidden(int nID) const
function BOOL (line 5354) | BOOL IsButtonIndeterminate(int nID) const
function GetState (line 5360) | int GetState(int nID) const
function BOOL (line 5366) | BOOL SetState(int nID, UINT nState)
function BOOL (line 5372) | BOOL GetButton(int nIndex, LPTBBUTTON lpButton) const
function GetButtonCount (line 5378) | int GetButtonCount() const
function BOOL (line 5396) | BOOL SetButtonSize(SIZE size)
function BOOL (line 5402) | BOOL SetButtonSize(int cx, int cy)
function BOOL (line 5408) | BOOL SetBitmapSize(SIZE size)
function BOOL (line 5414) | BOOL SetBitmapSize(int cx, int cy)
function CToolTipCtrl (line 5421) | CToolTipCtrl GetToolTips() const
function SetNotifyWnd (line 5434) | void SetNotifyWnd(HWND hWnd)
function GetRows (line 5440) | int GetRows() const
function BOOL (line 5452) | BOOL SetCmdID(int nIndex, UINT nID)
function DWORD (line 5458) | DWORD GetBitmapFlags() const
function GetButtonText (line 5470) | int GetButtonText(int nID, LPTSTR lpstrText) const
function DWORD (line 5520) | DWORD GetStyle() const
function DWORD (line 5532) | DWORD GetButtonSize() const
function BOOL (line 5546) | BOOL GetRect(int nID, LPRECT lpRect) const
function GetTextRows (line 5552) | int GetTextRows() const
function BOOL (line 5564) | BOOL SetIndent(int nIndent)
function BOOL (line 5570) | BOOL SetMaxTextRows(int nMaxTextRows)
function BOOL (line 5578) | BOOL GetAnchorHighlight() const
function BOOL (line 5597) | BOOL SetButtonInfo(int nID, LPTBBUTTONINFO lptbbi)
function BOOL (line 5603) | BOOL SetButtonInfo(int nID, DWORD dwMask, BYTE Style, BYTE State, LPCTST...
function GetHotItem (line 5621) | int GetHotItem() const
function BOOL (line 5634) | BOOL IsButtonHighlighted(int nButtonID) const
function DWORD (line 5640) | DWORD SetDrawTextFlags(DWORD dwMask, DWORD dwFlags)
function BOOL (line 5647) | BOOL GetColorScheme(LPCOLORSCHEME lpcs) const
function SetColorScheme (line 5653) | void SetColorScheme(LPCOLORSCHEME lpcs)
function DWORD (line 5659) | DWORD GetExtendedStyle() const
function GetInsertMark (line 5671) | void GetInsertMark(LPTBINSERTMARK lptbim) const
function SetInsertMark (line 5677) | void SetInsertMark(LPTBINSERTMARK lptbim)
function COLORREF (line 5683) | COLORREF GetInsertMarkColor() const
function BOOL (line 5695) | BOOL GetMaxSize(LPSIZE lpSize) const
function GetPadding (line 5701) | void GetPadding(LPSIZE lpSizePadding) const
function GetString (line 5736) | int GetString(int nString, LPTSTR lpstrString, int cchMaxLen) const
function GetStringBSTR (line 5742) | int GetStringBSTR(int nString, BSTR& bstrString) const
function GetString (line 5768) | int GetString(int nString, _CSTRING_NS::CString& str) const
function GetMetrics (line 5787) | void GetMetrics(LPTBMETRICS lptbm) const
function SetMetrics (line 5793) | void SetMetrics(LPTBMETRICS lptbm)
function SetWindowTheme (line 5799) | void SetWindowTheme(LPCWSTR lpstrTheme)
function GetItemDropDownRect (line 5819) | void GetItemDropDownRect(int nIndex, LPRECT lpRect) const
function AddBitmap (line 5862) | int AddBitmap(int nNumButtons, UINT nBitmapID)
function AddBitmap (line 5872) | int AddBitmap(int nNumButtons, HBITMAP hBitmap)
function BOOL (line 5881) | BOOL AddButtons(int nNumButtons, LPTBBUTTON lpButtons)
function BOOL (line 5887) | BOOL InsertButton(int nIndex, LPTBBUTTON lpButton)
function BOOL (line 5893) | BOOL InsertButton(int nIndex, int iCommand, BYTE Style, BYTE State, int ...
function BOOL (line 5907) | BOOL InsertButton(int nIndex, int iCommand, BYTE Style, BYTE State, int ...
function BOOL (line 5913) | BOOL AddButton(LPTBBUTTON lpButton)
function BOOL (line 5918) | BOOL AddButton(int iCommand, BYTE Style, BYTE State, int iBitmap, INT_PT...
function BOOL (line 5923) | BOOL AddButton(int iCommand, BYTE Style, BYTE State, int iBitmap, LPCTST...
function BOOL (line 5928) | BOOL DeleteButton(int nIndex)
function CommandToIndex (line 5944) | int CommandToIndex(UINT nID) const
function SaveState (line 5951) | void SaveState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName)
function RestoreState (line 5961) | void RestoreState(HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName)
function Customize (line 5971) | void Customize()
function AddString (line 5978) | int AddString(UINT nStringID)
function AddStrings (line 5984) | int AddStrings(LPCTSTR lpszStrings)
function AutoSize (line 5990) | void AutoSize()
function BOOL (line 5996) | BOOL ChangeBitmap(int nID, int nBitmap)
function LoadImages (line 6002) | int LoadImages(int nBitmapID)
function LoadStdImages (line 6008) | int LoadStdImages(int nBitmapID)
function BOOL (line 6014) | BOOL ReplaceBitmap(LPTBREPLACEBITMAP ptbrb)
function HitTest (line 6021) | int HitTest(LPPOINT lpPoint) const
function BOOL (line 6028) | BOOL InsertMarkHitTest(LPPOINT lpPoint, LPTBINSERTMARK lptbim) const
function BOOL (line 6034) | BOOL InsertMarkHitTest(int x, int y, LPTBINSERTMARK lptbim) const
function BOOL (line 6041) | BOOL MapAccelerator(TCHAR chAccel, int& nID) const
function BOOL (line 6053) | BOOL MoveButton(int nOldPos, int nNewPos)
function HRESULT (line 6059) | HRESULT GetObject(REFIID iid, LPVOID* ppvObject)
type CToolBarCtrlT (line 6068) | typedef CToolBarCtrlT<ATL::CWindow> CToolBarCtrl;
function LPCTSTR (line 6096) | static LPCTSTR GetWndClassName()
function GetParts (line 6101) | int GetParts(int nParts, int* pParts) const
function BOOL (line 6107) | BOOL SetParts(int nParts, int* pWidths)
function BOOL (line 6180) | BOOL GetRect(int nPane, LPRECT lpRect) const
function BOOL (line 6187) | BOOL GetBorders(int* pBorders) const
function BOOL (line 6193) | BOOL GetBorders(int& nHorz, int& nVert, int& nSpacing) const
function SetMinHeight (line 6207) | void SetMinHeight(int nMin)
function BOOL (line 6226) | BOOL GetUnicodeFormat() const
function SetTipText (line 6245) | void SetTipText(int nPane, LPCTSTR lpstrText)
function COLORREF (line 6254) | COLORREF SetBkColor(COLORREF clrBk)
function HICON (line 6260) | HICON GetIcon(int nPane) const
function BOOL (line 6267) | BOOL SetIcon(int nPane, HICON hIcon)
type CStatusBarCtrlT (line 6276) | typedef CStatusBarCtrlT<ATL::CWindow> CStatusBarCtrl;
function LPCTSTR (line 6304) | static LPCTSTR GetWndClassName()
function CImageList (line 6309) | CImageList GetImageList() const
function BOOL (line 6327) | BOOL GetItem(int nItem, LPTCITEM pTabCtrlItem) const
function BOOL (line 6333) | BOOL SetItem(int nItem, LPTCITEM pTabCtrlItem)
function SetItem (line 6339) | int SetItem(int nItem, UINT mask, LPCTSTR lpszItem, DWORD dwState, DWORD...
function BOOL (line 6352) | BOOL GetItemRect(int nItem, LPRECT lpRect) const
function GetCurSel (line 6358) | int GetCurSel() const
function SIZE (line 6370) | SIZE SetItemSize(SIZE size)
function SetItemSize (line 6378) | void SetItemSize(int cx, int cy)
function SetPadding (line 6384) | void SetPadding(SIZE size)
function GetRowCount (line 6390) | int GetRowCount() const
function SetTooltips (line 6413) | void SetTooltips(HWND hWndToolTip) { SetToolTips(hWndToolTip); }
function GetCurFocus (line 6417) | int GetCurFocus() const
function BOOL (line 6429) | BOOL SetItemExtra(int cbExtra)
function DWORD (line 6443) | DWORD GetExtendedStyle() const
function BOOL (line 6456) | BOOL GetUnicodeFormat() const
function InsertItem (line 6477) | int InsertItem(int nItem, UINT mask, LPCTSTR lpszItem, int iImage, LPARA...
function InsertItem (line 6488) | int InsertItem(int nItem, LPCTSTR lpszItem)
function AddItem (line 6497) | int AddItem(LPTCITEM pTabCtrlItem)
function AddItem (line 6502) | int AddItem(UINT mask, LPCTSTR lpszItem, int iImage, LPARAM lParam)
function AddItem (line 6507) | int AddItem(LPCTSTR lpszItem)
function BOOL (line 6512) | BOOL DeleteItem(int nItem)
function BOOL (line 6518) | BOOL DeleteAllItems()
function AdjustRect (line 6524) | void AdjustRect(BOOL bLarger, LPRECT lpRect)
function RemoveImage (line 6530) | void RemoveImage(int nImage)
function HitTest (line 6536) | int HitTest(TC_HITTESTINFO* pHitTestInfo) const
type CTabCtrlT (line 6557) | typedef CTabCtrlT<ATL::CWindow> CTabCtrl;
function LPCTSTR (line 6585) | static LPCTSTR GetWndClassName()
function GetLineSize (line 6590) | int GetLineSize() const
function GetPageSize (line 6602) | int GetPageSize() const
function GetRangeMin (line 6614) | int GetRangeMin() const
function GetRange (line 6638) | void GetRange(int& nMin, int& nMax) const
function GetSelStart (line 6650) | int GetSelStart() const
function GetSelection (line 6674) | void GetSelection(int& nMin, int& nMax) const
function GetChannelRect (line 6686) | void GetChannelRect(LPRECT lprc) const
function GetThumbRect (line 6692) | void GetThumbRect(LPRECT lprc) const
function GetPos (line 6698) | int GetPos() const
function UINT (line 6710) | UINT GetNumTics() const
function GetTic (line 6722) | int GetTic(int nTic) const
function BOOL (line 6728) | BOOL SetTic(int nTic)
function GetTicPos (line 6734) | int GetTicPos(int nTic) const
function SetTicFreq (line 6740) | void SetTicFreq(int nFreq)
function GetThumbLength (line 6746) | int GetThumbLength() const
function CToolTipCtrl (line 6778) | CToolTipCtrl GetToolTips() const
function SetTipSide (line 6790) | int SetTipSide(int nSide)
function BOOL (line 6798) | BOOL GetUnicodeFormat() const
type CTrackBarCtrlT (line 6831) | typedef CTrackBarCtrlT<ATL::CWindow> CTrackBarCtrl;
function LPCTSTR (line 6859) | static LPCTSTR GetWndClassName()
function UINT (line 6864) | UINT GetAccel(int nAccel, UDACCEL* pAccel) const
function BOOL (line 6870) | BOOL SetAccel(int nAccel, UDACCEL* pAccel)
function UINT (line 6876) | UINT GetBase() const
function SetPos (line 6911) | int SetPos(int nPos)
function DWORD (line 6917) | DWORD GetRange() const
function SetRange (line 6931) | void SetRange(int nLower, int nUpper)
function SetRange32 (line 6938) | void SetRange32(int nLower, int nUpper)
function GetRange32 (line 6944) | void GetRange32(int& nLower, int& nUpper) const
function BOOL (line 6951) | BOOL GetUnicodeFormat() const
function SetPos32 (line 6974) | int SetPos32(int nPos)
type CUpDownCtrlT (line 6982) | typedef CUpDownCtrlT<ATL::CWindow> CUpDownCtrl;
function LPCTSTR (line 7010) | static LPCTSTR GetWndClassName()
function DWORD (line 7015) | DWORD SetRange(int nLower, int nUpper)
function SetPos (line 7021) | int SetPos(int nPos)
function OffsetPos (line 7027) | int OffsetPos(int nPos)
function SetStep (line 7033) | int SetStep(int nStep)
function UINT (line 7039) | UINT GetPos() const
function GetRange (line 7052) | void GetRange(int& nLower, int& nUpper) const
function GetRangeLimit (line 7061) | int GetRangeLimit(BOOL bLowLimit) const
function DWORD (line 7067) | DWORD SetRange32(int nMin, int nMax)
function COLORREF (line 7074) | COLORREF SetBarColor(COLORREF clr)
function COLORREF (line 7080) | COLORREF SetBkColor(COLORREF clr)
function GetStep (line 7096) | int GetStep() const
function COLORREF (line 7108) | COLORREF GetBarColor() const
function SetState (line 7120) | int SetState(int nState)
function StepIt (line 7128) | int StepIt()
type CProgressBarCtrlT (line 7135) | typedef CProgressBarCtrlT<ATL::CWindow> CProgressBarCtrl;
function LPCTSTR (line 7165) | static LPCTSTR GetWndClassName()
function DWORD (line 7170) | DWORD GetHotKey() const
function SetHotKey (line 7184) | void SetHotKey(WORD wVirtualKeyCode, WORD wModifiers)
function SetRules (line 7190) | void SetRules(WORD wInvalidComb, WORD wModifiers)
type CHotKeyCtrlT (line 7197) | typedef CHotKeyCtrlT<ATL::CWindow> CHotKeyCtrl;
function LPCTSTR (line 7229) | static LPCTSTR GetWndClassName()
function BOOL (line 7235) | BOOL Open(ATL::_U_STRINGorID FileName)
function BOOL (line 7241) | BOOL Play(UINT nFrom, UINT nTo, UINT nRep)
function BOOL (line 7247) | BOOL Stop()
function BOOL (line 7253) | BOOL Close()
function BOOL (line 7259) | BOOL Seek(UINT nTo)
type CAnimateCtrlT (line 7276) | typedef CAnimateCtrlT<ATL::CWindow> CAnimateCtrl;
function LPCTSTR (line 7318) | static LPCTSTR GetWndClassName()
function LPCTSTR (line 7327) | static LPCTSTR GetLibraryName()
function GetLineCount (line 7338) | int GetLineCount() const
function GetRect (line 7356) | void GetRect(LPRECT lpRect) const
function DWORD (line 7362) | DWORD GetOptions() const
function GetLine (line 7375) | int GetLine(int nIndex, LPTSTR lpszBuffer) const
function GetLine (line 7381) | int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const
function BOOL (line 7388) | BOOL CanUndo() const
function GetSel (line 7400) | void GetSel(LONG& nStartChar, LONG& nEndChar) const
function GetSel (line 7409) | void GetSel(CHARRANGE &cr) const
function SetSel (line 7415) | int SetSel(LONG nStartChar, LONG nEndChar)
function SetSel (line 7422) | int SetSel(CHARRANGE &cr)
function SetSelAll (line 7428) | int SetSelAll()
function SetSelNone (line 7433) | int SetSelNone()
function DWORD (line 7438) | DWORD GetDefaultCharFormat(CHARFORMAT& cf) const
function DWORD (line 7445) | DWORD GetSelectionCharFormat(CHARFORMAT& cf) const
function DWORD (line 7452) | DWORD GetEventMask() const
function DWORD (line 7464) | DWORD GetParaFormat(PARAFORMAT& pf) const
function LONG (line 7472) | LONG GetSelText(LPTSTR lpstrBuff) const
function LONG (line 7479) | LONG GetSelText(LPSTR lpstrBuff) const
function BOOL (line 7487) | BOOL GetSelTextBSTR(BSTR& bstrText) const
function LONG (line 7521) | LONG GetSelText(_CSTRING_NS::CString& strText) const
function WORD (line 7553) | WORD GetSelectionType() const
function COLORREF (line 7565) | COLORREF SetBackgroundColor() // sets to system background
function BOOL (line 7571) | BOOL SetCharFormat(CHARFORMAT& cf, WORD wFlags)
function BOOL (line 7578) | BOOL SetDefaultCharFormat(CHARFORMAT& cf)
function BOOL (line 7585) | BOOL SetSelectionCharFormat(CHARFORMAT& cf)
function BOOL (line 7592) | BOOL SetWordCharFormat(CHARFORMAT& cf)
function DWORD (line 7599) | DWORD SetEventMask(DWORD dwEventMask)
function BOOL (line 7605) | BOOL SetParaFormat(PARAFORMAT& pf)
function BOOL (line 7612) | BOOL SetTargetDevice(HDC hDC, int cxLineWidth)
function GetTextLength (line 7618) | int GetTextLength() const
function GetTextRange (line 7636) | int GetTextRange(TEXTRANGE* pTextRange) const
function EDITWORDBREAKPROCEX (line 7643) | EDITWORDBREAKPROCEX GetWordBreakProcEx() const
function GetTextRange (line 7657) | int GetTextRange(LONG nStartChar, LONG nEndChar, LPTSTR lpstrText) const
function GetTextRange (line 7667) | int GetTextRange(LONG nStartChar, LONG nEndChar, LPSTR lpstrText) const
function DWORD (line 7679) | DWORD GetDefaultCharFormat(CHARFORMAT2& cf) const
function BOOL (line 7686) | BOOL SetCharFormat(CHARFORMAT2& cf, WORD wFlags)
function BOOL (line 7693) | BOOL SetDefaultCharFormat(CHARFORMAT2& cf)
function DWORD (line 7700) | DWORD GetSelectionCharFormat(CHARFORMAT2& cf) const
function BOOL (line 7707) | BOOL SetSelectionCharFormat(CHARFORMAT2& cf)
function BOOL (line 7714) | BOOL SetWordCharFormat(CHARFORMAT2& cf)
function DWORD (line 7721) | DWORD GetParaFormat(PARAFORMAT2& pf) const
function BOOL (line 7728) | BOOL SetParaFormat(PARAFORMAT2& pf)
function TEXTMODE (line 7735) | TEXTMODE GetTextMode() const
function UNDONAMEID (line 7747) | UNDONAMEID GetUndoName() const
function BOOL (line 7759) | BOOL CanRedo() const
function UINT (line 7780) | UINT SetUndoLimit(UINT uUndoLimit)
function SetPalette (line 7786) | void SetPalette(HPALETTE hPalette)
function GetTextEx (line 7792) | int GetTextEx(GETTEXTEX* pGetTextEx, LPTSTR lpstrText) const
function GetTextLengthEx (line 7810) | int GetTextLengthEx(GETTEXTLENGTHEX* pGetTextLengthEx) const
function GetTextLengthEx (line 7816) | int GetTextLengthEx(DWORD dwFlags = GTL_DEFAULT, UINT uCodePage = CP_ACP...
function EDITWORDBREAKPROC (line 7825) | EDITWORDBREAKPROC GetWordBreakProc() const
function SetTextEx (line 7839) | int SetTextEx(SETTEXTEX* pSetTextEx, LPCTSTR lpstrText)
function SetTextEx (line 7845) | int SetTextEx(LPCTSTR lpstrText, DWORD dwFlags = ST_DEFAULT, UINT uCodeP...
function GetEditStyle (line 7854) | int GetEditStyle() const
function GetScrollPos (line 7875) | void GetScrollPos(LPPOINT lpPoint) const
function SetScrollPos (line 7882) | void SetScrollPos(LPPOINT lpPoint)
function BOOL (line 7889) | BOOL GetZoom(int& nNum, int& nDen) const
function BOOL (line 7895) | BOOL SetZoom(int nNum, int nDen)
function BOOL (line 7903) | BOOL SetZoomOff()
function LineFromChar (line 7923) | int LineFromChar(LONG nIndex) const
function POINT (line 7929) | POINT PosFromChar(LONG nChar) const
function CharFromPos (line 7937) | int CharFromPos(POINT pt) const
function EmptyUndoBuffer (line 7944) | void EmptyUndoBuffer()
function BOOL (line 7962) | BOOL LineScroll(int nLines)
function SetRect (line 7974) | void SetRect(LPCRECT lpRect)
function BOOL (line 7980) | BOOL DisplayBand(LPRECT pDisplayRect)
function LONG (line 7986) | LONG FindText(DWORD dwFlags, FINDTEXT& ft) const
function LONG (line 7996) | LONG FindText(DWORD dwFlags, FINDTEXTEX& ft) const
function RequestResize (line 8031) | void RequestResize()
function LONG (line 8037) | LONG StreamIn(UINT uFormat, EDITSTREAM& es)
function LONG (line 8043) | LONG StreamOut(UINT uFormat, EDITSTREAM& es)
function DWORD (line 8049) | DWORD FindWordBreak(int nCode, LONG nStartChar)
function ScrollCaret (line 8056) | void ScrollCaret()
function BOOL (line 8075) | BOOL Undo()
function Clear (line 8081) | void Clear()
function Copy (line 8087) | void Copy()
function Cut (line 8093) | void Cut()
function Paste (line 8099) | void Paste()
function IRichEditOle (line 8106) | IRichEditOle* GetOleInterface() const
function BOOL (line 8114) | BOOL SetOleCallback(IRichEditOleCallback* pCallback)
function BOOL (line 8121) | BOOL Redo()
function StopGroupTyping (line 8127) | void StopGroupTyping()
function BOOL (line 8141) | BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
function BOOL (line 8147) | BOOL SetTabStops()
function BOOL (line 8153) | BOOL SetTabStops(const int& cxEachStop) // takes an 'int'
function AutoCorrectProc (line 8161) | AutoCorrectProc GetAutoCorrectProc() const
function BOOL (line 8173) | BOOL CallAutoCorrectProc(WCHAR ch)
function DWORD (line 8179) | DWORD GetEditStyleEx() const
function DWORD (line 8191) | DWORD GetStoryType(int nStoryIndex) const
function DWORD (line 8197) | DWORD SetStoryType(int nStoryIndex, DWORD dwStoryType)
function DWORD (line 8203) | DWORD GetEllipsisMode() const
function BOOL (line 8221) | BOOL GetEllipsisState() const
function SetTouchOptions (line 8233) | void SetTouchOptions(int nTouchOptions, BOOL bEnable)
function HRESULT (line 8239) | HRESULT InsertTable(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellParams)
function HRESULT (line 8245) | HRESULT GetTableParams(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellP...
function HRESULT (line 8251) | HRESULT SetTableParams(TABLEROWPARMS* pRowParams, TABLECELLPARMS* pCellP...
function HRESULT (line 8257) | HRESULT InsertImage(RICHEDIT_IMAGE_PARAMETERS* pParams)
function BOOL (line 8263) | BOOL SetUiaName(LPCTSTR lpstrName)
type CRichEditCtrlT (line 8271) | typedef CRichEditCtrlT<ATL::CWindow> CRichEditCtrl;
function BOOL (line 8372) | BOOL MakeDragList()
function DrawInsert (line 8385) | void DrawInsert(int nItem)
function UINT (line 8391) | static UINT GetDragListMessage()
type CDragListBoxT (line 8414) | typedef CDragListBoxT<ATL::CWindow> CDragListBox;
function OnCancelDrag (line 8459) | void OnCancelDrag(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCurso...
function OnDragging (line 8464) | int OnDragging(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
function OnDropped (line 8469) | void OnDropped(int /*nCtlID*/, HWND /*hWndDragList*/, POINT /*ptCursor*/)
function LPCTSTR (line 8503) | static LPCTSTR GetWndClassName()
function UINT (line 8508) | UINT GetBandCount() const
function BOOL (line 8520) | BOOL SetBandInfo(int nBand, LPREBARBANDINFO lprbbi)
function BOOL (line 8526) | BOOL GetBarInfo(LPREBARINFO lprbi) const
function BOOL (line 8532) | BOOL SetBarInfo(LPREBARINFO lprbi)
function CImageList (line 8538) | CImageList GetImageList() const
function COLORREF (line 8571) | COLORREF GetTextColor() const
function COLORREF (line 8583) | COLORREF GetBkColor() const
function UINT (line 8595) | UINT GetBarHeight() const
function CToolTipCtrl (line 8608) | CToolTipCtrl GetToolTips() const
function GetBandBorders (line 8621) | void GetBandBorders(int nBand, LPRECT lpRect) const
function BOOL (line 8629) | BOOL GetColorScheme(LPCOLORSCHEME lpColorScheme) const
function SetColorScheme (line 8636) | void SetColorScheme(LPCOLORSCHEME lpColorScheme)
function HPALETTE (line 8643) | HPALETTE GetPalette() const
function BOOL (line 8655) | BOOL GetUnicodeFormat() const
function SetWindowTheme (line 8680) | void SetWindowTheme(LPCWSTR lpstrTheme)
function DWORD (line 8688) | DWORD GetExtendedStyle() const
function BOOL (line 8702) | BOOL InsertBand(int nBand, LPREBARBANDINFO lprbbi)
function BOOL (line 8708) | BOOL AddBand(LPREBARBANDINFO lprbbi)
function BOOL (line 8713) | BOOL DeleteBand(int nBand)
function BeginDrag (line 8726) | void BeginDrag(int nBand, DWORD dwPos)
function BeginDrag (line 8732) | void BeginDrag(int nBand, int xPos, int yPos)
function EndDrag (line 8738) | void EndDrag()
function DragMove (line 8744) | void DragMove(DWORD dwPos)
function DragMove (line 8750) | void DragMove(int xPos, int yPos)
function GetDropTarget (line 8757) | void GetDropTarget(IDropTarget** ppDropTarget) const
function MinimizeBand (line 8770) | void MinimizeBand(int nBand)
function BOOL (line 8776) | BOOL SizeToRect(LPRECT lpRect)
function IdToIndex (line 8782) | int IdToIndex(UINT uBandID) const
function HitTest (line 8788) | int HitTest(LPRBHITTESTINFO lprbht) const
function BOOL (line 8794) | BOOL ShowBand(int nBand, BOOL bShow)
function BOOL (line 8801) | BOOL MoveBand(int nBand, int nNewPos)
function PushChevron (line 8811) | void PushChevron(int nBand, LPARAM lAppValue)
function LockBands (line 8820) | void LockBands(bool bLock)
function BOOL (line 8850) | BOOL SetBandWidth(int nBand, int cxWidth)
type CReBarCtrlT (line 8858) | typedef CReBarCtrlT<ATL::CWindow> CReBarCtrl;
function LPCTSTR (line 8888) | static LPCTSTR GetWndClassName()
function CImageList (line 8893) | CImageList GetImageList() const
function BOOL (line 8918) | BOOL GetUnicodeFormat() const
function InsertItem (line 8940) | int InsertItem(const COMBOBOXEXITEM* lpcCBItem)
function InsertItem (line 8946) | int InsertItem(UINT nMask, int nIndex, LPCTSTR lpszItem, int nImage, int...
function AddItem (line 8976) | int AddItem(UINT nMask, LPCTSTR lpszItem, int nImage, int nSelImage, int...
function DeleteItem (line 8986) | int DeleteItem(int nIndex)
function BOOL (line 8992) | BOOL GetItem(PCOMBOBOXEXITEM pCBItem) const
function BOOL (line 8998) | BOOL SetItem(const COMBOBOXEXITEM* lpcCBItem)
function SetItem (line 9004) | int SetItem(int nIndex, UINT nMask, LPCTSTR lpszItem, int nImage, int nS...
function BOOL (line 9020) | BOOL GetItemText(int nIndex, LPTSTR lpszItem, int nLen) const
function BOOL (line 9035) | BOOL GetItemText(int nIndex, BSTR& bstrText) const
function BOOL (line 9074) | BOOL GetItemText(int nIndex, _CSTRING_NS::CString& strText) const
function BOOL (line 9102) | BOOL SetItemText(int nIndex, LPCTSTR lpszItem)
function CComboBox (line 9108) | CComboBox GetComboCtrl() const
function InsertString (line 9133) | int InsertString(int /*nIndex*/, LPCTSTR /*lpszString*/)
function Dir (line 9139) | int Dir(UINT /*attr*/, LPCTSTR /*lpszWildCard*/)
function FindString (line 9145) | int FindString(int /*nStartAfter*/, LPCTSTR /*lpszString*/) const
type CComboBoxExT (line 9152) | typedef CComboBoxExT<ATL::CWindow> CComboBoxEx;
function LPCTSTR (line 9182) | static LPCTSTR GetWndClassName()
function COLORREF (line 9187) | COLORREF GetColor(int nColorType) const
function COLORREF (line 9193) | COLORREF SetColor(int nColorType, COLORREF clr)
function BOOL (line 9199) | BOOL GetCurSel(LPSYSTEMTIME lpSysTime) const
function BOOL (line 9205) | BOOL SetCurSel(LPSYSTEMTIME lpSysTime)
function BOOL (line 9235) | BOOL SetMaxSelCount(int nMax)
function GetMonthDelta (line 9241) | int GetMonthDelta() const
function DWORD (line 9253) | DWORD GetRange(LPSYSTEMTIME lprgSysTimeArray) const
function BOOL (line 9259) | BOOL SetRange(DWORD dwFlags, LPSYSTEMTIME lprgSysTimeArray)
function BOOL (line 9265) | BOOL GetSelRange(LPSYSTEMTIME lprgSysTimeArray) const
function BOOL (line 9271) | BOOL SetSelRange(LPSYSTEMTIME lprgSysTimeArray)
function BOOL (line 9277) | BOOL GetToday(LPSYSTEMTIME lpSysTime) const
function SetToday (line 9283) | void SetToday(LPSYSTEMTIME lpSysTime)
function BOOL (line 9289) | BOOL GetMinReqRect(LPRECT lpRectInfo) const
function GetMaxTodayWidth (line 9295) | int GetMaxTodayWidth() const
function DWORD (line 9328) | DWORD GetCalendarCount() const
function CALID (line 9340) | CALID GetCALID() const
function GetCalendarBorder (line 9352) | int GetCalendarBorder() const
function BOOL (line 9372) | BOOL SetDayState(int nMonths, LPMONTHDAYSTATE lpDayStateArray)
function DWORD (line 9378) | DWORD HitTest(PMCHITTESTINFO pMCHitTest) const
function SizeRectToMin (line 9385) | void SizeRectToMin(LPRECT lpRect)
type CMonthCalendarCtrlT (line 9393) | typedef CMonthCalendarCtrlT<ATL::CWindow> CMonthCalendarCtrl;
function LPCTSTR (line 9421) | static LPCTSTR GetWndClassName()
function BOOL (line 9426) | BOOL SetFormat(LPCTSTR lpszFormat)
function COLORREF (line 9432) | COLORREF GetMonthCalColor(int nColorType) const
function COLORREF (line 9438) | COLORREF SetMonthCalColor(int nColorType, COLORREF clr)
function DWORD (line 9444) | DWORD GetRange(LPSYSTEMTIME lpSysTimeArray) const
function BOOL (line 9450) | BOOL SetRange(DWORD dwFlags, LPSYSTEMTIME lpSysTimeArray)
function DWORD (line 9456) | DWORD GetSystemTime(LPSYSTEMTIME lpSysTime) const
function BOOL (line 9462) | BOOL SetSystemTime(DWORD dwFlags, LPSYSTEMTIME lpSysTime)
function CMonthCalendarCtrl (line 9468) | CMonthCalendarCtrl GetMonthCal() const
function GetDateTimePickerInfo (line 9501) | void GetDateTimePickerInfo(LPDATETIMEPICKERINFO lpPickerInfo) const
function BOOL (line 9507) | BOOL GetIdealSize(LPSIZE lpSize) const
function CloseMonthCal (line 9513) | void CloseMonthCal()
type CDateTimePickerCtrlT (line 9521) | typedef CDateTimePickerCtrlT<ATL::CWindow> CDateTimePickerCtrl;
function HRESULT (line 9541) | HRESULT FlatSB_Uninitialize()
function BOOL (line 9549) | BOOL FlatSB_GetScrollProp(UINT uIndex, LPINT lpnValue) const
function FlatSB_GetScrollPos (line 9564) | int FlatSB_GetScrollPos(int nBar) const
function BOOL (line 9578) | BOOL FlatSB_GetScrollRange(int nBar, LPINT lpMinPos, LPINT lpMaxPos) const
function BOOL (line 9592) | BOOL FlatSB_GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo) const
function BOOL (line 9614) | BOOL FlatSB_EnableScrollBar(UINT uSBFlags, UINT uArrowFlags = ESB_ENABLE...
type CFlatScrollBarT (line 9636) | typedef CFlatScrollBarT<ATL::CWindow> CFlatScrollBar;
function LPCTSTR (line 9668) | static LPCTSTR GetWndClassName()
function BOOL (line 9673) | BOOL IsBlank() const
function SetAddress (line 9685) | void SetAddress(DWORD dwAddress)
function ClearAddress (line 9691) | void ClearAddress()
function SetRange (line 9697) | void SetRange(int nField, WORD wRange)
function SetRange (line 9703) | void SetRange(int nField, BYTE nMin, BYTE nMax)
function SetFocus (line 9709) | void SetFocus(int nField)
type CIPAddressCtrlT (line 9716) | typedef CIPAddressCtrlT<ATL::CWindow> CIPAddressCtrl;
function LPCTSTR (line 9748) | static LPCTSTR GetWndClassName()
function GetButtonSize (line 9753) | int GetButtonSize() const
function DWORD (line 9765) | DWORD GetButtonState(int nButton) const
function COLORREF (line 9772) | COLORREF GetBkColor() const
function GetBorder (line 9784) | int GetBorder() const
function GetPos (line 9796) | int GetPos() const
function SetChild (line 9809) | void SetChild(HWND hWndChild)
function RecalcSize (line 9821) | void RecalcSize()
function GetDropTarget (line 9827) | void GetDropTarget(IDropTarget** ppDropTarget)
type CPagerCtrlT (line 9835) | typedef CPagerCtrlT<ATL::CWindow> CPagerCtrl;
function LPCTSTR (line 9867) | static LPCTSTR GetWndClassName()
function BOOL (line 9882) | BOOL GetItem(PLITEM pLItem) const
function BOOL (line 9888) | BOOL SetItem(PLITEM pLItem)
function BOOL (line 9905) | BOOL HitTest(PLHITTESTINFO pLHitTestInfo) const
type CLinkCtrlT (line 9912) | typedef CLinkCtrlT<ATL::CWindow> CLinkCtrl;
function SetMsgHandled (line 9932) | void SetMsgHandled(BOOL bHandled)
function DWORD (line 9992) | DWORD OnPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 9997) | DWORD OnPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10002) | DWORD OnPreErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10007) | DWORD OnPostErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10012) | DWORD OnItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10017) | DWORD OnItemPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10022) | DWORD OnItemPreErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10027) | DWORD OnItemPostErase(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 10033) | DWORD OnSubItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function GetHeight (line 10067) | int GetHeight() const
function HWND (line 10080) | HWND Create(HWND hWndParent, int nCmdBarID)
function Destroy (line 10087) | void Destroy()
function BOOL (line 10098) | BOOL DrawMenuBar(WORD wButton)
function AddBitmap (line 10110) | int AddBitmap(int nBitmapID, int nNumImages)
function BOOL (line 10116) | BOOL AddButtons(UINT uNumButtons, LPTBBUTTON lpButtons)
function BOOL (line 10122) | BOOL AddToolTips(UINT uNumToolTips, LPTSTR lpToolTips)
function BOOL (line 10128) | BOOL InsertButton(int nButton, LPTBBUTTON lpButton)
function HWND (line 10134) | HWND InsertComboBox(int nWidth, UINT dwStyle, WORD wComboBoxID, WORD wBu...
function BOOL (line 10140) | BOOL InsertMenubar(WORD wMenuID, WORD wButton)
function BOOL (line 10146) | BOOL InsertMenubarEx(ATL::_U_STRINGorID menu, WORD wButton)
function BOOL (line 10152) | BOOL IsCommandBarMessage(LPMSG lpMsg)
type CCECommandBarCtrlT (line 10162) | typedef CCECommandBarCtrlT<CToolBarCtrl> CCECommandBarCtrl;
function UINT (line 10188) | UINT GetHeight() const
function BOOL (line 10201) | BOOL GetRestoreInformation(UINT uBand, LPCOMMANDBANDSRESTOREINFO pcbr) c...
function BOOL (line 10221) | BOOL AddBands(UINT uBandCount, LPREBARBANDINFO prbbi)
type CCECommandBandsCtrlT (line 10234) | typedef CCECommandBandsCtrlT<ATL::CWindow> CCECommandBandsCtrl;
FILE: src/Setup/wtl90/atlctrlw.h
function namespace (line 56) | namespace WTL
type _ToolBarData (line 221) | struct _ToolBarData // toolbar resource data
type _CmdBarDrawConstants (line 234) | enum _CmdBarDrawConstants
function COLORREF (line 370) | COLORREF SetImageMaskColor(COLORREF clrMask)
function SetImagesVisible (line 382) | bool SetImagesVisible(bool bVisible)
function GetImageSize (line 389) | void GetImageSize(SIZE& size) const
function SetImageSize (line 394) | bool SetImageSize(SIZE& size)
function SetImageSize (line 399) | bool SetImageSize(int cx, int cy)
function SetAlphaImages (line 430) | bool SetAlphaImages(bool bAlphaImages)
function HWND (line 449) | HWND GetCmdBar() const
function BOOL (line 484) | BOOL LoadMenu(ATL::_U_STRINGorID menu)
function BOOL (line 500) | BOOL AttachMenu(HMENU hMenu)
function BOOL (line 589) | BOOL LoadImages(ATL::_U_STRINGorID image)
function BOOL (line 683) | BOOL AddBitmap(ATL::_U_STRINGorID bitmap, int nCommandID)
function BOOL (line 693) | BOOL AddBitmap(HBITMAP hBitmap, UINT nCommandID)
function BOOL (line 728) | BOOL AddIcon(ATL::_U_STRINGorID icon, UINT nCommandID)
function BOOL (line 737) | BOOL AddIcon(HICON hIcon, UINT nCommandID)
function BOOL (line 763) | BOOL ReplaceBitmap(ATL::_U_STRINGorID bitmap, int nCommandID)
function BOOL (line 773) | BOOL ReplaceBitmap(HBITMAP hBitmap, UINT nCommandID)
function BOOL (line 802) | BOOL ReplaceIcon(ATL::_U_STRINGorID icon, UINT nCommandID)
function BOOL (line 811) | BOOL ReplaceIcon(HICON hIcon, UINT nCommandID)
function BOOL (line 833) | BOOL RemoveImage(int nCommandID)
function BOOL (line 861) | BOOL RemoveAllImages()
function BOOL (line 895) | BOOL SetMDIClient(HWND /*hWndMDIClient*/)
function MESSAGE_HANDLER (line 903) | BEGIN_MSG_MAP(CCommandBarCtrlImpl)
function LRESULT (line 972) | LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandl...
function LRESULT (line 1036) | LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHand...
function LRESULT (line 1095) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHa...
function LRESULT (line 1129) | LRESULT OnKeyUp(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 1215) | LRESULT OnEraseBackground(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*...
function LRESULT (line 1231) | LRESULT OnInitMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, ...
function LRESULT (line 1344) | LRESULT OnMenuSelect(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHan...
function LRESULT (line 1404) | LRESULT OnInternalAutoPopup(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lPara...
function LRESULT (line 1412) | LRESULT OnInternalGetBar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 1423) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/,...
function LRESULT (line 1441) | LRESULT OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam, BOO...
function LRESULT (line 1453) | LRESULT OnMenuChar(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bH...
function LRESULT (line 1588) | LRESULT OnDrawItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL...
function LRESULT (line 1604) | LRESULT OnMeasureItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 1626) | LRESULT OnAPITrackPopupMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lPa...
function LRESULT (line 1644) | LRESULT OnParentHotItemChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 1689) | LRESULT OnParentDropDown(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 1710) | LRESULT OnParentInitMenuPopup(UINT uMsg, WPARAM wParam, LPARAM lParam, B...
function LRESULT (line 1715) | LRESULT OnParentInternalGetBar(UINT uMsg, WPARAM wParam, LPARAM lParam, ...
function LRESULT (line 1720) | LRESULT OnParentSysCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam...
function LRESULT (line 1751) | LRESULT OnParentAPIGetMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL...
function LRESULT (line 1756) | LRESULT OnParentMenuChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& ...
function LRESULT (line 1761) | LRESULT OnParentAPITrackPopupMenu(UINT uMsg, WPARAM wParam, LPARAM lPara...
function LRESULT (line 1766) | LRESULT OnParentAPIGetCmdBar(UINT uMsg, WPARAM wParam, LPARAM lParam, BO...
function LRESULT (line 1771) | LRESULT OnParentSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, B...
function LRESULT (line 1778) | LRESULT OnParentDrawItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& ...
function LRESULT (line 1783) | LRESULT OnParentMeasureItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOO...
function LRESULT (line 1788) | LRESULT OnParentActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 1804) | LRESULT OnParentCustomDraw(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function _ParentCustomDrawHelper (line 1875) | void _ParentCustomDrawHelper(LPNMTBCUSTOMDRAW lpTBCustomDraw)
function LRESULT (line 1902) | LRESULT OnHookMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara...
function LRESULT (line 1945) | LRESULT OnHookSysKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 1975) | LRESULT OnHookSysKeyUp(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, ...
function LRESULT (line 1987) | LRESULT OnHookSysChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, B...
function LRESULT (line 1999) | LRESULT OnHookKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, B...
function LRESULT (line 2134) | LRESULT OnHookChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL...
function DrawItem (line 2144) | void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
function DrawItem3D (line 2154) | void DrawItem3D(LPDRAWITEMSTRUCT lpDrawItemStruct)
function DrawItemFlat (line 2271) | void DrawItemFlat(LPDRAWITEMSTRUCT lpDrawItemStruct)
function DrawMenuText (line 2371) | void DrawMenuText(CDCHandle& dc, RECT& rc, LPCTSTR lpstrText, COLORREF c...
function DrawBitmapDisabled (line 2388) | void DrawBitmapDisabled(CDCHandle& dc, int nImage, POINT point,
function BOOL (line 2435) | BOOL Draw3DCheckmark(CDCHandle& dc, const RECT& rc, BOOL bSelected, BOOL...
function BOOL (line 2440) | BOOL DrawCheckmark(CDCHandle& dc, const RECT& rc, BOOL bSelected, BOOL b...
function MeasureItem (line 2598) | void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
function LRESULT (line 2657) | static LRESULT CALLBACK CreateHookProc(int nCode, WPARAM wParam, LPARAM ...
function LRESULT (line 2691) | static LRESULT CALLBACK MessageHookProc(int nCode, WPARAM wParam, LPARAM...
function DoPopupMenu (line 2733) | void DoPopupMenu(int nIndex, bool bAnimate)
function GetPreviousMenuItem (line 2892) | int GetPreviousMenuItem(int nBtn) const
function GetNextMenuItem (line 2922) | int GetNextMenuItem(int nBtn) const
function DisplayChevronMenu (line 2954) | bool DisplayChevronMenu()
function TakeFocus (line 3093) | void TakeFocus()
function GiveFocusBack (line 3100) | void GiveFocusBack()
function ShowKeyboardCues (line 3116) | void ShowKeyboardCues(bool bShow)
function UINT (line 3125) | static UINT GetAutoPopupMessage()
function UINT (line 3147) | static UINT GetGetBarMessage()
function CreateInternalImageList (line 3170) | bool CreateInternalImageList(int cImages)
function _AddVistaBitmapsFromImageList (line 3180) | void _AddVistaBitmapsFromImageList(int nStartIndex, int nCount)
function _AddVistaBitmapFromImageList (line 3198) | void _AddVistaBitmapFromImageList(int nIndex)
function _ReplaceVistaBitmapFromImageList (line 3215) | void _ReplaceVistaBitmapFromImageList(int nIndex)
function HBITMAP (line 3236) | HBITMAP _CreateVistaBitmapHelper(int nIndex, HDC hDCSource, HDC hDCTarget)
function _RemoveVistaBitmapsFromMenu (line 3279) | void _RemoveVistaBitmapsFromMenu()
function class (line 3294) | class CCommandBarCtrl : public CCommandBarCtrlImpl<CCommandBarCtrl>
function BOOL (line 3361) | BOOL SetMDIClient(HWND hWndMDIClient)
type CCommandBarCtrlImpl (line 3386) | typedef CCommandBarCtrlImpl< T, TBase, TWinTraits > _baseClass;
function MESSAGE_HANDLER (line 3387) | BEGIN_MSG_MAP(CMDICommandBarCtrlImpl)
function LRESULT (line 3446) | LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
function LRESULT (line 3476) | LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
function LRESULT (line 3484) | LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bH...
function LRESULT (line 3506) | LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHand...
function LRESULT (line 3587) | LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHa...
function LRESULT (line 3609) | LRESULT OnNcLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam,...
function LRESULT (line 3690) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 3719) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 3772) | LRESULT OnNcLButtonDblClk(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lPara...
function LRESULT (line 3832) | LRESULT OnParentActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/...
function LRESULT (line 3841) | LRESULT OnMDISetMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bH...
function LRESULT (line 3858) | LRESULT OnAllHookMessages(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&...
function UpdateRebarBandIdealSize (line 3869) | void UpdateRebarBandIdealSize()
function _ProcessAllHookMessages (line 3896) | void _ProcessAllHookMessages(UINT uMsg, WPARAM /*wParam*/, LPARAM /*lPar...
function GetSystemSettings (line 4000) | void GetSystemSettings()
function _AdjustBtnSize (line 4038) | void _AdjustBtnSize(int cyHeight)
function _DrawMDIButton (line 4100) | void _DrawMDIButton(CWindowDC& dc, LPRECT pRects, int nBtn)
function UINT (line 4139) | static UINT _GetThemeChangedMsg()
function _OpenThemeData (line 4147) | void _OpenThemeData()
function _CloseThemeData (line 4157) | void _CloseThemeData()
function _DebugCheckChild (line 4174) | bool _DebugCheckChild()
function class (line 4186) | class CMDICommandBarCtrl : public CMDICommandBarCtrlImpl<CMDICommandBarC...
FILE: src/Setup/wtl90/atlctrlx.h
function namespace (line 51) | namespace WTL
function HIMAGELIST (line 179) | HIMAGELIST SetImageList(HIMAGELIST hImageList)
function GetToolTipText (line 194) | bool GetToolTipText(LPTSTR lpstrText, int nLength) const
function SetToolTipText (line 205) | bool SetToolTipText(LPCTSTR lpstrText)
function BOOL (line 264) | BOOL SizeToImage()
function DoPaint (line 275) | void DoPaint(CDCHandle dc)
function MESSAGE_HANDLER (line 320) | BEGIN_MSG_MAP(CBitmapButtonImpl)
function LRESULT (line 362) | LRESULT OnMouseMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bH...
function LRESULT (line 376) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function LRESULT (line 391) | LRESULT OnFocus(UINT uMsg, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 400) | LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 424) | LRESULT OnLButtonDblClk(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /...
function LRESULT (line 440) | LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHa...
function LRESULT (line 477) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 515) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL&...
function LRESULT (line 529) | LRESULT OnKeyUp(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 545) | LRESULT OnTimer(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function Init (line 582) | void Init()
function BOOL (line 600) | BOOL StartTrackMouseLeave()
function class (line 620) | class CBitmapButton : public CBitmapButtonImpl<CBitmapButton>
function DWORD (line 645) | static DWORD GetWndExStyle(DWORD dwExStyle)
function DWORD (line 650) | static DWORD GetExtendedLVStyle()
type CCheckListViewCtrlImplTraits (line 656) | typedef CCheckListViewCtrlImplTraits<WS_CHILD | WS_VISIBLE | LVS_REPORT ...
function BOOL (line 671) | BOOL SubclassWindow(HWND hWnd)
function CheckSelectedItems (line 688) | void CheckSelectedItems(int nCurrItem)
function Init (line 713) | void Init()
function MESSAGE_HANDLER (line 722) | BEGIN_MSG_MAP(CCheckListViewCtrlImpl)
function LRESULT (line 742) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 756) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL&...
function class (line 772) | class CCheckListViewCtrl : public CCheckListViewCtrlImpl<CCheckListViewC...
function GetLabel (line 898) | bool GetLabel(LPTSTR lpstrBuffer, int nLength) const
function SetLabel (line 911) | bool SetLabel(LPCTSTR lpstrLabel)
function GetHyperLink (line 930) | bool GetHyperLink(LPTSTR lpstrBuffer, int nLength) const
function SetHyperLink (line 943) | bool SetHyperLink(LPCTSTR lpstrLink)
function SetLinkFont (line 973) | void SetLinkFont(HFONT hFont)
function GetIdealHeight (line 987) | int GetIdealHeight() const
function GetIdealSize (line 1022) | bool GetIdealSize(int& cx, int& cy) const
function GetToolTipText (line 1103) | bool GetToolTipText(LPTSTR lpstrBuffer, int nLength) const
function SetToolTipText (line 1109) | bool SetToolTipText(LPCTSTR lpstrToolTipText)
function BOOL (line 1116) | BOOL SubclassWindow(HWND hWnd)
function Navigate (line 1138) | bool Navigate()
function CreateLinkFontFromNormal (line 1173) | void CreateLinkFontFromNormal()
function MESSAGE_HANDLER (line 1196) | BEGIN_MSG_MAP(CHyperLinkImpl)
function LRESULT (line 1259) | LRESULT OnMouseMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bH...
function LRESULT (line 1274) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& b...
function LRESULT (line 1307) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1355) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 1366) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1381) | LRESULT OnChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*...
function LRESULT (line 1396) | LRESULT OnSetCursor(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,...
function LRESULT (line 1421) | LRESULT OnSetFont(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 1455) | LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL...
function COLORREF (line 1577) | static COLORREF _ParseColorString(LPTSTR lpstr)
function CalcLabelRect (line 1603) | bool CalcLabelRect()
function CalcLabelParts (line 1682) | void CalcLabelParts(LPTSTR& lpstrLeft, int& cchLeft, LPTSTR& lpstrLink, ...
function DoEraseBackground (line 1729) | void DoEraseBackground(CDCHandle dc)
function DoPaint (line 1740) | void DoPaint(CDCHandle dc)
function BOOL (line 1820) | BOOL StartTrackMouseLeave()
function class (line 1882) | class CHyperLink : public CHyperLinkImpl<CHyperLink>
function class (line 1940) | class CCustomWaitCursor : public CWaitCursor
type ATL (line 1995) | typedef ATL::CWindowImpl< T, TBase > _baseClass;
function BOOL (line 2118) | BOOL GetPaneRect(int nPaneID, LPRECT lpRect) const
function BOOL (line 2128) | BOOL SetPaneWidth(int nPaneID, int cxWidth)
function BOOL (line 2172) | BOOL GetPaneTipText(int nPaneID, LPTSTR lpstrText, int nSize) const
function BOOL (line 2183) | BOOL SetPaneTipText(int nPaneID, LPCTSTR lpstrText)
function BOOL (line 2196) | BOOL GetPaneIcon(int nPaneID, HICON& hIcon) const
function BOOL (line 2207) | BOOL SetPaneIcon(int nPaneID, HICON hIcon)
function GetPaneIndexFromID (line 2273) | int GetPaneIndexFromID(int nPaneID) const
function class (line 2285) | class CMultiPaneStatusBarCtrl : public CMultiPaneStatusBarCtrlImpl<CMult...
function HWND (line 2398) | HWND SetClient(HWND hWndClient)
function BOOL (line 2410) | BOOL GetTitle(LPTSTR lpstrTitle, int cchLength) const
function BOOL (line 2419) | BOOL SetTitle(LPCTSTR lpstrTitle)
type ATL (line 2448) | typedef ATL::CWindowImpl< T, TBase, TWinTraits > _baseClass;
type ATL (line 2461) | typedef ATL::CWindowImpl< T, TBase, TWinTraits > _baseClass;
function BOOL (line 2466) | BOOL SubclassWindow(HWND hWnd)
function BOOL (line 2487) | BOOL EnableCloseButton(BOOL bEnable)
function UpdateLayout (line 2495) | void UpdateLayout()
function MESSAGE_HANDLER (line 2504) | BEGIN_MSG_MAP(CPaneContainerImpl)
function LRESULT (line 2541) | LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*...
function LRESULT (line 2560) | LRESULT OnSetFont(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 2584) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function LRESULT (line 2606) | LRESULT OnNotify(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& ...
function LRESULT (line 2635) | LRESULT OnCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHa...
function DWORD (line 2646) | DWORD OnPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW /*lpNMCustomDraw*/)
function DWORD (line 2651) | DWORD OnItemPrePaint(int /*idCtrl*/, LPNMCUSTOMDRAW lpNMCustomDraw)
function DWORD (line 2666) | DWORD OnItemPostPaint(int /*idCtrl*/, LPNMCUSTOMDRAW lpNMCustomDraw)
function Init (line 2704) | void Init()
function UpdateLayout (line 2734) | void UpdateLayout(int cxWidth, int cyHeight)
function CreateCloseButton (line 2765) | void CreateCloseButton()
function DestroyCloseButton (line 2795) | void DestroyCloseButton()
function CalcSize (line 2801) | void CalcSize()
function BOOL (line 2827) | BOOL GetToolTipText(LPNMHDR /*lpnmh*/)
function DrawPaneTitle (line 2833) | void DrawPaneTitle(CDCHandle dc)
function DrawPane (line 2897) | void DrawPane(CDCHandle dc)
function DrawButtonImage (line 2911) | void DrawButtonImage(CDCHandle dc, RECT& rcImage, HPEN hPen)
function class (line 2940) | class CPaneContainer : public CPaneContainerImpl<CPaneContainer>
function CreateSortBitmaps (line 3297) | void CreateSortBitmaps()
function NotifyParentSortChanged (line 3355) | void NotifyParentSortChanged(int iNewSortCol, int iOldSortCol)
function CompareItemsCustom (line 3364) | int CompareItemsCustom(LVCompareParam* /*pItem1*/, LVCompareParam* /*pIt...
function DrawSortBitmap (line 3371) | void DrawSortBitmap(CDCHandle dc, int iBitmap, LPRECT prc)
function DateStrToDouble (line 3403) | double DateStrToDouble(LPCTSTR lpstr, DWORD dwFlags)
function StrToLong (line 3420) | long StrToLong(LPCTSTR lpstr)
function StrToDouble (line 3437) | double StrToDouble(LPCTSTR lpstr)
function StrToDecimal (line 3454) | bool StrToDecimal(LPCTSTR lpstr, DECIMAL* pDecimal)
function LVCompareText (line 3475) | static int CALLBACK LVCompareText(LPARAM lParam1, LPARAM lParam2, LPARAM...
function LVCompareTextNoCase (line 3487) | static int CALLBACK LVCompareTextNoCase(LPARAM lParam1, LPARAM lParam2, ...
function LVCompareLong (line 3499) | static int CALLBACK LVCompareLong(LPARAM lParam1, LPARAM lParam2, LPARAM...
function LVCompareDouble (line 3515) | static int CALLBACK LVCompareDouble(LPARAM lParam1, LPARAM lParam2, LPAR...
function LVCompareCustom (line 3531) | static int CALLBACK LVCompareCustom(LPARAM lParam1, LPARAM lParam2, LPAR...
function LVCompareDecimal (line 3544) | static int CALLBACK LVCompareDecimal(LPARAM lParam1, LPARAM lParam2, LPA...
function CompareMantissas (line 3558) | static int CompareMantissas(const DECIMAL& decLeft, const DECIMAL& decRi...
function HRESULT (line 3581) | static HRESULT VarDecCmp(const DECIMAL* pdecLeft, const DECIMAL* pdecRight)
function LVCompareDecimal (line 3684) | static int CALLBACK LVCompareDecimal(LPARAM lParam1, LPARAM lParam2, LPA...
function MESSAGE_HANDLER (line 3698) | BEGIN_MSG_MAP(CSortListViewImpl)
function LRESULT (line 3728) | LRESULT OnDeleteColumn(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*...
function LRESULT (line 3745) | LRESULT OnHeaderItemClick(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 3759) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/,...
function GetSystemSettings (line 3772) | void GetSystemSettings()
type ATL (line 3786) | typedef ATL::CWinTraits<WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLI...
function MESSAGE_HANDLER (line 3799) | BEGIN_MSG_MAP(CSortListViewCtrlImpl)
type TCITEMEXTRA (line 3846) | struct TCITEMEXTRA
function BOOL (line 3926) | BOOL PreTranslateMessage(MSG* pMsg)
function GetPageCount (line 3979) | int GetPageCount() const
function SetActivePage (line 3990) | void SetActivePage(int nPage)
function HIMAGELIST (line 4017) | HIMAGELIST GetImageList() const
function SetWindowMenu (line 4029) | void SetWindowMenu(HMENU hMenu)
function SetTitleBarWindow (line 4039) | void SetTitleBarWindow(HWND hWnd)
function HWND (line 4061) | HWND GetPageHWND(int nPage) const
function LPCTSTR (line 4073) | LPCTSTR GetPageTitle(int nPage) const
function SetPageTitle (line 4086) | bool SetPageTitle(int nPage, LPCTSTR lpstrTitle)
function LPVOID (line 4126) | LPVOID GetPageData(int nPage) const
function LPVOID (line 4138) | LPVOID SetPageData(int nPage, LPVOID pData)
function GetPageImage (line 4154) | int GetPageImage(int nPage) const
function SetPageImage (line 4166) | int SetPageImage(int nPage, int nImage)
function RemovePage (line 4245) | void RemovePage(int nPage)
function RemoveAllPages (line 4297) | void RemoveAllPages()
function PageIndexFromHwnd (line 4332) | int PageIndexFromHwnd(HWND hWnd) const
function BOOL (line 4464) | BOOL SubclassWindow(HWND hWnd)
function MESSAGE_HANDLER (line 4483) | BEGIN_MSG_MAP(CTabViewImpl)
function LRESULT (line 4535) | LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL...
function LRESULT (line 4554) | LRESULT OnSetFont(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*b...
function LRESULT (line 4575) | LRESULT OnTabChanged(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
function LRESULT (line 4584) | LRESULT OnTabNotification(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHan...
function LRESULT (line 4592) | LRESULT OnTabGetDispInfo(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled)
function LRESULT (line 4610) | LRESULT OnTabLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam...
function LRESULT (line 4625) | LRESULT OnTabLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, ...
function LRESULT (line 4672) | LRESULT OnTabMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, ...
function class (line 5088) | class CTabView : public CTabViewImpl<CTabView>
FILE: src/Setup/wtl90/atlddx.h
function namespace (line 36) | namespace WTL
function BOOL (line 412) | static BOOL _AtlSimpleFloatParse(LPCTSTR lpszText, double& d)
function DDX_Check (line 541) | void DDX_Check(UINT nID, int& nValue, BOOL bSave)
function DDX_Check (line 562) | void DDX_Check(UINT nID, bool& bCheck, BOOL bSave)
function DDX_Radio (line 575) | void DDX_Radio(UINT nID, int& nValue, BOOL bSave)
function _setSel (line 645) | void _setSel(WTL::CListViewCtrl& tCtrl, INT iSel)
function OnDataExchangeError (line 668) | void OnDataExchangeError(UINT nCtrlID, BOOL /*bSave*/)
function OnDataValidateError (line 676) | void OnDataValidateError(UINT nCtrlID, BOOL /*bSave*/, _XData& /*data*/)
FILE: src/Setup/wtl90/atldlgs.h
function namespace (line 101) | namespace WTL
function NOTIFY_CODE_HANDLER (line 304) | BEGIN_MSG_MAP(CFileDialogImpl)
function LRESULT (line 324) | LRESULT _OnFolderChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 332) | LRESULT _OnHelp(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 340) | LRESULT _OnInitDone(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 348) | LRESULT _OnSelChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 356) | LRESULT _OnShareViolation(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 363) | LRESULT _OnTypeChange(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function LRESULT (line 372) | LRESULT _OnIncludeItem(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
function BOOL (line 381) | BOOL OnFileOK(LPOFNOTIFY /*lpon*/)
function OnFolderChange (line 386) | void OnFolderChange(LPOFNOTIFY /*lpon*/)
function OnHelp (line 390) | void OnHelp(LPOFNOTIFY /*lpon*/)
function OnInitDone (line 394) | void OnInitDone(LPOFNOTIFY /*lpon*/)
function OnSelChange (line 398) | void OnSelChange(LPOFNOTIFY /*lpon*/)
function OnShareViolation (line 402) | int OnShareViolation(LPOFNOTIFY /*lpon*/)
function OnTypeChange (line 407) | void OnTypeChange(LPOFNOTIFY /*lpon*/)
function BOOL (line 412) | BOOL OnIncludeItem(LPOFNOTIFYEX /*lponex*/)
function class (line 419) | class CFileDialog : public CFileDialogImpl<CFileDialog>
function INT_PTR (line 1701) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function GetCurrentFont (line 1734) | void GetCurrentFont(LPLOGFONT lplf) const
function SetLogFont (line 1746) | void SetLogFont(LPLOGFONT lplf)
function SetFlags (line 1763) | void SetFlags(DWORD dwFlags)
function ATL_NO_VTABLE (line 1850) | ATL_NO_VTABLE CRichEditFontDialogImpl : public CFontDialogImpl< T >
function ATL_NO_VTABLE (line 2011) | ATL_NO_VTABLE CColorDialogImpl : public CCommonDialogImplBase
function INT_PTR (line 2035) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function SetCurrentColor (line 2065) | void SetCurrentColor(COLORREF clr)
function UINT_PTR (line 2078) | static UINT_PTR APIENTRY HookProc(HWND hWnd, UINT uMsg, WPARAM wParam, L...
function COLORREF (line 2121) | static COLORREF* GetCustomColors()
function UINT (line 2138) | static UINT _GetSetRGBMessage()
function UINT (line 2160) | static UINT _GetColorOKMessage()
function MESSAGE_HANDLER (line 2183) | BEGIN_MSG_MAP(CColorDialogImpl)
function BOOL (line 2194) | BOOL OnColorOK() // validate color
function HDC (line 2220) | static inline HDC _AtlCreateDC(HGLOBAL hDevNames, HGLOBAL hDevMode)
function ATL_NO_VTABLE (line 2246) | ATL_NO_VTABLE CPrintDialogImpl : public CCommonDialogImplBase
function INT_PTR (line 2275) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function BOOL (line 2308) | BOOL GetDefaults()
function HDC (line 2419) | HDC CreatePrinterDC()
function m_pd (line 2429) | m_pd(pdInit)
function LRESULT (line 2440) | LRESULT OnPrintSetup(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& /*b...
function namespace (line 2478) | namespace WTL
function HRESULT (line 2533) | HRESULT GetDefaults()
function HDC (line 2640) | HDC CreatePrinterDC()
function STDMETHOD (line 2649) | STDMETHOD(QueryInterface)(REFIID riid, void** ppvObject)
function STDMETHODCALLTYPE (line 2671) | STDMETHODCALLTYPE AddRef()
function STDMETHODCALLTYPE (line 2676) | STDMETHODCALLTYPE Release()
function STDMETHOD (line 2682) | STDMETHOD(InitDone)()
function STDMETHOD (line 2687) | STDMETHOD(SelectionChange)()
function STDMETHOD (line 2692) | STDMETHOD(HandleMessage)(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa...
function class (line 2710) | class CPrintDialogEx : public CPrintDialogExImpl<CPrintDialogEx>
function DoInitTemplate (line 3701) | void DoInitTemplate()
function DoInitControls (line 3706) | void DoInitControls()
function class (line 3716) | class CPropertySheetWindow : public ATL::CWindow
function GetPageCount (line 3730) | int GetPageCount() const
function GetActiveIndex (line 3744) | int GetActiveIndex() const
function BOOL (line 3758) | BOOL SetActivePage(HPROPSHEETPAGE hPage)
function BOOL (line 3765) | BOOL SetActivePageByID(int nPageID)
function SetFinishText (line 3785) | void SetFinishText(LPCTSTR lpszText)
function SetWizardButtons (line 3791) | void SetWizardButtons(DWORD dwFlags)
function BOOL (line 3798) | BOOL AddPage(HPROPSHEETPAGE hPage)
function BOOL (line 3805) | BOOL AddPage(LPCPROPSHEETPAGE pPage)
function BOOL (line 3816) | BOOL InsertPage(int nNewPageIndex, HPROPSHEETPAGE hPage)
function BOOL (line 3823) | BOOL InsertPage(int nNewPageIndex, LPCPROPSHEETPAGE pPage)
function BOOL (line 3833) | BOOL InsertPage(HPROPSHEETPAGE hPageInsertAfter, HPROPSHEETPAGE hPage)
function BOOL (line 3840) | BOOL InsertPage(HPROPSHEETPAGE hPageInsertAfter, LPCPROPSHEETPAGE pPage)
function RemovePage (line 3851) | void RemovePage(int nPageIndex)
function RemovePage (line 3857) | void RemovePage(HPROPSHEETPAGE hPage)
function BOOL (line 3864) | BOOL PressButton(int nButton)
function BOOL (line 3870) | BOOL Apply()
function CancelToClose (line 3876) | void CancelToClose()
function LRESULT (line 3890) | LRESULT QuerySiblings(WPARAM wParam, LPARAM lParam)
function RebootSystem (line 3896) | void RebootSystem()
function RestartWindows (line 3902) | void RestartWindows()
function BOOL (line 3908) | BOOL IsDialogMessage(LPMSG lpMsg)
function HwndToIndex (line 3915) | int HwndToIndex(HWND hWnd) const
function HWND (line 3921) | HWND IndexToHwnd(int nIndex) const
function PageToIndex (line 3927) | int PageToIndex(HPROPSHEETPAGE hPage) const
function HPROPSHEETPAGE (line 3933) | HPROPSHEETPAGE IndexToPage(int nIndex) const
function IdToIndex (line 3939) | int IdToIndex(int nID) const
function IndexToId (line 3945) | int IndexToId(int nIndex) const
function GetResult (line 3951) | int GetResult() const
function SetHeaderTitle (line 3963) | void SetHeaderTitle(int nIndex, LPCTSTR lpstrHeaderTitle)
function SetHeaderSubTitle (line 3969) | void SetHeaderSubTitle(int nIndex, LPCTSTR lpstrHeaderSubTitle)
function HWND (line 3977) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
function PropSheetCallback (line 4033) | static int CALLBACK PropSheetCallback(HWND hWnd, UINT uMsg, LPARAM lParam)
function OnSheetInitialized (line 4086) | void OnSheetInitialized()
function INT_PTR (line 4123) | INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
function _CleanUpPages (line 4154) | void _CleanUpPages()
function HPROPSHEETPAGE (line 4178) | HPROPSHEETPAGE GetPage(int nPageIndex) const
function GetPageIndex (line 4184) | int GetPageIndex(HPROPSHEETPAGE hPage) const
function BOOL (line 4190) | BOOL SetActivePage(int nPageIndex)
function BOOL (line 4201) | BOOL SetActivePage(HPROPSHEETPAGE hPage)
function SetLinkText (line 4236) | void SetLinkText(LPCTSTR lpszText)
function SetWizardMode (line 4244) | void SetWizardMode()
function EnableHelp (line 4249) | void EnableHelp()
function BOOL (line 4255) | BOOL AddPage(HPROPSHEETPAGE hPage)
function BOOL (line 4266) | BOOL AddPage(LPCPROPSHEETPAGE pPage)
function BOOL (line 4278) | BOOL RemovePage(HPROPSHEETPAGE hPage)
function BOOL (line 4293) | BOOL RemovePage(int nPageIndex)
function SetHeader (line 4304) | void SetHeader(LPCTSTR szbmHeader)
function SetHeader (line 4313) | void SetHeader(HBITMAP hbmHeader)
function StretchWatermark (line 4352) | void StretchWatermark(bool bStretchWatermark)
function MESSAGE_HANDLER (line 4363) | BEGIN_MSG_MAP(CPropertySheetImpl)
function LRESULT (line 4377) | LRESULT OnSysCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BO...
function class (line 4395) | class CPropertySheet : public CPropertySheetImpl<CPropertySheet>
function class (line 4407) | class CPropertyPageWindow : public ATL::CWindow
function CPropertySheetWindow (line 4421) | CPropertySheetWindow GetPropertySheet() const
function CancelToClose (line 4435) | void CancelToClose()
function LRESULT (line 4449) | LRESULT QuerySiblings(WPARAM wParam, LPARAM lParam)
function RebootSystem (line 4456) | void RebootSystem()
function RestartWindows (line 4463) | void RestartWindows()
function SetWizardButtons (line 4470) | void SetWizardButtons(DWORD dwFlags)
function HWND (line 4478) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
function BOOL (line 4997) | BOOL PreTranslateMessage(LPMSG pMsg)
function OnTranslateAccelerator (line 5020) | int OnTranslateAccelerator(LPMSG lpMsg)
function BOOL (line 5026) | BOOL OnTranslateAccelerator(LPMSG lpMsg)
function GetIDD (line 5036) | int GetIDD()
function virtual (line 5041) | virtual DLGPROC GetDialogProc()
function INT_PTR (line 5046) | static INT_PTR CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, ...
function virtual (line 5062) | virtual HRESULT CreateActiveXControls(UINT nID)
function HRESULT (line 5197) | HRESULT AdviseSinkMap(bool bAdvise)
type CPropertyPageImpl (line 5215) | typedef CPropertyPageImpl< T, TBase> _baseClass;
function MESSAGE_HANDLER (line 5216) | BEGIN_MSG_MAP(CAxPropertyPageImpl)
function LRESULT (line 5231) | LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, B...
function HFONT (line 5344) | HFONT GetExteriorPageTitleFont(void)
function HFONT (line 5350) | HFONT GetBulletFont(void)
function UINT (line 5357) | static UINT GetMessage_GetExteriorPageTitleFont()
function UINT (line 5379) | static UINT GetMessage_GetBulletFont()
function HWND (line 5402) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
function OnSheetInitialized (line 5442) | void OnSheetInitialized()
function _InitializeFonts (line 5452) | void _InitializeFonts()
function MESSAGE_HANDLER (line 5486) | BEGIN_MSG_MAP(thisClass)
function class (line 5517) | class CWizard97Sheet : public CWizard97SheetImpl<CWizard97Sheet>
function class (line 5544) | class CWizard97PageWindow : public CPropertyPageWindow
function CWizard97SheetWindow (line 5558) | CWizard97SheetWindow GetPropertySheet() const
function HFONT (line 5571) | HFONT GetBulletFont(void)
function HWND (line 5578) | HWND Create(LPCTSTR, HWND, ATL::_U_RECT = NULL, LPCTSTR = NULL, DWORD = ...
type CPropertyPageImpl (line 5618) | typedef CPropertyPageImpl< T, TBase > baseClass;
type CPropertyPageImpl (line 5644) | typedef CPropertyPageImpl< T, TBase > baseClass;
function class (line 5677) | class CAeroWizardFrameWindow : public CPropertySheetWindow
function SetNextText (line 5691) | void SetNextText(LPCWSTR lpszText)
function ShowWizardButtons (line 5697) | void ShowWizardButtons(DWORD dwButtons, DWORD dwStates)
function EnableWizardButtons (line 5703) | void EnableWizardButtons(DWORD dwButtons, DWORD dwStates)
function SetButtonText (line 5709) | void SetButtonText(DWORD dwButton, LPCWSTR lpszText)
function EnableResizing (line 5732) | void EnableResizing()
function UseHeaderBitmap (line 5738) | void UseHeaderBitmap()
function SetNoMargin (line 5744) | void SetNoMargin()
function class (line 5762) | class CAeroWizardFrame : public CAeroWizardFrameImpl<CAeroWizardFrame>
function class (line 5778) | class CAeroWizardPageWindow : public CPropertyPageWindow
function CAeroWizardFrameWindow (line 5792) | CAeroWizardFrameWindow GetAeroWizardFrame() const
function ShowWizardButtons (line 5807) | void ShowWizardButtons(DWORD dwButtons, DWORD dwStates)
function EnableWizardButtons (line 5814) | void EnableWizardButtons(DWORD dwButtons, DWORD dwStates)
function SetButtonText (line 5821) | void SetButtonText(DWORD dwButton, LPCWSTR lpszText)
function class (line 5957) | class CTaskDialogConfig : public TASKDIALOGCONFIG
function SetDefaultButton (line 6041) | void SetDefaultButton(int nDefaultButton)
function SetDefaultRadioButton (line 6055) | void SetDefaultRadioButton(int nDefaultRadioButton)
function SetVerificationText (line 6061) | void SetVerificationText(UINT nID)
function SetVerificationText (line 6066) | void SetVerificationText(LPCWSTR lpstrVerificationText)
function SetExpandedInformationText (line 6072) | void SetExpandedInformationText(UINT nID)
function SetExpandedInformationText (line 6077) | void SetExpandedInformationText(LPCWSTR lpstrExpandedInformation)
function SetExpandedControlText (line 6083) | void SetExpandedControlText(UINT nID)
function SetExpandedControlText (line 6088) | void SetExpandedControlText(LPCWSTR lpstrExpandedControlText)
function SetCollapsedControlText (line 6094) | void SetCollapsedControlText(UINT nID)
function SetCollapsedControlText (line 6099) | void SetCollapsedControlText(LPCWSTR lpstrCollapsedControlText)
function SetFooterIcon (line 6105) | void SetFooterIcon(HICON hIcon)
function SetFooterIcon (line 6111) | void SetFooterIcon(UINT nID)
function SetFooterIcon (line 6117) | void SetFooterIcon(LPCWSTR lpstrFooterIcon)
function SetFooterText (line 6124) | void SetFooterText(UINT nID)
function SetFooterText (line 6129) | void SetFooterText(LPCWSTR lpstrFooterText)
function SetWidth (line 6135) | void SetWidth(UINT cxWidth)
function ModifyFlags (line 6141) | void ModifyFlags(DWORD dwRemove, DWORD dwAdd)
function ATL_NO_VTABLE (line 6152) | ATL_NO_VTABLE CTaskDialogImpl
function SetCommonButtons (line 6196) | void SetCommonButtons(TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons)
function SetWindowTitle (line 6199) | void SetWindowTitle(UINT nID)
function SetWindowTitle (line 6201) | void SetWindowTitle(LPCWSTR lpstrWindowTitle)
function SetMainIcon (line 6204) | void SetMainIcon(HICON hIcon)
function SetMainIcon (line 6206) | void SetMainIcon(UINT nID)
function SetMainIcon (line 6208) | void SetMainIcon(LPCWSTR lpstrMainIcon)
function SetMainInstructionText (line 6211) | void SetMainInstructionText(UINT nID)
function SetMainInstructionText (line 6213) | void SetMainInstructionText(LPCWSTR lpstrMainInstruction)
function SetContentText (line 6216) | void SetContentText(UINT nID)
function SetContentText (line 6218) | void SetContentText(LPCWSTR lpstrContent)
function SetDefaultButton (line 6223) | void SetDefaultButton(int nDefaultButton)
function SetDefaultRadioButton (line 6228) | void SetDefaultRadioButton(int nDefaultRadioButton)
function SetVerificationText (line 6231) | void SetVerificationText(UINT nID)
function SetVerificationText (line 6233) | void SetVerificationText(LPCWSTR lpstrVerificationText)
function SetExpandedInformationText (line 6236) | void SetExpandedInformationText(UINT nID)
function SetExpandedInformationText (line 6238) | void SetExpandedInformationText(LPCWSTR lpstrExpandedInformation)
function SetExpandedControlText (line 6241) | void SetExpandedControlText(UINT nID)
function SetExpandedControlText (line 6243) | void SetExpandedControlText(LPCWSTR lpstrExpandedControlText)
function SetCollapsedControlText (line 6246) | void SetCollapsedControlText(UINT nID)
function SetCollapsedControlText (line 6248) | void SetCollapsedControlText(LPCWSTR lpstrCollapsedControlText)
function SetFooterIcon (line 6251) | void SetFooterIcon(HICON hIcon)
function SetFooterIcon (line 6253) | void SetFooterIcon(UINT nID)
function SetFooterIcon (line 6255) | void SetFooterIcon(LPCWSTR lpstrFooterIcon)
function SetFooterText (line 6258) | void SetFooterText(UINT nID)
function SetFooterText (line 6260) | void SetFooterText(LPCWSTR lpstrFooterText)
function SetWidth (line 6263) | void SetWidth(UINT cxWidth)
function ModifyFlags (line 6266) | void ModifyFlags(DWORD dwRemove, DWORD dwAdd)
function HRESULT (line 6270) | static HRESULT CALLBACK TaskDialogCallback(HWND hWnd, UINT uMsg, WPARAM ...
function OnDialogConstructed (line 6322) | void OnDialogConstructed()
function OnCreated (line 6326) | void OnCreated()
function BOOL (line 6330) | BOOL OnButtonClicked(int /*nButton*/)
function OnRadioButtonClicked (line 6335) | void OnRadioButtonClicked(int /*nRadioButton*/)
function OnHyperlinkClicked (line 6339) | void OnHyperlinkClicked(LPCWSTR /*pszHREF*/)
function OnExpandoButtonClicked (line 6343) | void OnExpandoButtonClicked(bool /*bExpanded*/)
function OnVerificationClicked (line 6347) | void OnVerificationClicked(bool /*bChecked*/)
function OnHelp (line 6351) | void OnHelp()
function BOOL (line 6355) | BOOL OnTimer(DWORD /*dwTickCount*/)
function OnNavigated (line 6360) | void OnNavigated()
function OnDestroyed (line 6364) | void OnDestroyed()
function NavigatePage (line 6369) | void NavigatePage(TASKDIALOGCONFIG& tdc)
function NavigatePage (line 6384) | void NavigatePage()
function ClickButton (line 6390) | void ClickButton(int nButton)
function SetMarqueeProgressBar (line 6396) | void SetMarqueeProgressBar(BOOL bMarquee)
function BOOL (line 6402) | BOOL SetProgressBarState(int nNewState)
function DWORD (line 6408) | DWORD SetProgressBarRange(int nMinRange, int nMaxRange)
function SetProgressBarPos (line 6414) | int SetProgressBarPos(int nNewPos)
function BOOL (line 6420) | BOOL SetProgressBarMarquee(BOOL bMarquee, UINT uSpeed)
function SetElementText (line 6426) | void SetElementText(TASKDIALOG_ELEMENTS element, LPCWSTR lpstrText)
function ClickRadioButton (line 6432) | void ClickRadioButton(int nRadioButton)
function EnableButton (line 6438) | void EnableButton(int nButton, BOOL bEnable)
function EnableRadioButton (line 6444) | void EnableRadioButton(int nButton, BOOL bEnable)
function ClickVerification (line 6450) | void ClickVerification(BOOL bCheck, BOOL bFocus)
function UpdateElementText (line 6456) | void UpdateElementText(TASKDIALOG_ELEMENTS element, LPCWSTR lpstrText)
function SetButtonElevationRequiredState (line 6462) | void SetButtonElevationRequiredState(int nButton, BOOL bElevation)
function UpdateIcon (line 6468) | void UpdateIcon(TASKDIALOG_ICON_ELEMENTS element, HICON hIcon)
function UpdateIcon (line 6480) | void UpdateIcon(TASKDIALOG_ICON_ELEMENTS element, LPCWSTR lpstrIcon)
function class (line 6497) | class CTaskDialog : public CTaskDialogImpl<CTaskDialog>
FILE: src/Setup/wtl90/atldwm.h
function namespace (line 60) | namespace WTL
type CDwmWindowT (line 280) | typedef CDwmWindowT<ATL::CWindow> CDwmWindow;
function Attach (line 310) | void Attach(HTHUMBNAIL hThumbnailNew)
function HTHUMBNAIL (line 317) | HTHUMBNAIL Detach()
function HRESULT (line 324) | HRESULT Register(HWND hwndDestination, HWND hwndSource)
function HRESULT (line 336) | HRESULT Unregister()
function HRESULT (line 354) | HRESULT UpdateProperties(const DWM_THUMBNAIL_PROPERTIES* ptnProperties)
function HRESULT (line 364) | HRESULT QuerySourceSize(PSIZE pSize)
type CBufferedPaintImpl (line 390) | typedef CBufferedPaintImpl<T> _baseClass;
type ATL (line 391) | typedef ATL::CWindowImpl<T, TBase, TWinTraits> _windowClass;
function LPCWSTR (line 398) | static LPCWSTR GetThemeName()
function MESSAGE_HANDLER (line 409) | BEGIN_MSG_MAP(CAeroControlImpl)
function BOOL (line 435) | BOOL SubclassWindow(HWND hWnd)
function LRESULT (line 450) | LRESULT DefWindowProc()
function LRESULT (line 460) | LRESULT DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
function DoBufferedPaint (line 470) | void DoBufferedPaint(HDC hDC, RECT& rcPaint)
function Init (line 488) | void Init()
function DoAeroPaint (line 497) | void DoAeroPaint(HDC hDC, RECT& /*rcClient*/, RECT& rcPaint)
FILE: src/Setup/wtl90/atlfind.h
function namespace (line 42) | namespace WTL
function AdjustDialogPosition (line 234) | void AdjustDialogPosition(HWND hWndDialog)
function DWORD (line 264) | DWORD GetFindReplaceDialogFlags(void) const
function FindReplace (line 277) | void FindReplace(BOOL bFindOnly)
function BOOL (line 313) | BOOL SameAsSelected(LPCTSTR lpszCompare, BOOL bMatchCase, BOOL /*bWholeW...
function TextNotFound (line 334) | void TextNotFound(LPCTSTR lpszFind)
type TranslationTextItem (line 341) | enum TranslationTextItem
function OnFindNext (line 364) | void OnFindNext(LPCTSTR lpszFind, BOOL bFindDown, BOOL bMatchCase, BOOL ...
function OnReplaceSel (line 379) | void OnReplaceSel(LPCTSTR lpszFind, BOOL bFindDown, BOOL bMatchCase, BOO...
function OnReplaceAll (line 398) | void OnReplaceAll(LPCTSTR lpszFind, LPCTSTR lpszReplace, BOOL bMatchCase...
function OnReplaceAllCoreBegin (line 430) | void OnReplaceAllCoreBegin()
function OnReplaceAllCoreEnd (line 440) | void OnReplaceAllCoreEnd(int replaceCount)
function OnTextNotFound (line 467) | void OnTextNotFound(LPCTSTR lpszFind)
function OnTerminatingFindReplaceDialog (line 494) | void OnTerminatingFindReplaceDialog(TFindReplaceDialog*& /*findReplaceDi...
type CEditFindReplaceImplBase (line 522) | typedef CEditFindReplaceImplBase<T, TFindReplaceDialog> baseClass;
function virtual (line 538) | virtual ~CEditFindReplaceImpl()
function LPCTSTR (line 724) | LPCTSTR LockBuffer() const
function UINT (line 778) | UINT GetBufferLength() const
function LONG (line 801) | LONG GetSelText(_CSTRING_NS::CString& strText) const
function BOOL (line 817) | BOOL UseShadowBuffer(void) const
type CEditFindReplaceImplBase (line 928) | typedef CEditFindReplaceImplBase<T, TFindReplaceDialog> baseClass;
function FindAndSelect (line 1023) | long FindAndSelect(DWORD dwFlags, FINDTEXTEX& ft)
FILE: src/Setup/wtl90/atlframe.h
function namespace (line 46) | namespace WTL
FILE: src/Setup/wtl90/atlgdi.h
function namespace (line 75) | namespace WTL
type CPenT (line 223) | typedef CPenT<false> CPenHandle;
type CPenT (line 224) | typedef CPenT<true> CPen;
function Attach (line 253) | void Attach(HBRUSH hBrush)
function HBRUSH (line 260) | HBRUSH Detach()
function HBRUSH (line 272) | HBRUSH CreateSolidBrush(COLORREF crColor)
function HBRUSH (line 280) | HBRUSH CreateHatchBrush(int nIndex, COLORREF crColor)
function HBRUSH (line 289) | HBRUSH CreateBrushIndirect(const LOGBRUSH* lpLogBrush)
function HBRUSH (line 301) | HBRUSH CreatePatternBrush(HBITMAP hBitmap)
function HBRUSH (line 308) | HBRUSH CreateDIBPatternBrush(HGLOBAL hPackedDIB, UINT nUsage)
function HBRUSH (line 318) | HBRUSH CreateDIBPatternBrush(const void* lpPackedDIB, UINT nUsage)
function HBRUSH (line 325) | HBRUSH CreateSysColorBrush(int nIndex)
function BOOL (line 332) | BOOL DeleteObject()
function GetLogBrush (line 342) | int GetLogBrush(LOGBRUSH* pLogBrush) const
function GetLogBrush (line 348) | bool GetLogBrush(LOGBRUSH& LogBrush) const
type CBrushT (line 355) | typedef CBrushT<false> CBrushHandle;
type CBrushT (line 356) | typedef CBrushT<true> CBrush;
function class (line 362) | class CLogFont : public LOGFONT
function HFONT (line 381) | HFONT CreateFontIndirect()
function SetBold (line 386) | void SetBold()
function MakeLarger (line 401) | void MakeLarger(int iScale)
function SetCaptionFont (line 468) | void SetCaptionFont()
function SetMenuFont (line 475) | void SetMenuFont()
function SetStatusFont (line 482) | void SetStatusFont()
function SetMessageBoxFont (line 489) | void SetMessageBoxFont()
function Copy (line 497) | void Copy(const LOGFONT* pLogFont)
function Attach (line 565) | void Attach(HFONT hFont)
function HFONT (line 572) | HFONT Detach()
function HFONT (line 584) | HFONT CreateFontIndirect(const LOGFONT* lpLogFont)
function HFONT (line 592) | HFONT CreateFontIndirectEx(CONST ENUMLOGFONTEXDV* penumlfex)
function HFONT (line 601) | HFONT CreateFont(int nHeight, int nWidth, int nEscapement,
function BOOL (line 662) | BOOL DeleteObject()
function GetLogFont (line 672) | int GetLogFont(LOGFONT* pLogFont) const
function GetLogFont (line 678) | bool GetLogFont(LOGFONT& LogFont) const
type CFontT (line 685) | typedef CFontT<false> CFontHandle;
type CFontT (line 686) | typedef CFontT<true> CFont;
function Attach (line 715) | void Attach(HBITMAP hBitmap)
function HBITMAP (line 722) | HBITMAP Detach()
function HBITMAP (line 734) | HBITMAP LoadBitmap(ATL::_U_STRINGorID bitmap)
function HBITMAP (line 741) | HBITMAP LoadOEMBitmap(UINT nIDBitmap) // for OBM_/OCR_/OIC_
function HBITMAP (line 757) | HBITMAP CreateBitmap(int nWidth, int nHeight, UINT nPlanes, UINT nBitsPe...
function HBITMAP (line 765) | HBITMAP CreateBitmapIndirect(LPBITMAP lpBitmap)
function HBITMAP (line 773) | HBITMAP CreateCompatibleBitmap(HDC hDC, int nWidth, int nHeight)
function HBITMAP (line 781) | HBITMAP CreateDiscardableBitmap(HDC hDC, int nWidth, int nHeight)
function BOOL (line 789) | BOOL DeleteObject()
function GetBitmap (line 799) | int GetBitmap(BITMAP* pBitMap) const
function GetBitmap (line 805) | bool GetBitmap(BITMAP& bm) const
function GetSize (line 811) | bool GetSize(SIZE& size) const
function DWORD (line 823) | DWORD GetBitmapBits(DWORD dwCount, LPVOID lpBits) const
function DWORD (line 831) | DWORD SetBitmapBits(DWORD dwCount, const void* lpBits)
function BOOL (line 839) | BOOL GetBitmapDimension(LPSIZE lpSize) const
function HBITMAP (line 852) | HBITMAP CreateDIBitmap(HDC hDC, CONST BITMAPINFOHEADER* lpbmih, DWORD dw...
function HBITMAP (line 860) | HBITMAP CreateDIBSection(HDC hDC, CONST BITMAPINFO* lpbmi, UINT uColorUs...
function GetDIBits (line 868) | int GetDIBits(HDC hDC, UINT uStartScan, UINT cScanLines, LPVOID lpvBits...
function SetDIBits (line 874) | int SetDIBits(HDC hDC, UINT uStartScan, UINT cScanLines, CONST VOID* lpv...
type CBitmapT (line 882) | typedef CBitmapT<false> CBitmapHandle;
type CBitmapT (line 883) | typedef CBitmapT<true> CBitmap;
function Attach (line 912) | void Attach(HPALETTE hPalette)
function HPALETTE (line 919) | HPALETTE Detach()
function HPALETTE (line 931) | HPALETTE CreatePalette(LPLOGPALETTE lpLogPalette)
function HPALETTE (line 939) | HPALETTE CreateHalftonePalette(HDC hDC)
function BOOL (line 948) | BOOL DeleteObject()
function UINT (line 966) | UINT GetPaletteEntries(UINT nStartIndex, UINT nNumEntries, LPPALETTEENTR...
function UINT (line 972) | UINT SetPaletteEntries(UINT nStartIndex, UINT nNumEntries, LPPALETTEENTR...
function AnimatePalette (line 980) | void AnimatePalette(UINT nStartIndex, UINT nNumEntries, LPPALETTEENTRY l...
function BOOL (line 986) | BOOL ResizePalette(UINT nNumEntries)
function UINT (line 993) | UINT GetNearestPaletteIndex(COLORREF crColor) const
type CPaletteT (line 1000) | typedef CPaletteT<false> CPaletteHandle;
type CPaletteT (line 1001) | typedef CPaletteT<true> CPalette;
function Attach (line 1030) | void Attach(HRGN hRgn)
function HRGN (line 1037) | HRGN Detach()
function HRGN (line 1049) | HRGN CreateRectRgn(int x1, int y1, int x2, int y2)
function HRGN (line 1056) | HRGN CreateRectRgnIndirect(LPCRECT lpRect)
function HRGN (line 1064) | HRGN CreateEllipticRgn(int x1, int y1, int x2, int y2)
function HRGN (line 1071) | HRGN CreateEllipticRgnIndirect(LPCRECT lpRect)
function HRGN (line 1078) | HRGN CreatePolygonRgn(LPPOINT lpPoints, int nCount, int nMode)
function HRGN (line 1085) | HRGN CreatePolyPolygonRgn(LPPOINT lpPoints, LPINT lpPolyCounts, int nCou...
function HRGN (line 1092) | HRGN CreateRoundRectRgn(int x1, int y1, int x2, int y2, int x3, int y3)
function HRGN (line 1099) | HRGN CreateFromPath(HDC hDC)
function HRGN (line 1107) | HRGN CreateFromData(const XFORM* lpXForm, int nCount, const RGNDATA* pRg...
function BOOL (line 1115) | BOOL DeleteObject()
function SetRectRgn (line 1125) | void SetRectRgn(int x1, int y1, int x2, int y2)
function SetRectRgn (line 1131) | void SetRectRgn(LPCRECT lpRect)
function CombineRgn (line 1137) | int CombineRgn(HRGN hRgnSrc1, HRGN hRgnSrc2, int nCombineMode)
function CombineRgn (line 1143) | int CombineRgn(HRGN hRgnSrc, int nCombineMode)
function CopyRgn (line 1149) | int CopyRgn(HRGN hRgnSrc)
function BOOL (line 1155) | BOOL EqualRgn(HRGN hRgn) const
function OffsetRgn (line 1161) | int OffsetRgn(int x, int y)
function OffsetRgn (line 1167) | int OffsetRgn(POINT point)
function GetRgnBox (line 1173) | int GetRgnBox(LPRECT lpRect) const
function BOOL (line 1179) | BOOL PtInRegion(int x, int y) const
function BOOL (line 1185) | BOOL PtInRegion(POINT point) const
function BOOL (line 1191) | BOOL RectInRegion(LPCRECT lpRect) const
function GetRegionData (line 1197) | int GetRegionData(LPRGNDATA lpRgnData, int nDataSize) const
type CRgnT (line 1204) | typedef CRgnT<false> CRgnHandle;
type CRgnT (line 1205) | typedef CRgnT<true> CRgn;
function Attach (line 1235) | void Attach(HDC hDC)
function HDC (line 1242) | HDC Detach()
function HDC (line 1292) | HDC CreateDC(LPCTSTR lpszDriverName, LPCTSTR lpszDeviceName, LPCTSTR lps...
function BOOL (line 1306) | BOOL DeleteDC()
function SaveDC (line 1317) | int SaveDC()
function BOOL (line 1323) | BOOL RestoreDC(int nSavedDC)
function GetDeviceCaps (line 1329) | int GetDeviceCaps(int nIndex) const
function UINT (line 1336) | UINT SetBoundsRect(LPCRECT lpRectBounds, UINT flags)
function UINT (line 1342) | UINT GetBoundsRect(LPRECT lpRectBounds, UINT flags) const
function BOOL (line 1348) | BOOL ResetDC(const DEVMODE* lpDevMode)
function BOOL (line 1355) | BOOL GetBrushOrg(LPPOINT lpPoint) const
function EnumObjects (line 1375) | int EnumObjects(int nObjectType, int (CALLBACK* lpfn)(LPVOID, LPARAM), L...
function HPEN (line 1387) | HPEN SelectPen(HPEN hPen)
function HBRUSH (line 1398) | HBRUSH SelectBrush(HBRUSH hBrush)
function HFONT (line 1405) | HFONT SelectFont(HFONT hFont)
function HBITMAP (line 1412) | HBITMAP SelectBitmap(HBITMAP hBitmap)
function SelectRgn (line 1419) | int SelectRgn(HRGN hRgn) // special return for regions
function HPEN (line 1427) | HPEN SelectStockPen(int nPen)
function HBRUSH (line 1438) | HBRUSH SelectStockBrush(int nBrush)
function HFONT (line 1448) | HFONT SelectStockFont(int nFont)
function HPALETTE (line 1458) | HPALETTE SelectStockPalette(int nPalette, BOOL bForceBackground)
function COLORREF (line 1465) | COLORREF GetNearestColor(COLORREF crColor) const
function HPALETTE (line 1471) | HPALETTE SelectPalette(HPALETTE hPalette, BOOL bForceBackground)
function UINT (line 1478) | UINT RealizePalette()
function UpdateColors (line 1485) | void UpdateColors()
function COLORREF (line 1531) | COLORREF SetBkColor(COLORREF crColor)
function SetBkMode (line 1537) | int SetBkMode(int nBkMode)
function SetPolyFillMode (line 1544) | int SetPolyFillMode(int nPolyFillMode)
function SetROP2 (line 1551) | int SetROP2(int nDrawMode)
function SetStretchBltMode (line 1558) | int SetStretchBltMode(int nStretchMode)
function COLORREF (line 1565) | COLORREF SetTextColor(COLORREF crColor)
function BOOL (line 1572) | BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const
function BOOL (line 1578) | BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust)
function BOOL (line 1591) | BOOL GetViewportOrg(LPPOINT lpPoint) const
function SetMapMode (line 1597) | int SetMapMode(int nMapMode)
function BOOL (line 1625) | BOOL GetViewportExt(LPSIZE lpSize) const
function BOOL (line 1652) | BOOL GetWindowOrg(LPPOINT lpPoint) const
function BOOL (line 1677) | BOOL GetWindowExt(LPSIZE lpSize) const
function BOOL (line 1708) | BOOL DPtoLP(LPRECT lpRect) const
function BOOL (line 1714) | BOOL DPtoLP(LPSIZE lpSize) const
function BOOL (line 1733) | BOOL LPtoDP(LPRECT lpRect) const
function BOOL (line 1739) | BOOL LPtoDP(LPSIZE lpSize) const
function DPtoHIMETRIC (line 1755) | void DPtoHIMETRIC(LPSIZE lpSize) const
function HIMETRICtoDP (line 1777) | void HIMETRICtoDP(LPSIZE lpSize) const
function LPtoHIMETRIC (line 1799) | void LPtoHIMETRIC(LPSIZE lpSize) const
function HIMETRICtoLP (line 1805) | void HIMETRICtoLP(LPSIZE lpSize) const
function BOOL (line 1813) | BOOL FillRgn(HRGN hRgn, HBRUSH hBrush)
function BOOL (line 1820) | BOOL FrameRgn(HRGN hRgn, HBRUSH hBrush, int nWidth, int nHeight)
function BOOL (line 1826) | BOOL InvertRgn(HRGN hRgn)
function BOOL (line 1832) | BOOL PaintRgn(HRGN hRgn)
function GetClipBox (line 1840) | int GetClipBox(LPRECT lpRect) const
function GetClipRgn (line 1846) | int GetClipRgn(CRgn& region) const
function BOOL (line 1860) | BOOL PtVisible(int x, int y) const
function BOOL (line 1866) | BOOL PtVisible(POINT point) const
function BOOL (line 1873) | BOOL RectVisible(LPCRECT lpRect) const
function SelectClipRgn (line 1879) | int SelectClipRgn(HRGN hRgn)
function ExcludeClipRect (line 1885) | int ExcludeClipRect(int x1, int y1, int x2, int y2)
function ExcludeClipRect (line 1891) | int ExcludeClipRect(LPCRECT lpRect)
function ExcludeUpdateRgn (line 1898) | int ExcludeUpdateRgn(HWND hWnd)
function IntersectClipRect (line 1905) | int IntersectClipRect(int x1, int y1, int x2, int y2)
function IntersectClipRect (line 1911) | int IntersectClipRect(LPCRECT lpRect)
function OffsetClipRgn (line 1918) | int OffsetClipRgn(int x, int y)
function OffsetClipRgn (line 1924) | int OffsetClipRgn(SIZE size)
function SelectClipRgn (line 1930) | int SelectClipRgn(HRGN hRgn, int nMode)
function BOOL (line 1939) | BOOL GetCurrentPosition(LPPOINT lpPoint) const
function BOOL (line 1957) | BOOL LineTo(int x, int y)
function BOOL (line 1963) | BOOL LineTo(POINT point)
function BOOL (line 1971) | BOOL Arc(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 1977) | BOOL Arc(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function BOOL (line 1986) | BOOL Polyline(const POINT* lpPoints, int nCount)
function BOOL (line 1993) | BOOL AngleArc(int x, int y, int nRadius, float fStartAngle, float fSweep...
function BOOL (line 1999) | BOOL ArcTo(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 2005) | BOOL ArcTo(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function SetArcDirection (line 2018) | int SetArcDirection(int nArcDirection)
function BOOL (line 2024) | BOOL PolyDraw(const POINT* lpPoints, const BYTE* lpTypes, int nCount)
function BOOL (line 2030) | BOOL PolylineTo(const POINT* lpPoints, int nCount)
function BOOL (line 2036) | BOOL PolyPolyline(const POINT* lpPoints,
function BOOL (line 2043) | BOOL PolyBezier(const POINT* lpPoints, int nCount)
function BOOL (line 2049) | BOOL PolyBezierTo(const POINT* lpPoints, int nCount)
function BOOL (line 2057) | BOOL FillRect(LPCRECT lpRect, HBRUSH hBrush)
function BOOL (line 2063) | BOOL FillRect(LPCRECT lpRect, int nColorIndex)
function BOOL (line 2074) | BOOL FrameRect(LPCRECT lpRect, HBRUSH hBrush)
function BOOL (line 2082) | BOOL InvertRect(LPCRECT lpRect)
function BOOL (line 2089) | BOOL DrawIcon(int x, int y, HICON hIcon)
function BOOL (line 2099) | BOOL DrawIcon(POINT point, HICON hIcon)
function BOOL (line 2149) | BOOL Chord(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 2155) | BOOL Chord(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function DrawFocusRect (line 2162) | void DrawFocusRect(LPCRECT lpRect)
function BOOL (line 2168) | BOOL Ellipse(int x1, int y1, int x2, int y2)
function BOOL (line 2174) | BOOL Ellipse(LPCRECT lpRect)
function BOOL (line 2181) | BOOL Pie(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
function BOOL (line 2187) | BOOL Pie(LPCRECT lpRect, POINT ptStart, POINT ptEnd)
function BOOL (line 2194) | BOOL Polygon(const POINT* lpPoints, int nCount)
function BOOL (line 2201) | BOOL PolyPolygon(const POINT* lpPoints, const INT* lpPolyCounts, int nCo...
function BOOL (line 2208) | BOOL Rectangle(int x1, int y1, int x2, int y2)
function BOOL (line 2214) | BOOL Rectangle(LPCRECT lpRect)
function BOOL (line 2220) | BOOL RoundRect(int x1, int y1, int x2, int y2, int x3, int y3)
function BOOL (line 2226) | BOOL RoundRect(LPCRECT lpRect, POINT point)
function BOOL (line 2233) | BOOL PatBlt(int x, int y, int nWidth, int nHeight, DWORD dwRop)
function BOOL (line 2239) | BOOL BitBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC,
function BOOL (line 2246) | BOOL StretchBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, int x...
function COLORREF (line 2252) | COLORREF GetPixel(int x, int y) const
function COLORREF (line 2258) | COLORREF GetPixel(POINT point) const
function COLORREF (line 2264) | COLORREF SetPixel(int x, int y, COLORREF crColor)
function COLORREF (line 2270) | COLORREF SetPixel(POINT point, COLORREF crColor)
function BOOL (line 2277) | BOOL FloodFill(int x, int y, COLORREF crColor)
function BOOL (line 2283) | BOOL ExtFloodFill(int x, int y, COLORREF crColor, UINT nFillType)
function BOOL (line 2290) | BOOL MaskBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, int xSrc...
function BOOL (line 2297) | BOOL PlgBlt(LPPOINT lpPoint, HDC hSrcDC, int xSrc, int ySrc, int nWidth,...
function BOOL (line 2303) | BOOL SetPixelV(int x, int y, COLORREF crColor)
function BOOL (line 2309) | BOOL SetPixelV(POINT point, COLORREF crColor)
function BOOL (line 2318) | BOOL TransparentBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, i...
function BOOL (line 2324) | BOOL TransparentImage(int x, int y, int nWidth, int nHeight, HDC hSrcDC,...
function BOOL (line 2332) | BOOL GradientFill(const PTRIVERTEX pVertices, DWORD nVertices, void* pMe...
function BOOL (line 2338) | BOOL GradientFillRect(RECT& rect, COLORREF clr1, COLORREF clr2, bool bHo...
function BOOL (line 2365) | BOOL AlphaBlend(int x, int y, int nWidth, int nHeight, HDC hSrcDC, int x...
function BOOL (line 2377) | BOOL DitherBlt(int x, int y, int nWidth, int nHeight, HDC hSrcDC, HBITMA...
function DrawText (line 2516) | int DrawText(LPCTSTR lpstrText, int cchText, LPRECT lpRect, UINT uFormat)
function DrawText (line 2525) | int DrawText(LPTSTR lpstrText, int cchText, LPRECT lpRect, UINT uFormat)
function DrawShadowText (line 2540) | int DrawShadowText(LPCWSTR lpstrText, int cchText, LPRECT lpRect, DWORD ...
function BOOL (line 2562) | BOOL GetTextExtent(LPCTSTR lpszString, int nCount, LPSIZE lpSize) const
function BOOL (line 2585) | BOOL GrayString(HBRUSH hBrush, BOOL (CALLBACK* lpfnOutput)(HDC, LPARAM, ...
function UINT (line 2599) | UINT SetTextAlign(UINT nFlags)
function GetTextFace (line 2606) | int GetTextFace(LPTSTR lpszFacename, int nCount) const
function BOOL (line 2620) | BOOL GetTextFace(BSTR& bstrFace) const
function GetTextFace (line 2645) | int GetTextFace(_CSTRING_NS::CString& strFace) const
function BOOL (line 2662) | BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const
function SetTextJustification (line 2669) | int SetTextJustification(int nBreakExtra, int nBreakCount)
function SetTextCharacterExtra (line 2681) | int SetTextCharacterExtra(int nCharExtra)
function BOOL (line 2689) | BOOL DrawEdge(LPRECT lpRect, UINT nEdge, UINT nFlags)
function BOOL (line 2695) | BOOL DrawFrameControl(LPRECT lpRect, UINT nType, UINT nState)
function BOOL (line 2702) | BOOL ScrollDC(int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, ...
function BOOL (line 2710) | BOOL GetCharWidth(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const
function BOOL (line 2717) | BOOL GetCharWidth32(UINT nFirstChar, UINT nLastChar, LPINT lpBuffer) const
function DWORD (line 2723) | DWORD SetMapperFlags(DWORD dwFlag)
function BOOL (line 2729) | BOOL GetAspectRatioFilter(LPSIZE lpSize) const
function BOOL (line 2735) | BOOL GetCharABCWidths(UINT nFirstChar, UINT nLastChar, LPABC lpabc) const
function DWORD (line 2741) | DWORD GetFontData(DWORD dwTable, DWORD dwOffset, LPVOID lpData, DWORD cb...
function GetKerningPairs (line 2747) | int GetKerningPairs(int nPairs, LPKERNINGPAIR lpkrnpair) const
function UINT (line 2753) | UINT GetOutlineTextMetrics(UINT cbData, LPOUTLINETEXTMETRIC lpotm) const
function DWORD (line 2759) | DWORD GetGlyphOutline(UINT nChar, UINT nFormat, LPGLYPHMETRICS lpgm, DWO...
function BOOL (line 2765) | BOOL GetCharABCWidths(UINT nFirstChar, UINT nLastChar, LPABCFLOAT lpABCF...
function BOOL (line 2771) | BOOL GetCharWidth(UINT nFirstChar, UINT nLastChar, float* lpFloatBuffer)...
function Escape (line 2780) | int Escape(int nEscape, int nCount, LPCSTR lpszInData, LPVOID lpOutData)
function Escape (line 2787) | int Escape(int nEscape, int nInputSize, LPCSTR lpszInputData,
function DrawEscape (line 2795) | int DrawEscape(int nEscape, int nInputSize, LPCSTR lpszInputData)
function StartDoc (line 2804) | int StartDoc(LPCTSTR lpszDocName) // old Win3.0 version
function StartDoc (line 2812) | int StartDoc(LPDOCINFO lpDocInfo)
function StartPage (line 2818) | int StartPage()
function EndPage (line 2824) | int EndPage()
function SetAbortProc (line 2830) | int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int))
function AbortDoc (line 2836) | int AbortDoc()
function EndDoc (line 2842) | int EndDoc()
function BOOL (line 2851) | BOOL PlayMetaFile(HMETAFILE hMF)
function BOOL (line 2864) | BOOL PlayMetaFile(HENHMETAFILE hEnhMetaFile, LPCRECT lpBounds)
function BOOL (line 2870) | BOOL AddMetaFileComment(UINT nDataSize, const BYTE* pCommentData) // can...
function EnumMetaFileProc (line 2877) | static int CALLBACK EnumMetaFileProc(HDC hDC, HANDLETABLE* pHandleTable,...
function BOOL (line 2967) | BOOL AbortPath()
function BOOL (line 2973) | BOOL BeginPath()
function BOOL (line 2979) | BOOL CloseFigure()
function BOOL (line 2985) | BOOL EndPath()
function BOOL (line 2991) | BOOL FillPath()
function BOOL (line 2997) | BOOL FlattenPath()
function BOOL (line 3003) | BOOL StrokeAndFillPath()
function BOOL (line 3009) | BOOL StrokePath()
function BOOL (line 3015) | BOOL WidenPath()
function BOOL (line 3021) | BOOL GetMiterLimit(PFLOAT pfMiterLimit) const
function BOOL (line 3027) | BOOL SetMiterLimit(float fMiterLimit)
function GetPath (line 3033) | int GetPath(LPPOINT lpPoints, LPBYTE lpTypes, int nCount) const
function BOOL (line 3039) | BOOL SelectClipPath(int nMode)
function CBrushHandle (line 3047) | static CBrushHandle PASCAL GetHalftoneBrush()
function FillSolidRect (line 3126) | void FillSolidRect(LPCRECT lpRect, COLORREF clr)
function FillSolidRect (line 3139) | void FillSolidRect(int x, int y, int cx, int cy, COLORREF clr)
function Draw3dRect (line 3147) | void Draw3dRect(LPCRECT lpRect, COLORREF clrTopLeft, COLORREF clrBottomR...
function Draw3dRect (line 3153) | void Draw3dRect(int x, int y, int cx, int cy, COLORREF clrTopLeft, COLOR...
function SetDIBitsToDevice (line 3163) | int SetDIBitsToDevice(int x, int y, DWORD dwWidth, DWORD dwHeight, int x...
function StretchDIBits (line 3171) | int StretchDIBits(int x, int y, int nWidth, int nHeight, int xSrc, int y...
function UINT (line 3177) | UINT GetDIBColorTable(UINT uStartIndex, UINT cEntries, RGBQUAD* pColors)...
function UINT (line 3183) | UINT SetDIBColorTable(UINT uStartIndex, UINT cEntries, CONST RGBQUAD* pC...
function ChoosePixelFormat (line 3192) | int ChoosePixelFormat(CONST PIXELFORMATDESCRIPTOR* ppfd)
function DescribePixelFormat (line 3198) | int DescribePixelFormat(int iPixelFormat, UINT nBytes, LPPIXELFORMATDESC...
function BOOL (line 3210) | BOOL SetPixelFormat(int iPixelFormat, CONST PIXELFORMATDESCRIPTOR* ppfd)
function BOOL (line 3216) | BOOL SwapBuffers()
function HGLRC (line 3222) | HGLRC wglCreateContext()
function HGLRC (line 3228) | HGLRC wglCreateLayerContext(int iLayerPlane)
function BOOL (line 3234) | BOOL wglMakeCurrent(HGLRC hglrc)
function BOOL (line 3240) | BOOL wglUseFontBitmaps(DWORD dwFirst, DWORD dwCount, DWORD listBase)
function BOOL (line 3246) | BOOL wglUseFontOutlines(DWORD dwFirst, DWORD dwCount, DWORD listBase, FL...
function BOOL (line 3252) | BOOL wglDescribeLayerPlane(int iPixelFormat, int iLayerPlane, UINT nByte...
function wglSetLayerPaletteEntries (line 3258) | int wglSetLayerPaletteEntries(int iLayerPlane, int iStart, int cEntries,...
function wglGetLayerPaletteEntries (line 3264) | int wglGetLayerPaletteEntries(int iLayerPlane, int iStart, int cEntries,...
function BOOL (line 3270) | BOOL wglRealizeLayerPalette(int iLayerPlane, BOOL bRealize)
function BOOL (line 3276) | BOOL wglSwapLayerBuffers(UINT uPlanes)
function COLORREF (line 3291) | COLORREF SetDCPenColor(COLORREF clr)
function COLORREF (line 3303) | COLORREF SetDCBrushColor(COLORREF clr)
function DWORD (line 3310) | DWORD GetFontUnicodeRanges(LPGLYPHSET lpgs) const
function DWORD (line 3317) | DWORD GetGlyphIndices(LPCTSTR lpstr, int cch, LPWORD pgi, DWORD dwFlags)...
function BOOL (line 3323) | BOOL GetTextExtentPointI(LPWORD pgiIn, int cgi, LPSIZE lpSize) const
function BOOL (line 3329) | BOOL GetTextExtentExPointI(LPWORD pgiIn, int cgi, int nMaxExtent, LPINT ...
function BOOL (line 3335) | BOOL GetCharWidthI(UINT giFirst, UINT cgi, LPWORD pgi, LPINT lpBuffer) c...
function BOOL (line 3341) | BOOL GetCharABCWidthsI(UINT giFirst, UINT cgi, LPWORD pgi, LPABC lpabc) ...
function BOOL (line 3350) | BOOL ColorCorrectPalette(HPALETTE hPalette, DWORD dwFirstEntry, DWORD dw...
type CDCT (line 3358) | typedef CDCT<false> CDCHandle;
type CDCT (line 3359) | typedef CDCT<true> CDC;
function class (line 3365) | class CPaintDC : public CDC
function class (line 3389) | class CClientDC : public CDC
function class (line 3410) | class CWindowDC : public CDC
function class (line 3431) | class CMemoryDC : public CDC
function class (line 3465) | class CEnhMetaFileInfo
function BYTE (line 3486) | BYTE* GetEnhMetaFileBits()
function LPTSTR (line 3498) | LPTSTR GetEnhMetaFileDescription()
function ENHMETAHEADER (line 3510) | ENHMETAHEADER* GetEnhMetaFileHeader()
function PIXELFORMATDESCRIPTOR (line 3520) | PIXELFORMATDESCRIPTOR* GetEnhMetaFilePixelFormat()
function Attach (line 3555) | void Attach(HENHMETAFILE hEMF)
function HENHMETAFILE (line 3562) | HENHMETAFILE Detach()
function BOOL (line 3573) | BOOL DeleteObject()
function UINT (line 3581) | UINT GetEnhMetaFileBits(UINT cbBuffer, LPBYTE lpbBuffer) const
function UINT (line 3587) | UINT GetEnhMetaFileDescription(UINT cchBuffer, LPTSTR lpszDescription) c...
function UINT (line 3593) | UINT GetEnhMetaFileHeader(LPENHMETAHEADER lpemh) const
function UINT (line 3601) | UINT GetEnhMetaFilePaletteEntries(UINT cEntries, LPPALETTEENTRY lppe) const
function UINT (line 3607) | UINT GetEnhMetaFilePixelFormat(DWORD cbBuffer, PIXELFORMATDESCRIPTOR* pp...
type CEnhMetaFileT (line 3614) | typedef CEnhMetaFileT<false> CEnhMetaFileHandle;
type CEnhMetaFileT (line 3615) | typedef CEnhMetaFileT<true> CEnhMetaFile;
function class (line 3618) | class CEnhMetaFileDC : public CDC
function Create (line 3646) | void Create(HDC hdcRef, LPCTSTR lpFilename, LPCRECT lpRect, LPCTSTR lpDe...
function HENHMETAFILE (line 3652) | HENHMETAFILE Close()
type DIBINFO16 (line 3675) | struct DIBINFO16 // a BITMAPINFO with 2 additional color bitfields
function AtlIsDib16 (line 3694) | inline bool AtlIsDib16(LPBITMAPINFOHEADER pbmih)
function AtlGetDibColorTableSize (line 3699) | inline int AtlGetDibColorTableSize(LPBITMAPINFOHEADER pbmih)
function AtlGetDibNumColors (line 3719) | inline int AtlGetDibNumColors(LPBITMAPINFOHEADER pbmih)
function HBITMAP (line 3749) | inline HBITMAP AtlGetDibBitmap(LPBITMAPINFO pbmi)
function HLOCAL (line 3809) | inline HLOCAL AtlCreatePackedDib16(HBITMAP hbm, SIZE size)
function AtlSetClipboardDib16 (line 3846) | inline bool AtlSetClipboardDib16(HBITMAP hbm, SIZE size, HWND hWnd)
function HBITMAP (line 3873) | inline HBITMAP AtlGetClipboardDib(HWND hWnd)
FILE: src/Setup/wtl90/atlmisc.h
function namespace (line 62) | namespace WTL
function class (line 292) | class CRect : public RECT
function CopyRect (line 312) | CRect(const RECT& srcRect)
function operator (line 378) | operator LPRECT()
function BOOL (line 388) | BOOL IsRectEmpty() const
function BOOL (line 398) | BOOL PtInRect(POINT point) const
function SetRect (line 404) | void SetRect(int x1, int y1, int x2, int y2)
function SetRect (line 409) | void SetRect(POINT topLeft, POINT bottomRight)
function SetRectEmpty (line 414) | void SetRectEmpty()
function CopyRect (line 419) | void CopyRect(LPCRECT lpSrcRect)
function BOOL (line 424) | BOOL EqualRect(LPCRECT lpRect) const
function InflateRect (line 429) | void InflateRect(int x, int y)
function InflateRect (line 434) | void InflateRect(SIZE size)
function InflateRect (line 439) | void InflateRect(LPCRECT lpRect)
function InflateRect (line 447) | void InflateRect(int l, int t, int r, int b)
function DeflateRect (line 455) | void DeflateRect(int x, int y)
function DeflateRect (line 460) | void DeflateRect(SIZE size)
function DeflateRect (line 465) | void DeflateRect(LPCRECT lpRect)
function DeflateRect (line 473) | void DeflateRect(int l, int t, int r, int b)
function OffsetRect (line 481) | void OffsetRect(int x, int y)
function OffsetRect (line 485) | void OffsetRect(SIZE size)
function OffsetRect (line 490) | void OffsetRect(POINT point)
function NormalizeRect (line 495) | void NormalizeRect()
function MoveToY (line 513) | void MoveToY(int y)
function MoveToX (line 519) | void MoveToX(int x)
function MoveToXY (line 525) | void MoveToXY(int x, int y)
function MoveToXY (line 531) | void MoveToXY(POINT pt)
function BOOL (line 538) | BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2)
function BOOL (line 543) | BOOL UnionRect(LPCRECT lpRect1, LPCRECT lpRect2)
function BOOL (line 548) | BOOL SubtractRect(LPCRECT lpRectSrc1, LPCRECT lpRectSrc2)
function BOOL (line 564) | BOOL operator !=(const RECT& rect) const
function operator (line 569) | void operator +=(POINT point)
function operator (line 574) | void operator +=(SIZE size)
function operator (line 579) | void operator +=(LPCRECT lpRect)
function operator (line 584) | void operator -=(POINT point)
function operator (line 589) | void operator -=(SIZE size)
function operator (line 594) | void operator -=(LPCRECT lpRect)
function operator (line 599) | void operator &=(const RECT& rect)
function operator (line 604) | void operator |=(const RECT& rect)
function CRect (line 659) | CRect operator |(const RECT& rect2) const
function CRect (line 666) | CRect MulDiv(int nMultiplier, int nDivisor) const
type CStringData (line 739) | struct CStringData
function class (line 760) | class CString
function Empty (line 912) | void Empty() // free up the data
function TCHAR (line 926) | TCHAR GetAt(int nIndex) const // 0 based
function TCHAR (line 933) | TCHAR operator [](int nIndex) const // same as GetAt
function SetAt (line 941) | void SetAt(int nIndex, TCHAR ch)
function Compare (line 1072) | int Compare(LPCTSTR lpsz) const // straight character (MBCS/Unicode aw...
function CompareNoCase (line 1077) | int CompareNoCase(LPCTSTR lpsz) const // ignore case (MBCS/Unicode aware)
function Collate (line 1085) | int Collate(LPCTSTR lpsz) const // NLS aware
function CollateNoCase (line 1090) | int CollateNoCase(LPCTSTR lpsz) const // ignore case
function CString (line 1097) | CString Mid(int nFirst, int nCount) const
function CString (line 1115) | CString Mid(int nFirst) const
function CString (line 1120) | CString Left(int nCount) const
function CString (line 1132) | CString Right(int nCount) const
function CString (line 1144) | CString SpanIncluding(LPCTSTR lpszCharSet) const // strspn equivalent
function CString (line 1150) | CString SpanExcluding(LPCTSTR lpszCharSet) const // strcspn equivalent
function MakeUpper (line 1157) | void MakeUpper()
function MakeLower (line 1163) | void MakeLower()
function MakeReverse (line 1169) | void MakeReverse()
function TrimRight (line 1176) | void TrimRight()
function TrimLeft (line 1205) | void TrimLeft()
function TrimRight (line 1221) | void TrimRight(TCHAR chTarget)
function TrimRight (line 1251) | void TrimRight(LPCTSTR lpszTargetList)
function TrimLeft (line 1299) | void TrimLeft(TCHAR chTarget)
function TrimLeft (line 1319) | void TrimLeft(LPCTSTR lpszTargets)
function Replace (line 1355) | int Replace(TCHAR chOld, TCHAR chNew)
function Replace (line 1382) | int Replace(LPCTSTR lpszOld, LPCTSTR lpszNew)
function Remove (line 1450) | int Remove(TCHAR chRemove)
function Insert (line 1475) | int Insert(int nIndex, TCHAR ch)
function Insert (line 1506) | int Insert(int nIndex, LPCTSTR pstr)
function Find (line 1562) | int Find(TCHAR ch) const // like "C" strchr
function ReverseFind (line 1567) | int ReverseFind(TCHAR ch) const
function Find (line 1576) | int Find(TCHAR ch, int nStart) const // starting at index
function FindOneOf (line 1589) | int FindOneOf(LPCTSTR lpszCharSet) const
function Find (line 1598) | int Find(LPCTSTR lpszSub) const // like "C" strstr
function Find (line 1603) | int Find(LPCTSTR lpszSub, int nStart) const // starting at index
function BOOL (line 1630) | BOOL __cdecl Format(LPCTSTR lpszFormat, ...)
function BOOL (line 1641) | BOOL __cdecl Format(UINT nFormatID, ...)
function BOOL (line 1654) | BOOL FormatV(LPCTSTR lpszFormat, va_list argList)
function BOOL (line 1984) | BOOL __cdecl FormatMessage(LPCTSTR lpszFormat, ...)
function BOOL (line 2003) | BOOL __cdecl FormatMessage(UINT nFormatID, ...)
function BOOL (line 2029) | BOOL LoadString(UINT nID) // load from string resource (255 chars max.)
function AnsiToOem (line 2067) | void AnsiToOem()
function OemToAnsi (line 2073) | void OemToAnsi()
function BSTR (line 2096) | BSTR SetSysString(BSTR* pbstr) const
function LPTSTR (line 2112) | LPTSTR GetBuffer(int nMinBufLength)
function LPTSTR (line 2150) | LPTSTR GetBufferSetLength(int nNewLength)
function FreeExtra (line 2162) | void FreeExtra()
function LPTSTR (line 2179) | LPTSTR LockBuffer()
function UnlockBuffer (line 2187) | void UnlockBuffer()
function BOOL (line 2210) | static BOOL __stdcall _IsValidString(LPCTSTR lpsz, int /*nLength*/ = -1)
function CStringData (line 2219) | CStringData* GetData() const
function Init (line 2225) | void Init()
function BOOL (line 2230) | BOOL AllocCopy(CString& dest, int nCopyLen, int nCopyIndex, int nExtraLe...
function BOOL (line 2258) | BOOL AllocBuffer(int nLen)
function AssignCopy (line 2293) | void AssignCopy(int nSrcLen, LPCTSTR lpszSrcData)
function BOOL (line 2310) | BOOL ConcatCopy(int nSrc1Len, LPCTSTR lpszSrc1Data, int nSrc2Len, LPCTST...
function ConcatInPlace (line 2334) | void ConcatInPlace(int nSrcLen, LPCTSTR lpszSrcData)
function CopyBeforeWrite (line 2364) | void CopyBeforeWrite()
function BOOL (line 2376) | BOOL AllocBeforeWrite(int nLen)
function Release (line 2388) | void Release()
function Release (line 2399) | static void PASCAL Release(CStringData* pData)
function SafeStrlen (line 2409) | static int PASCAL SafeStrlen(LPCTSTR lpsz)
function _LoadString (line 2414) | static int __stdcall _LoadString(UINT nID, LPTSTR lpszBuf, UINT nMaxBuf)
function CString (line 2433) | static const CString& __stdcall _GetEmptyString()
function _wcstombsz (line 2439) | static int __cdecl _wcstombsz(char* mbstr, const wchar_t* wcstr, size_t ...
function _mbstowcsz (line 2451) | static int __cdecl _mbstowcsz(wchar_t* wcstr, const char* mbstr, size_t ...
function TCHAR (line 2465) | static const TCHAR* _cstrchr(const TCHAR* p, TCHAR ch)
function TCHAR (line 2477) | static TCHAR* _cstrrev(TCHAR* pStr)
function TCHAR (line 2511) | static const TCHAR* _cstrstr(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrspn (line 2531) | static int _cstrspn(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrcspn (line 2555) | static int _cstrcspn(const TCHAR* pStr, const TCHAR* pCharSet)
function TCHAR (line 2579) | static const TCHAR* _cstrpbrk(const TCHAR* p, const TCHAR* lpszCharSet)
function _cstrcmp (line 2585) | static int _cstrcmp(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcmpi (line 2590) | static int _cstrcmpi(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcoll (line 2595) | static int _cstrcoll(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcolli (line 2602) | static int _cstrcolli(const TCHAR* pstrOne, const TCHAR* pstrOther)
function TCHAR (line 2609) | static const TCHAR* _cstrchr(const TCHAR* p, TCHAR ch)
function TCHAR (line 2614) | static TCHAR* _cstrrev(TCHAR* pStr)
function TCHAR (line 2619) | static const TCHAR* _cstrstr(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrspn (line 2624) | static int _cstrspn(const TCHAR* pStr, const TCHAR* pCharSet)
function _cstrcspn (line 2629) | static int _cstrcspn(const TCHAR* pStr, const TCHAR* pCharSet)
function TCHAR (line 2634) | static const TCHAR* _cstrpbrk(const TCHAR* p, const TCHAR* lpszCharSet)
function _cstrcmp (line 2639) | static int _cstrcmp(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcmpi (line 2644) | static int _cstrcmpi(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcoll (line 2650) | static int _cstrcoll(const TCHAR* pstrOne, const TCHAR* pstrOther)
function _cstrcolli (line 2655) | static int _cstrcolli(const TCHAR* pstrOne, const TCHAR* pstrOther)
function TCHAR (line 2662) | static const TCHAR* _cstrrchr(const TCHAR* p, TCHAR ch)
function _cstrisdigit (line 2667) | static int _cstrisdigit(TCHAR ch)
function _cstrisspace (line 2672) | static int _cstrisspace(TCHAR ch)
function _cstrtoi (line 2677) | static int _cstrtoi(const TCHAR* nptr)
function TCHAR (line 2682) | static const TCHAR* _cstrchr_db(const TCHAR* p, TCHAR ch1, TCHAR ch2)
type _DocEntry (line 2827) | struct _DocEntry
function SetMaxEntries (line 2883) | void SetMaxEntries(int nMaxEntries)
function SetMaxItemLength (line 2898) | void SetMaxItemLength(int cchMaxLen)
function BOOL (line 2914) | BOOL AddToList(LPCTSTR lpstrDocName)
function BOOL (line 2945) | __declspec(deprecated)
function BOOL (line 2953) | BOOL GetFromList(int nItemID, LPTSTR lpstrDocName, int cchLength)
function BOOL (line 2966) | BOOL GetFromList(int nItemID, _CSTRING_NS::CString& strDocName)
function BOOL (line 2976) | BOOL RemoveFromList(int nItemID)
function BOOL (line 2988) | BOOL MoveToTop(int nItemID)
function BOOL (line 3005) | BOOL ReadFromRegistry(LPCTSTR lpstrRegKey)
function BOOL (line 3048) | BOOL WriteToRegistry(LPCTSTR lpstrRegKey)
function BOOL (line 3092) | BOOL UpdateMenu()
function CompactDocumentName (line 3159) | static bool CompactDocumentName(LPTSTR lpstrOut, LPCTSTR lpstrIn, int cc...
function LPCTSTR (line 3164) | static LPCTSTR GetRegKeyName()
function LPCTSTR (line 3169) | static LPCTSTR GetRegCountName()
function LPCTSTR (line 3174) | static LPCTSTR GetRegItemName()
function LPCTSTR (line 3182) | static LPCTSTR GetMRUEmptyText()
function class (line 3188) | class CRecentDocumentList : public CRecentDocumentListBase<CRecentDocume...
function HPEN (line 3600) | inline HPEN AtlGetStockPen(int nPen)
function HBRUSH (line 3610) | inline HBRUSH AtlGetStockBrush(int nBrush)
function HFONT (line 3620) | inline HFONT AtlGetStockFont(int nFont)
function HPALETTE (line 3630) | inline HPALETTE AtlGetStockPalette(int nPalette)
function _IsDBCSTrailByte (line 3641) | inline bool _IsDBCSTrailByte(LPCTSTR lpstr, int nChar)
function AtlCompactPath (line 3657) | inline bool AtlCompactPath(LPTSTR lpstrOut, LPCTSTR lpstrIn, int cchLen)
FILE: src/Setup/wtl90/atlprint.h
function namespace (line 45) | namespace WTL
function OpenPrinter (line 188) | bool OpenPrinter(LPCTSTR lpszPrinterName, PRINTER_DEFAULTS* pprintdefs)
function ClosePrinter (line 220) | void ClosePrinter()
function Attach (line 298) | void Attach(HANDLE hPrinter)
function HANDLE (line 304) | HANDLE Detach()
type CPrinterT (line 314) | typedef CPrinterT<false> CPrinterHandle;
type CPrinterT (line 315) | typedef CPrinterT<true> CPrinter;
function Attach (line 347) | void Attach(HANDLE hDevModeNew)
function HANDLE (line 354) | HANDLE Detach()
function CopyFromPrinter (line 365) | bool CopyFromPrinter(HANDLE hPrinter)
function CopyFromDEVMODE (line 374) | bool CopyFromDEVMODE(const DEVMODE* pdm)
function CopyFromHDEVMODE (line 390) | bool CopyFromHDEVMODE(HANDLE hdm)
function HANDLE (line 402) | HANDLE CopyToHDEVMODE()
function UpdateForNewPrinter (line 419) | bool UpdateForNewPrinter(HANDLE hPrinter)
function operator (line 460) | operator DEVMODE*() const { return m_pDevMode; }
function Cleanup (line 463) | void Cleanup()
type CDevModeT (line 475) | typedef CDevModeT<false> CDevModeHandle;
type CDevModeT (line 476) | typedef CDevModeT<true> CDevMode;
function class (line 482) | class CPrinterDC : public CDC
function class (line 514) | class ATL_NO_VTABLE IPrintJobInfo
function BeginPrintJob (line 537) | BeginPrintJob(HDC /*hDC*/) // allocate handles needed, etc
function virtual (line 541) | virtual void EndPrintJob(HDC /*hDC*/, bool /*bAborted*/) // free handl...
function virtual (line 545) | virtual void PrePrintPage(UINT /*nPage*/, HDC hDC)
function virtual (line 552) | virtual void PostPrintPage(UINT /*nPage*/, HDC hDC)
function virtual (line 557) | virtual DEVMODE* GetNewDevModeForPage(UINT /*nLastPage*/, UINT /*nPage*/)
function virtual (line 562) | virtual bool IsValidPage(UINT /*nPage*/)
function class (line 572) | class CPrintJob
function DWORD (line 645) | static DWORD WINAPI StartProc(void* p)
function StartHelper (line 653) | bool StartHelper()
function CancelPrintJob (line 696) | void CancelPrintJob()
function class (line 706) | class CPrintPreview
function class (line 926) | class CPrintPreviewWindow : public CPrintPreviewWindowImpl<CPrintPreview...
FILE: src/Setup/wtl90/atlribbon.h
function namespace (line 124) | namespace WTL
function LPCTSTR (line 193) | LPCTSTR UIGetText(int nID)
function namespace (line 246) | namespace RibbonUI
function HRESULT (line 731) | HRESULT OnGetText(REFPROPERTYKEY key, PROPVARIANT* ppv)
function virtual (line 745) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function virtual (line 753) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function HRESULT (line 786) | HRESULT OnGetImage(REFPROPERTYKEY key, PROPVARIANT* ppv)
function virtual (line 800) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function STDMETHODIMP (line 832) | STDMETHODIMP GetValue(REFPROPERTYKEY key, PROPVARIANT *value)
function AddRef (line 838) | STDMETHODIMP_(ULONG) AddRef()
function Release (line 843) | STDMETHODIMP_(ULONG) Release()
function STDMETHODIMP (line 848) | STDMETHODIMP QueryInterface(REFIID iid, void** ppv)
type CollectionImplBase (line 870) | typedef CollectionImplBase<TCollection, t_size> thisClass;
function m_size (line 898) | m_size(t_items)
function HRESULT (line 936) | HRESULT OnGetItem(UINT uIndex, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 946) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 964) | HRESULT DoGetCategory(UINT uCat, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 989) | HRESULT InvalidateItems()
function HRESULT (line 994) | HRESULT InvalidateCategories()
function HRESULT (line 999) | HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function m_uSelected (line 1050) | m_uSelected(UI_COLLECTION_INVALIDINDEX)
function UINT (line 1066) | UINT GetSelected()
function HRESULT (line 1084) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1103) | HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function HRESULT (line 1152) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1184) | HRESULT SetComboText(LPCWSTR sText)
function LPCWSTR (line 1192) | LPCWSTR GetComboText()
function HRESULT (line 1252) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function HRESULT (line 1279) | HRESULT Select(UINT /*uItem*/, bool /*bUpdate*/ = false)
type CollectionCtrlImpl (line 1340) | typedef CollectionCtrlImpl<T, t_ID, TCollection> thisClass;
type TCollection (line 1343) | typedef TCollection Collection;
function virtual (line 1346) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function virtual (line 1359) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function HRESULT (line 1418) | HRESULT DoGetItem(UINT uItem, REFPROPERTYKEY key, PROPVARIANT *value)
function virtual (line 1473) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function virtual (line 1506) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function public (line 1535) | public TDocList
function virtual (line 1629) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function virtual (line 1667) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function virtual (line 1767) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
type T (line 2085) | typedef T WndRibbon;
function IsRibbonUI (line 2122) | bool IsRibbonUI()
function IUIFramework (line 2127) | IUIFramework* GetIUIFrameworkPtr()
function IUIRibbon (line 2142) | IUIRibbon* GetRibbonPtr()
function IUIContextualUI (line 2147) | IUIContextualUI* GetMenuPtr(UINT32 uID)
function UINT (line 2153) | UINT GetRibbonHeight()
function HRESULT (line 2177) | HRESULT DestroyRibbon()
function HRESULT (line 2190) | HRESULT operator >>(IStream* pIStream)
function HRESULT (line 2207) | HRESULT operator <<(IStream* pIStream)
function ResetRibbonSettings (line 2223) | void ResetRibbonSettings()
function HRESULT (line 2232) | HRESULT SaveRibbonSettings()
function HRESULT (line 2252) | HRESULT RestoreRibbonSettings()
function UI_CONTROLDOCK (line 2271) | UI_CONTROLDOCK GetQATDock()
function SetQATDock (line 2288) | bool SetQATDock(UI_CONTROLDOCK dockState)
function GetRibbonDisplayState (line 2308) | bool GetRibbonDisplayState(REFPROPERTYKEY key)
function IsRibbonMinimized (line 2349) | bool IsRibbonMinimized()
function IsRibbonHidden (line 2359) | bool IsRibbonHidden()
function UI_HSBCOLOR (line 2370) | UI_HSBCOLOR GetRibbonColor(REFPROPERTYKEY key)
function SetRibbonColor (line 2390) | bool SetRibbonColor(REFPROPERTYKEY key, UI_HSBCOLOR color)
function HRESULT (line 2412) | HRESULT SetRibbonModes(INT32 iModes)
function UI_CONTEXTAVAILABILITY (line 2419) | UI_CONTEXTAVAILABILITY GetRibbonContextAvail(UINT32 uID)
function HRESULT (line 2439) | HRESULT SetRibbonContextAvail(UINT32 uID, UI_CONTEXTAVAILABILITY cav)
function HasRibbonMenu (line 2448) | bool HasRibbonMenu(UINT32 uID)
function HRESULT (line 2454) | HRESULT TrackRibbonMenu(UINT32 uID, INT32 x, INT32 y)
function HRESULT (line 2463) | HRESULT TrackRibbonMenu(UINT32 uID, LPARAM lParam)
function HBITMAP (line 2469) | HBITMAP OnRibbonQueryImage(UINT nCmdID, REFPROPERTYKEY /*key*/)
function LPCWSTR (line 2474) | LPCWSTR OnRibbonQueryText(UINT nCmdID, REFPROPERTYKEY key)
function OnRibbonQueryState (line 2479) | bool OnRibbonQueryState(UINT nCmdID, REFPROPERTYKEY key)
function UI_CONTEXTAVAILABILITY (line 2484) | UI_CONTEXTAVAILABILITY OnRibbonQueryTabAvail(UINT nCmdID)
function LPCWSTR (line 2494) | LPCWSTR OnRibbonQueryComboText(UINT32 /*uCtrlID*/)
function LPCWSTR (line 2499) | LPCWSTR OnRibbonQueryCategoryText(UINT32 /*uCtrlID*/, UINT32 /*uCat*/)
function UINT32 (line 2504) | UINT32 OnRibbonQueryItemCategory(UINT32 /*uCtrlID*/, UINT32 /*uItem*/)
function LPCWSTR (line 2509) | LPCWSTR OnRibbonQueryItemText(UINT32 uCtrlID, UINT32 uItem)
function HBITMAP (line 2519) | HBITMAP OnRibbonQueryItemImage(UINT32 uCtrlID, UINT32 uItem)
function UINT32 (line 2524) | UINT32 OnRibbonQueryItemCommand(UINT32 uCtrlID, UINT32 uItem)
function UI_COMMANDTYPE (line 2529) | UI_COMMANDTYPE OnRibbonQueryItemCommandType(UINT32 /*uCtrlID*/, UINT32 /...
function LPCWSTR (line 2534) | LPCWSTR OnRibbonQueryRecentItemName(LPCWSTR sPath)
function OnRibbonQuerySpinnerValue (line 2544) | bool OnRibbonQuerySpinnerValue(UINT /*nCmdID*/, REFPROPERTYKEY /*key*/, ...
function OnRibbonQueryFloatSpinnerValue (line 2549) | bool OnRibbonQueryFloatSpinnerValue(UINT /*nCmdID*/, REFPROPERTYKEY /*ke...
function COLORREF (line 2554) | COLORREF OnRibbonQueryColor(UINT /*nCmdID*/)
function LPCWSTR (line 2559) | LPCWSTR OnRibbonQueryColorLabel(UINT /*nCmdID*/, REFPROPERTYKEY /*key*/)
function COLORREF (line 2564) | COLORREF* OnRibbonQueryColorArray(UINT /*nCmdID*/, REFPROPERTYKEY /*key*/)
function LPCWSTR (line 2569) | LPCWSTR* OnRibbonQueryColorTooltips(UINT /*nCmdID*/, REFPROPERTYKEY /*ke...
function OnRibbonItemSelected (line 2574) | bool OnRibbonItemSelected(UINT32 uCtrlID, UI_EXECUTIONVERB verb, UINT32 ...
function OnRibbonColorCtrlExecute (line 2580) | void OnRibbonColorCtrlExecute(UINT32 uCtrlID, UI_EXECUTIONVERB verb, UI_...
function OnRibbonFontCtrlExecute (line 2585) | void OnRibbonFontCtrlExecute(UINT32 uCtrlID, UI_EXECUTIONVERB verb, CHAR...
function OnRibbonSpinnerCtrlExecute (line 2590) | void OnRibbonSpinnerCtrlExecute(UINT32 uCtrlID, LONG* pVal)
function OnRibbonSpinnerCtrlExecute (line 2595) | void OnRibbonSpinnerCtrlExecute(UINT32 uCtrlID, DOUBLE* pVal)
function OnRibbonCommandExecute (line 2600) | void OnRibbonCommandExecute(UINT32 uCmdID)
function HBITMAP (line 2606) | HBITMAP DefRibbonQueryImage(UINT nCmdID)
function DefRibbonQueryState (line 2611) | bool DefRibbonQueryState(UINT nCmdID, REFPROPERTYKEY key)
function LPCTSTR (line 2631) | LPCTSTR DefRibbonQueryText(UINT nCmdID, REFPROPERTYKEY key)
function LPCWSTR (line 2661) | LPCWSTR DefRibbonQueryItemText(UINT32 uCtrlID, UINT32 uItem)
function HBITMAP (line 2666) | HBITMAP DefRibbonQueryItemImage(UINT32 uCtrlID, UINT32 uItem)
function UINT32 (line 2671) | UINT32 DefRibbonQueryItemCommand(UINT32 uCtrlID, UINT32 uItem)
function DefRibbonColorCtrlExecute (line 2676) | void DefRibbonColorCtrlExecute(UINT32 uCtrlID, UI_EXECUTIONVERB verb, UI...
function HRESULT (line 2702) | HRESULT InvalidateCtrl(UINT32 nID)
function HRESULT (line 2709) | HRESULT InvalidateProperty(UINT32 nID, REFPROPERTYKEY key, UI_INVALIDATI...
function STDMETHODIMP (line 2744) | STDMETHODIMP OnViewChanged(UINT32, UI_VIEWTYPE, IUnknown*, UI_VIEWVERB v...
function STDMETHODIMP (line 2765) | STDMETHODIMP OnCreateUICommand(UINT32 nCmdID, UI_COMMANDTYPE typeID, IUI...
function STDMETHODIMP (line 2774) | STDMETHODIMP OnDestroyUICommand(UINT32 nCmdID, UI_COMMANDTYPE, IUIComman...
function STDMETHODIMP (line 2781) | STDMETHODIMP Execute(UINT nCmdID,
function STDMETHODIMP (line 2791) | STDMETHODIMP UpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
function AddRef (line 2800) | STDMETHODIMP_(ULONG) AddRef()
function Release (line 2805) | STDMETHODIMP_(ULONG) Release()
function STDMETHODIMP (line 2816) | STDMETHODIMP QueryInterface(REFIID iid, void** ppv)
function STDMETHODIMP (line 2839) | STDMETHODIMP QueryInterface(REFIID iid, void** ppv)
function ULONG (line 2850) | ULONG STDMETHODCALLTYPE AddRef()
function ULONG (line 2854) | ULONG STDMETHODCALLTYPE Release()
function virtual (line 2861) | virtual HRESULT DoExecute(UINT nCmdID, UI_EXECUTIONVERB verb,
function virtual (line 2885) | virtual HRESULT DoUpdateProperty(UINT nCmdID, REFPROPERTYKEY key,
type _ribbonCtrl (line 3028) | typedef struct
function ResetFrame (line 3144) | void ResetFrame()
function INT (line 3150) | INT CalcWin7Fix()
function NeedWin7Fix (line 3158) | bool NeedWin7Fix()
function UseCommandBarBitmaps (line 3165) | bool UseCommandBarBitmaps(bool bUse)
function HBITMAP (line 3228) | HBITMAP OnRibbonQueryImage(UINT nCmdID, REFPROPERTYKEY key)
function LRESULT (line 3278) | LRESULT OnActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL...
function LRESULT (line 3287) | LRESULT OnNCCalcSize(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& ...
function HBITMAP (line 3328) | HBITMAP GetCommandBarBitmap(UINT nCmdID)
function class (line 3361) | class CRibbonPersist
function LONG (line 3403) | LONG Restore(bool& bRibbonUI, HGLOBAL& hgSettings)
function LONG (line 3449) | LONG Delete()
FILE: src/Setup/wtl90/atlscrl.h
function namespace (line 47) | namespace WTL
function BOOL (line 1288) | BOOL GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo)
type CFSBWindowT (line 1301) | typedef CFSBWindowT<ATL::CWindow> CFSBWindow;
type _ChildPlacement (line 1328) | struct _ChildPlacement
function GetScrollSize (line 1394) | void GetScrollSize(SIZE& sizeLog) const
function SetScrollLine (line 1400) | void SetScrollLine(int cxLogLine, int cyLogLine)
function SetScrollLine (line 1413) | void SetScrollLine(SIZE sizeLogLine)
function GetScrollLine (line 1418) | void GetScrollLine(SIZE& sizeLogLine) const
function SetScrollPage (line 1424) | void SetScrollPage(int cxLogPage, int cyLogPage)
function SetScrollPage (line 1438) | void SetScrollPage(SIZE sizeLogPage)
function GetScrollPage (line 1443) | void GetScrollPage(SIZE& sizeLogPage) const
function SetZoomScale (line 1448) | void SetZoomScale(float fZoomScale)
function SetZoomScaleMin (line 1466) | void SetZoomScaleMin(float fZoomScaleMin)
function SetZoomScaleMax (line 1479) | void SetZoomScaleMax(float fZoomScaleMax)
function SetZoomDelta (line 1492) | void SetZoomDelta(float fZoomDelta)
function SetZoomMode (line 1505) | void SetZoomMode(int nZoomMode)
function Zoom (line 1547) | void Zoom(int x, int y, float fZoomScale)
function Zoom (line 1567) | void Zoom(POINT pt, float fZoomScale)
function Zoom (line 1573) | void Zoom(RECT& rc)
function PrepareDC (line 1647) | void PrepareDC(CDCHandle dc)
function ClientToDevice (line 1678) | void ClientToDevice(POINT &pt)
function DeviceToClient (line 1684) | void DeviceToClient(POINT &pt)
function CenterOnPoint (line 1690) | void CenterOnPoint(POINT pt)
function CenterOnLogicalPoint (line 1723) | void CenterOnLogicalPoint(POINT ptLog)
function BOOL (line 1731) | BOOL PtInDevRect(POINT pt)
function NormalizeRect (line 1738) | void NormalizeRect(RECT& rc)
function DrawTrackRect (line 1755) | void DrawTrackRect()
function NotifyParentZoomChanged (line 1769) | void NotifyParentZoomChanged()
function LRESULT (line 1809) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function LRESULT (line 1845) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 1863) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1882) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 1912) | LRESULT OnSetCursor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& b...
type ATL (line 1947) | typedef ATL::CWindowImpl< T, TBase, TWinTraits > _baseClass;
function MESSAGE_HANDLER (line 2061) | BEGIN_MSG_MAP(CScrollContainerImpl)
function DoSize (line 2084) | void DoSize(int cx, int cy)
function DoPaint (line 2092) | void DoPaint(CDCHandle dc)
function ScrollToView (line 2107) | void ScrollToView(POINT pt)
function ScrollToView (line 2112) | void ScrollToView(RECT& rect)
function ScrollToView (line 2117) | void ScrollToView(HWND hWnd) // client window coordinates
function UpdateLayout (line 2131) | void UpdateLayout()
function GetContainerRect (line 2149) | void GetContainerRect(RECT& rect)
function class (line 2161) | class CScrollContainer : public CScrollContainerImpl<CScrollContainer>
FILE: src/Setup/wtl90/atlsplit.h
function namespace (line 34) | namespace WTL
function GetSplitterRect (line 122) | void GetSplitterRect(LPRECT lpRect) const
function SetSinglePaneMode (line 204) | bool SetSinglePaneMode(int nPane = SPLIT_PANE_NONE)
function SetSplitterDefaultPosPct (line 263) | void SetSplitterDefaultPosPct(int nPct)
function HWND (line 295) | HWND GetSplitterPane(int nPane) const
function SetActivePane (line 304) | bool SetActivePane(int nPane)
function GetActivePane (line 318) | int GetActivePane() const
function SetDefaultActivePane (line 359) | bool SetDefaultActivePane(int nPane)
function SetDefaultActivePane (line 370) | bool SetDefaultActivePane(HWND hWnd)
function DrawSplitter (line 389) | void DrawSplitter(CDCHandle dc)
function MoveSplitterBar (line 414) | void MoveSplitterBar()
function DrawSplitterBar (line 469) | void DrawSplitterBar(CDCHandle dc)
function DrawSplitterPane (line 497) | void DrawSplitterPane(CDCHandle dc, int nPane)
function LRESULT (line 533) | LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BO...
function LRESULT (line 564) | LRESULT OnSetCursor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& b...
function LRESULT (line 580) | LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOO...
function LRESULT (line 621) | LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, B...
function LRESULT (line 648) | LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,...
function LRESULT (line 688) | LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL&...
function LRESULT (line 744) | LRESULT OnSetFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM, BOOL& bHand...
function LRESULT (line 765) | LRESULT OnMouseActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /...
function LRESULT (line 789) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara...
function UpdateSplitterLayout (line 806) | void UpdateSplitterLayout()
function GetSplitterBarRect (line 841) | bool GetSplitterBarRect(LPRECT lpRect) const
function GetSplitterPaneRect (line 865) | bool GetSplitterPaneRect(int nPane, LPRECT lpRect) const
function IsOverSplitterRect (line 919) | bool IsOverSplitterRect(int x, int y) const
function IsOverSplitterBar (line 926) | bool IsOverSplitterBar(int x, int y) const
function DrawGhostBar (line 938) | void DrawGhostBar()
function GetSystemSettings (line 962) | void GetSystemSettings(bool bUpdate)
function StoreProportionalPos (line 998) | void StoreProportionalPos()
function UpdateProportionalPos (line 1008) | void UpdateProportionalPos()
function StoreRightAlignPos (line 1025) | void StoreRightAlignPos()
function UpdateRightAlignPos (line 1035) | void UpdateRightAlignPos()
function BOOL (line 1065) | BOOL SubclassWindow(HWND hWnd)
function MESSAGE_HANDLER (line 1084) | BEGIN_MSG_MAP(CSplitterWindowImpl)
function LRESULT (line 1097) | LRESULT OnSize(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bH...
type CSplitterWindowT (line 1121) | typedef CSplitterWindowT<true> CSplitterWindow;
type CSplitterWindowT (line 1122) | typedef CSplitterWindowT<false> CHorSplitterWindow;
FILE: src/Setup/wtl90/atltheme.h
function namespace (line 97) | namespace WTL
function Attach (line 133) | void Attach(HTHEME hTheme)
function HTHEME (line 138) | HTHEME Detach()
function IsThemingSupported (line 146) | static bool IsThemingSupported()
function HTHEME (line 174) | HTHEME OpenThemeData(HWND hWnd, LPCWSTR pszClassList)
function HRESULT (line 184) | HRESULT CloseThemeData()
function HRESULT (line 211) | HRESULT DrawThemeText(HDC hDC, int nPartID, int nStateID, LPCWSTR pszTex...
function HRESULT (line 217) | HRESULT GetThemeBackgroundContentRect(HDC hDC, int nPartID, int nStateID...
function HRESULT (line 223) | HRESULT GetThemeBackgroundExtent(HDC hDC, int nPartID, int nStateID, LPC...
function HRESULT (line 229) | HRESULT GetThemePartSize(HDC hDC, int nPartID, int nStateID, LPCRECT pRe...
function HRESULT (line 240) | HRESULT GetThemeTextExtent(HDC hDC, int nPartID, int nStateID, LPCWSTR p...
function HRESULT (line 246) | HRESULT GetThemeTextMetrics(HDC hDC, int nPartID, int nStateID, PTEXTMET...
function HRESULT (line 257) | HRESULT GetThemeBackgroundRegion(HDC hDC, int nPartID, int nStateID, LPC...
function HRESULT (line 263) | HRESULT HitTestThemeBackground(HDC hDC, int nPartID, int nStateID, DWORD...
function HRESULT (line 275) | HRESULT DrawThemeIcon(HDC hDC, int nPartID, int nStateID, LPCRECT pRect,...
function BOOL (line 281) | BOOL IsThemePartDefined(int nPartID, int nStateID) const
function BOOL (line 287) | BOOL IsThemeBackgroundPartiallyTransparent(int nPartID, int nStateID) const
function HRESULT (line 293) | HRESULT GetThemeColor(int nPartID, int nStateID, int nPropID, COLORREF* ...
function HRESULT (line 299) | HRESULT GetThemeMetric(HDC hDC, int nPartID, int nStateID, int nPropID, ...
function HRESULT (line 305) | HRESULT GetThemeString(int nPartID, int nStateID, int nPropID, LPWSTR ps...
function HRESULT (line 311) | HRESULT GetThemeBool(int nPartID, int nStateID, int nPropID, BOOL* pfVal...
function HRESULT (line 317) | HRESULT GetThemeInt(int nPartID, int nStateID, int nPropID, int* pnVal) ...
function HRESULT (line 323) | HRESULT GetThemeEnumValue(int nPartID, int nStateID, int nPropID, int* p...
function HRESULT (line 329) | HRESULT GetThemePosition(int nPartID, int nStateID, int nPropID, LPPOINT...
function HRESULT (line 336) | HRESULT GetThemeFont(int nPartID, HDC hDC, int nStateID, int nPropID, LO...
function HRESULT (line 347) | HRESULT GetThemeFont(HDC hDC, int nPartID, int nStateID, int nPropID, LO...
function HRESULT (line 358) | HRESULT GetThemeRect(int nPartID, int nStateID, int nPropID, LPRECT pRec...
function HRESULT (line 364) | HRESULT GetThemeMargins(HDC hDC, int nPartID, int nStateID, int nPropID,...
function HRESULT (line 370) | HRESULT GetThemeIntList(int nPartID, int nStateID, int nPropID, INTLIST*...
function HRESULT (line 376) | HRESULT GetThemePropertyOrigin(int nPartID, int nStateID, int nPropID, e...
function HRESULT (line 382) | HRESULT GetThemeFilename(int nPartID, int nStateID, int nPropID, LPWSTR ...
function COLORREF (line 388) | COLORREF GetThemeSysColor(int nColorID) const
function HBRUSH (line 394) | HBRUSH GetThemeSysColorBrush(int nColorID) const
function GetThemeSysSize (line 400) | int GetThemeSysSize(int nSizeID) const
function BOOL (line 406) | BOOL GetThemeSysBool(int nBoolID) const
function HRESULT (line 412) | HRESULT GetThemeSysFont(int nFontID, LOGFONTW* plf) const
function HRESULT (line 423) | HRESULT GetThemeSysString(int nStringID, LPWSTR pszStringBuff, int cchMa...
function HRESULT (line 429) | HRESULT GetThemeSysInt(int nIntID, int* pnValue) const
function HTHEME (line 436) | HTHEME OpenThemeDataEx(HWND hWnd, LPCWSTR pszClassList, DWORD dwFlags)
function HRESULT (line 447) | HRESULT DrawThemeTextEx(HDC hDC, int nPartID, int nStateID, LPCWSTR pszT...
function HRESULT (line 453) | HRESULT GetThemeTransitionDuration(int nPartID, int nFromStateID, int nT...
function HRESULT (line 462) | HRESULT GetThemeBitmap(int nPartID, int nStateID, int nPropID, ULONG uFl...
function HRESULT (line 468) | HRESULT GetThemeStream(int nPartID, int nStateID, int nPropID, VOID** pp...
function HRESULT (line 476) | HRESULT GetThemeAnimationProperty(int iStoryboardId, int iTargetId, TA_P...
function HRESULT (line 482) | HRESULT GetThemeAnimationTransform(int iStoryboardId, int iTargetId, DWO...
function HRESULT (line 488) | HRESULT GetThemeTimingFunction(int iTimingFunctionId, TA_TIMINGFUNCTION*...
function SetThemeClassList (line 599) | bool SetThemeClassList(LPCWSTR lpstrThemeClassList)
function GetThemeClassList (line 620) | bool GetThemeClassList(LPWSTR lpstrThemeClassList, int cchListBuffer) const
function HTHEME (line 653) | HTHEME OpenThemeData()
function HTHEME (line 665) | HTHEME OpenThemeData(LPCWSTR pszClassList)
function HRESULT (line 673) | HRESULT SetWindowTheme(LPCWSTR pszSubAppName, LPCWSTR pszSubIDList)
function HRESULT (line 693) | HRESULT EnableThemeDialogTexture(DWORD dwFlags)
function HRESULT (line 728) | HRESULT SetWindowThemeAttribute(WINDOWTHEMEATTRIBUTETYPE type, PVOID pvA...
function HRESULT (line 738) | HRESULT SetWindowThemeNonClientAttributes(DWORD dwAttributes, DWORD dwMask)
function MESSAGE_HANDLER (line 763) | BEGIN_MSG_MAP(CThemeImpl)
function LRESULT (line 797) | LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
function DrawThemeClientEdge (line 822) | bool DrawThemeClientEdge(HRGN hRgnUpdate)
function class (line 837) | class CBufferedPaintBase
function class (line 883) | class CBufferedPaint
function HRESULT (line 919) | HRESULT GetTargetRect(LPRECT pRect) const
function HRESULT (line 937) | HRESULT GetBits(RGBQUAD** ppbBuffer, int* pcxRow) const
function ATL_NO_VTABLE (line 967) | ATL_NO_VTABLE CBufferedPaintImpl : public CBufferedPaintBase
function class (line 1053) | class CBufferedAnimation
function IsRendering (line 1089) | static bool IsRendering(HWND hWnd, HDC hDC)
function HRESULT (line 1094) | static HRESULT StopAllAnimations(HWND hWnd)
function ATL_NO_VTABLE (line 1109) | ATL_NO_VTABLE CBufferedAnimationImpl : public CBufferedPaintBase
function MESSAGE_HANDLER (line 1156) | BEGIN_MSG_MAP(CBufferedAnimationImpl)
function LRESULT (line 1167) | LRESULT OnPaint(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /...
function SetState (line 1186) | void SetState(TState State)
function SetNewState (line 1191) | void SetNewState(TState State)
function DoAnimationPaint (line 1201) | void DoAnimationPaint(CDCHandle dc, RECT& rect)
FILE: src/Setup/wtl90/atluser.h
function namespace (line 52) | namespace WTL
function class (line 129) | class CMenuItemInfo : public MENUITEMINFO
type CMenuT (line 150) | typedef CMenuT<false> CMenuHandle;
type CMenuT (line 151) | typedef CMenuT<true> CMenu;
function Attach (line 177) | void Attach(HMENU hMenuNew)
function HMENU (line 185) | HMENU Detach()
function BOOL (line 196) | BOOL IsMenu() const
function BOOL (line 209) | BOOL CreatePopupMenu()
function BOOL (line 216) | BOOL LoadMenu(ATL::_U_STRINGorID menu)
function BOOL (line 224) | BOOL LoadMenuIndirect(const void* lpMenuTemplate)
function BOOL (line 232) | BOOL DestroyMenu()
function BOOL (line 243) | BOOL DeleteMenu(UINT nPosition, UINT nFlags)
function _FixTrackMenuPopupX (line 274) | static int _FixTrackMenuPopupX(int x, int y)
function BOOL (line 297) | BOOL GetMenuInfo(LPMENUINFO lpMenuInfo) const
function BOOL (line 303) | BOOL SetMenuInfo(LPCMENUINFO lpMenuInfo)
function BOOL (line 317) | BOOL AppendMenu(UINT nFlags, HMENU hSubMenu, LPCTSTR lpszNewItem)
function BOOL (line 325) | BOOL AppendMenu(UINT nFlags, UINT_PTR nIDNewItem, HBITMAP hBmp)
function BOOL (line 331) | BOOL AppendMenu(UINT nFlags, HMENU hSubMenu, HBITMAP hBmp)
function UINT (line 339) | UINT CheckMenuItem(UINT nIDCheckItem, UINT nCheck)
function UINT (line 345) | UINT EnableMenuItem(UINT nIDEnableItem, UINT nEnable)
function BOOL (line 352) | BOOL HiliteMenuItem(HWND hWnd, UINT uIDHiliteItem, UINT uHilite)
function GetMenuItemCount (line 358) | int GetMenuItemCount() const
function UINT (line 370) | UINT GetMenuState(UINT nID, UINT nFlags) const
function GetMenuString (line 376) | int GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount, UINT nFl...
function GetMenuStringLen (line 382) | int GetMenuStringLen(UINT nIDItem, UINT nFlags) const
function BOOL (line 389) | BOOL GetMenuString(UINT nIDItem, BSTR& bstrText, UINT nFlags) const
function GetMenuItemCount (line 417) | int GetMenuItemCount() const
function UINT (line 429) | UINT GetMenuState(UINT nID, UINT nFlags) const
function GetMenuString (line 435) | int GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount, UINT nFl...
function GetMenuStringLen (line 441) | int GetMenuStringLen(UINT nIDItem, UINT nFlags) const
function GetMenuString (line 449) | int GetMenuString(UINT nIDItem, _CSTRING_NS::CString& strText, UINT nFla...
function CMenuHandle (line 467) | CMenuHandle GetSubMenu(int nPos) const
function BOOL (line 479) | BOOL InsertMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, LPCTSTR lps...
function BOOL (line 487) | BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT_PTR nIDNewItem, HBITMA...
function BOOL (line 493) | BOOL InsertMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, HBITMAP hBmp)
function BOOL (line 506) | BOOL ModifyMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, LPCTSTR lps...
function BOOL (line 513) | BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT_PTR nIDNewItem, HBITMA...
function BOOL (line 519) | BOOL ModifyMenu(UINT nPosition, UINT nFlags, HMENU hSubMenu, HBITMAP hBmp)
function BOOL (line 527) | BOOL RemoveMenu(UINT nPosition, UINT nFlags)
function BOOL (line 534) | BOOL SetMenuItemBitmaps(UINT nPosition, UINT nFlags, HBITMAP hBmpUncheck...
function BOOL (line 541) | BOOL CheckMenuRadioItem(UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT ...
function BOOL (line 547) | BOOL GetMenuItemInfo(UINT uItem, BOOL bByPosition, LPMENUITEMINFO lpmii)...
function BOOL (line 553) | BOOL SetMenuItemInfo(UINT uItem, BOOL bByPosition, LPMENUITEMINFO lpmii)
function BOOL (line 560) | BOOL InsertMenuItem(UINT uItem, BOOL bByPosition, LPMENUITEMINFO lpmii)
function BOOL (line 578) | BOOL GetMenuItemRect(HWND hWnd, UINT uItem, LPRECT lprcItem) const
function MenuItemFromPoint (line 584) | int MenuItemFromPoint(HWND hWnd, POINT point) const
function BOOL (line 591) | BOOL SetMenuContextHelpId(DWORD dwContextHelpId)
function DWORD (line 597) | DWORD GetMenuContextHelpId() const
function Attach (line 631) | void Attach(HACCEL hAccel)
function HACCEL (line 638) | HACCEL Detach()
function HACCEL (line 650) | HACCEL LoadAccelerators(ATL::_U_STRINGorID accel)
function HACCEL (line 657) | HACCEL CreateAcceleratorTable(LPACCEL pAccel, int cEntries)
function DestroyObject (line 665) | void DestroyObject()
function CopyAcceleratorTable (line 676) | int CopyAcceleratorTable(LPACCEL lpAccelDst, int cEntries)
function BOOL (line 690) | BOOL TranslateAccelerator(HWND hWnd, LPMSG pMsg)
type CAcceleratorT (line 699) | typedef CAcceleratorT<false> CAcceleratorHandle;
type CAcceleratorT (line 700) | typedef CAcceleratorT<true> CAccelerator;
function Attach (line 728) | void Attach(HICON hIcon)
function HICON (line 735) | HICON Detach()
function HICON (line 747) | HICON LoadIcon(ATL::_U_STRINGorID icon)
function HICON (line 762) | HICON LoadOEMIcon(LPCTSTR lpstrIconName)
function HICON (line 770) | HICON CreateIcon(int nWidth, int nHeight, BYTE cPlanes, BYTE cBitsPixel,...
function HICON (line 797) | HICON CreateIconIndirect(PICONINFO pIconInfo)
function HICON (line 806) | HICON ExtractIcon(LPCTSTR lpszExeFileName, UINT nIconIndex)
function HICON (line 814) | HICON ExtractAssociatedIcon(HINSTANCE hInst, LPTSTR lpIconPath, LPWORD l...
function BOOL (line 824) | BOOL DestroyIcon()
function HICON (line 835) | HICON CopyIcon()
function HICON (line 841) | HICON DuplicateIcon()
function BOOL (line 848) | BOOL DrawIcon(HDC hDC, int x, int y)
function BOOL (line 858) | BOOL DrawIcon(HDC hDC, POINT pt)
function BOOL (line 881) | BOOL GetIconInfo(PICONINFO pIconInfo) const
function BOOL (line 889) | BOOL GetIconInfoEx(PICONINFOEX pIconInfo) const
function HRESULT (line 898) | HRESULT LoadIconMetric(ATL::_U_STRINGorID icon, int lims)
function HRESULT (line 905) | HRESULT LoadIconWithScaleDown(ATL::_U_STRINGorID icon, int cx, int cy)
function HRESULT (line 912) | HRESULT LoadOEMIconMetric(LPCTSTR lpstrIconName, int lims)
function HRESULT (line 919) | HRESULT LoadOEMIconWithScaleDown(LPCTSTR lpstrIconName, int cx, int cy)
function IsOEMIcon (line 931) | static bool IsOEMIcon(LPCTSTR lpstrIconName)
type CIconT (line 945) | typedef CIconT<false> CIconHandle;
type CIconT (line 946) | typedef CIconT<true> CIcon;
function Attach (line 979) | void Attach(HCURSOR hCursor)
function HCURSOR (line 986) | HCURSOR Detach()
function HCURSOR (line 998) | HCURSOR LoadCursor(ATL::_U_STRINGorID cursor)
function HCURSOR (line 1005) | HCURSOR LoadSysCursor(LPCTSTR lpstrCursorName)
function HCURSOR (line 1027) | HCURSOR LoadOEMCursor(LPCTSTR lpstrCursorName)
function HCURSOR (line 1040) | HCURSOR LoadCursorFromFile(LPCTSTR pstrFilename)
function HCURSOR (line 1050) | HCURSOR CreateCursor(int xHotSpot, int yHotSpot, int nWidth, int nHeight...
function BOOL (line 1077) | BOOL DestroyCursor()
function HCURSOR (line 1093) | HCURSOR CopyCursor()
function BOOL (line 1101) | BOOL GetCursorInfo(LPCURSORINFO pCursorInfo)
type CCursorT (line 1110) | typedef CCursorT<false> CCursorHandle;
type CCursorT (line 1111) | typedef CCursorT<true> CCursor;
function class (line 1119) | class CResource
type _AtlToolBarData (line 1206) | struct _AtlToolBarData
function HACCEL (line 1221) | inline HACCEL AtlLoadAccelerators(ATL::_U_STRINGorID table)
function HMENU (line 1226) | inline HMENU AtlLoadMenu(ATL::_U_STRINGorID menu)
function HBITMAP (line 1231) | inline HBITMAP AtlLoadBitmap(ATL::_U_STRINGorID bitmap)
function HBITMAP (line 1237) | inline HBITMAP AtlLoadSysBitmap(ATL::_U_STRINGorID bitmap)
function HCURSOR (line 1247) | inline HCURSOR AtlLoadCursor(ATL::_U_STRINGorID cursor)
function HCURSOR (line 1252) | inline HCURSOR AtlLoadSysCursor(LPCTSTR lpCursorName)
function HICON (line 1271) | inline HICON AtlLoadIcon(ATL::_U_STRINGorID icon)
function HICON (line 1277) | inline HICON AtlLoadSysIcon(LPCTSTR lpIconName)
function HBITMAP (line 1291) | inline HBITMAP AtlLoadBitmapImage(ATL::_U_STRINGorID bitmap, UINT fuLoad...
function HBITMAP (line 1307) | inline HBITMAP AtlLoadSysBitmapImage(WORD wBitmapID, UINT fuLoad = LR_DE...
function AtlLoadString (line 1336) | inline int AtlLoadString(UINT uID, LPTSTR lpBuffer, int nBufferMax)
function LPCTSTR (line 1347) | inline LPCTSTR AtlLoadString(UINT uID)
function AtlLoadString (line 1359) | inline bool AtlLoadString(UINT uID, BSTR& bstrText)
FILE: src/Setup/wtl90/atlwince.h
function namespace (line 163) | namespace WTL
function AtlIsEditFocus (line 195) | inline bool AtlIsEditFocus()
function AtlActivateBackKey (line 208) | inline void AtlActivateBackKey(HWND hMenuBar)
function BOOL (line 245) | BOOL GetClientRect(LPRECT lpRect)
function BOOL (line 255) | BOOL SetWindowText(LPCTSTR lpszString)
function GetTitleHeight (line 266) | static const int GetTitleHeight()
function DoPaintTitle (line 277) | bool DoPaintTitle()
function DialogTitleInit (line 319) | void DialogTitleInit()
function DoSipInfo (line 337) | void DoSipInfo()
function LRESULT (line 350) | LRESULT OnPaintTitle(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/...
function LRESULT (line 370) | LRESULT OnHotKey(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandl...
function StdSPInit (line 385) | void StdSPInit()
function SetStaticBold (line 397) | void SetStaticBold()
function StdPlatformInit (line 416) | void StdPlatformInit()
function StdCloseDialog (line 436) | void StdCloseDialog(WORD wID)
function StdShidInit (line 446) | void StdShidInit()
function LRESULT (line 454) | LRESULT OnColorStatic(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL&...
function LRESULT (line 465) | LRESULT OnMenuClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BO...
function LRESULT (line 473) | LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOO...
function BOOL (line 492) | BOOL GetClientRect(LPRECT lpRect)
function BOOL (line 497) | BOOL SetWindowText(LPCTSTR lpszString)
function LRESULT (line 516) | LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/...
function BOOL (line 620) | BOOL GetClientRect(LPRECT lpRect)
function BOOL (line 625) | BOOL SetWindowText(LPCTSTR lpszString)
function OnOrientation (line 774) | void OnOrientation(DRA::DisplayMode /*mode*/)
function LRESULT (line 778) | LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/,.
Condensed preview — 216 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,956K chars).
[
{
"path": ".gitattributes",
"chars": 788,
"preview": "*.doc diff=astextplain\n*.DOC\tdiff=astextplain\n*.docx\tdiff=astextplain\n*.DOCX\tdiff=astextplain\n*.dot\tdiff=astextplain\n*."
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 555,
"preview": "---\nname: Bug report\nabout: Feedback to help us improve the project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Squirrel "
},
{
"path": ".github/workflows/build.yml",
"chars": 787,
"preview": "name: Build Squirrel\n\non:\n push:\n branches:\n - master\n - develop\n pull_request:\n branches:\n - mas"
},
{
"path": ".gitignore",
"chars": 2126,
"preview": "\n#################\n## Eclipse\n#################\n\n*.pydevproject\n.project\n.metadata\nbin/**\ntmp/**\ntmp/**/*\n*.tmp\n*.bak\n*."
},
{
"path": ".gitmodules",
"chars": 125,
"preview": "[submodule \"vendor/nuget\"]\n\tpath = vendor/nuget\n\turl = https://github.com/Squirrel/NuGet\n\tbranch = fix-prerelease-compar"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3357,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
},
{
"path": "COPYING",
"chars": 1059,
"preview": "Copyright (c) 2012 GitHub, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this "
},
{
"path": "README.md",
"chars": 2608,
"preview": "| README.md |\n|:---|\n\n# Contributors Needed\n\nWe are looking for help with maintaining this important project - please re"
},
{
"path": "Squirrel.sln",
"chars": 40867,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.2"
},
{
"path": "devbuild.cmd",
"chars": 568,
"preview": "@echo off\n\nsetlocal\npushd %~dp0\n\n:parse_args\nif /i \"%1\"==\"release\" set _C=/p:Configuration=Release\nif /i \"%1\"==\"init\" se"
},
{
"path": "docs/contributing/branching-strategy.md",
"chars": 1696,
"preview": "| [docs](..) / [contributing](.) / branching-strategy.md\n|:---|\n\n# tl;dr\n\n1. Fork Squirrel.Windows on GitHub\n2. Send fe"
},
{
"path": "docs/contributing/building-squirrel.md",
"chars": 965,
"preview": "| [docs](..) / [contributing](.) / building-squirrel.md\n|:---|\n\n# Building Squirrel\n\nSquirrel.Windows is a fairly typic"
},
{
"path": "docs/contributing/contributing.md",
"chars": 854,
"preview": "| [docs](..) / [contributing](.) / contributing.md\n|:---|\n\n# Contributing\n\nWhy not give back and help make Squirrel eve"
},
{
"path": "docs/contributing/vs-solution-overview.md",
"chars": 2003,
"preview": "| [docs](..) / [contributing](.) / vs-solution-overview.md\r\n|:---|\r\n\r\n# Visual Studio Solution Overview\r\n\r\nAn overview "
},
{
"path": "docs/faq.md",
"chars": 6720,
"preview": "| [docs](.) / faq.md |\n|:---|\n\n# Frequently Asked Questions (FAQ)\n\nFrequently Asked Questions for Squirrel.Windows, orga"
},
{
"path": "docs/getting-started/0-overview.md",
"chars": 1182,
"preview": "| [docs](..) / [getting-started](.) / 0-overview.md|\n|:---|\n\n# Getting Started Guide\n\nGetting Started will walk you thro"
},
{
"path": "docs/getting-started/1-integrating.md",
"chars": 3004,
"preview": "| [docs](..) / [getting-started](.) / 1-integrating.md |\n|:---|\n\n\n\n# Step 1. Integrating\n\nThe first step is to configure"
},
{
"path": "docs/getting-started/2-packaging.md",
"chars": 4263,
"preview": "| [docs](..) / [getting-started](.) / 2-packaging.md |\n|:---|\n\n# Step 2. Packaging\n\nPackaging is the process of building"
},
{
"path": "docs/getting-started/3-distributing.md",
"chars": 1066,
"preview": "| [docs](..) / [getting-started](.) / 3-distributing.md |\n|:---|\n\n# Step 3. Distributing\r\n\nAfter packaging MyApp for dis"
},
{
"path": "docs/getting-started/4-installing.md",
"chars": 1208,
"preview": "| [docs](..) / [getting-started](.) / 4-installing.md |\n|:---|\n# Step 4. Installing\r\n\r\nThe process to install MyApp is a"
},
{
"path": "docs/getting-started/5-updating.md",
"chars": 4451,
"preview": "| [docs](..) / [getting-started](.) / 5-updating.md |\n|:---|\n\n# Step 5. Updating\r\n\r\nThe update process uses the update f"
},
{
"path": "docs/goals.md",
"chars": 2031,
"preview": "| [docs](.) / goals.md |\n|:---|\n\n# What Do We Want?\r\n\r\nDeployment and Updates for Desktop applications are a real drag. "
},
{
"path": "docs/readme.md",
"chars": 4565,
"preview": "| [docs](.) / readme.md |\n|:---|\n\n\n\n# Table of Contents\n\nThis document provides a table of"
},
{
"path": "docs/using/amazon-s3.md",
"chars": 1670,
"preview": "| [docs](..) / [using](.) / amazon-s3.md\n|:---|\n\n# Amazon S3\n\nAmazon S3 can be used as an easy mechanism to host your r"
},
{
"path": "docs/using/application-signing.md",
"chars": 2820,
"preview": "| [docs](..) / [using](.) / application-signing.md\r\n|:---|\r\n\r\n\r\n# Application Signing\r\n\r\nSigning your installer with a "
},
{
"path": "docs/using/custom-squirrel-events-non-cs.md",
"chars": 1920,
"preview": "| [docs](..) / [using](.) / custom-squirrel-events-non-cs.md\n|:---|\n\n# Custom Squirrel Events (Non-C# Apps)\n\nSquirrel e"
},
{
"path": "docs/using/custom-squirrel-events.md",
"chars": 2664,
"preview": "| [docs](..) / [using](.) / custom-squirrel-events.md\n|:---|\n\n# Custom Squirrel Events\n\n## Handling Squirrel Events\n\nSq"
},
{
"path": "docs/using/debugging-installs.md",
"chars": 715,
"preview": "| [docs](..) / [using](.) / debugging-installs.md\n|:---|\n\n# Debugging Installs\n\nThe following tips will help you to deb"
},
{
"path": "docs/using/debugging-updates.md",
"chars": 1695,
"preview": "| [docs](..) / [using](.) / debugging-updates.md\n|:---|\n\n# Debugging Updates\n\nThe following tips will help you to debug"
},
{
"path": "docs/using/delta-packages.md",
"chars": 1607,
"preview": "| [docs](..) / [using](.) / delta-packages.md\n|:---|\n\n\n# Delta Packages\r\n\nNow, once we've got a full package, we need t"
},
{
"path": "docs/using/github.md",
"chars": 4874,
"preview": "| [docs](..) / [using](.) / github.md\n|:---|\n\n# Using GitHub\n\nGitHub release assets can be used to distribute the neces"
},
{
"path": "docs/using/install-process.md",
"chars": 3999,
"preview": "| [docs](..) / [using](.) / install-process.md\n|:---|\n\n# Install Process\n\nThis section goes into detail about the insta"
},
{
"path": "docs/using/loading-gif.md",
"chars": 908,
"preview": "| [docs](..) / [using](.) / loading-gif.md\n|:---|\n\n# Loading GIF\r\n\nSquirrel installers don't have any UI - the goal of "
},
{
"path": "docs/using/machine-wide-installs.md",
"chars": 1690,
"preview": "| [docs](..) / [using](.) / machine-wide-installs.md\r\n|:---|\r\n\r\n\r\n# Machine-wide Installs\r\n\r\nSquirrel's Releasify comma"
},
{
"path": "docs/using/microsoft-iis.md",
"chars": 856,
"preview": "| [docs](..) / [using](.) / microsoft-iis.md\n|:---|\n\n# Microsoft IIS\n\nIf you use Microsoft IIS to distribute the necess"
},
{
"path": "docs/using/naming.md",
"chars": 1432,
"preview": "| [docs](..) / [using](.) / naming.md\n|:---|\n\n# Naming Conventions\n\nIn addition to the [NuGet Package Metadata](nuget-p"
},
{
"path": "docs/using/nuget-package-metadata.md",
"chars": 1455,
"preview": "| [docs](..) / [using](.) / nuget-package-metadata.md\n|:---|\n\n# NuGet Package Metadata\n\nSquirrel uses information from "
},
{
"path": "docs/using/octopack.md",
"chars": 1029,
"preview": "| [docs](..) / [using](.) / octopack.md\n|:---|\n\n# Using OctoPack\n\nIn order to automatically construct your nuget packag"
},
{
"path": "docs/using/packaging-tools.md",
"chars": 1295,
"preview": "| [docs](..) / [using](.) / packaging-tools.md\n|:---|\n\n\n# Packaging Tools\n\nThe following tools can simplify and/or auto"
},
{
"path": "docs/using/squirrel-command-line.md",
"chars": 1857,
"preview": "| [docs](..) / [using](.) / squirrel-command-line.md\n|:---|\n\n# Squirrel Command Line\r\n\nHere is a simplified help output"
},
{
"path": "docs/using/staged-rollouts.md",
"chars": 2284,
"preview": "| [docs](..) / [using](.) / staged-rollouts.md\n|:---|\n\n# Staged Rollouts\n\nStaged rollouts allow you to distribute the l"
},
{
"path": "docs/using/teamcity.md",
"chars": 1081,
"preview": "| [docs](..) / [using](.) / teamcity.md\n|:---|\n\n\n# Team City Packaging\n\n\n## Adding the Packaging Step\n\rWhen TeamCity pu"
},
{
"path": "docs/using/update-manager.md",
"chars": 1586,
"preview": "| [docs](..) / [using](.) / update-manager.md\r\n|:---|\r\n\r\n# Update Manager Reference\r\n\r\n## Basic Updating\r\n\r\nThe \"Easy M"
},
{
"path": "docs/using/update-process.md",
"chars": 1892,
"preview": "| [docs](..) / [using](.) / update-process.md\n|:---|\n\n\n# Update Process\n\nThe following steps are performed by the `Upda"
},
{
"path": "docs/using/visual-studio-packaging.md",
"chars": 2588,
"preview": "| [docs](..) / [using](.) / visual-studio-packaging.md\n|:---|\n\n# Visual Studio Build Packaging\n\nSquirrel packaging can "
},
{
"path": "docs/using/x-doc-template.md",
"chars": 208,
"preview": "| [docs](..) / [using](.) / filename.md\n|:---|\n\n# Title\n\ntext\n\n## Sub-title\n\ntext\n\n~~~cs\ncode\n~~~\n\n**Tip:** text\n\n\n## S"
},
{
"path": "src/Directory.Build.props",
"chars": 1426,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n <PropertyGroup>\n <Configuration Condition=\" '$(Configuration)' == "
},
{
"path": "src/Setup/FxHelper.cpp",
"chars": 11949,
"preview": "#include \"stdafx.h\"\n#include \"FxHelper.h\"\n#include \"resource.h\"\n\n// http://msdn.microsoft.com/en-us/library/hh925568(v=v"
},
{
"path": "src/Setup/FxHelper.h",
"chars": 837,
"preview": "#pragma once\n\nenum class NetVersion {net45=0, net451=1, net452=2, net46=3, net461=4, net462=5, net47=6, net471=7, net472"
},
{
"path": "src/Setup/MachineInstaller.cpp",
"chars": 2022,
"preview": "#include \"stdafx.h\"\n#include \"unzip.h\"\n#include \"MachineInstaller.h\"\n#include \"resource.h\"\n#include <sddl.h>\n\nbool direc"
},
{
"path": "src/Setup/MachineInstaller.h",
"chars": 85,
"preview": "#pragma once\nclass MachineInstaller\n{\npublic:\n\tstatic bool ShouldSilentInstall();\n};\n"
},
{
"path": "src/Setup/Setup.h",
"chars": 36,
"preview": "#pragma once\n\n#include \"resource.h\"\n"
},
{
"path": "src/Setup/Setup.vcxproj",
"chars": 6391,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "src/Setup/Setup.vcxproj.filters",
"chars": 2676,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "src/Setup/UpdateRunner.cpp",
"chars": 7931,
"preview": "#include \"stdafx.h\"\n#include \"unzip.h\"\n#include \"Resource.h\"\n#include \"UpdateRunner.h\"\n#include <vector>\n\nvoid CUpdateRu"
},
{
"path": "src/Setup/UpdateRunner.h",
"chars": 446,
"preview": "#pragma once\nclass CUpdateRunner\n{\n\npublic:\n\tstatic void DisplayErrorMessage(CString& errorMessage, wchar_t* logFile);\n\t"
},
{
"path": "src/Setup/compat.manifest",
"chars": 641,
"preview": "<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\n <compatibility xmlns=\"urn:schemas-microsof"
},
{
"path": "src/Setup/stdafx.cpp",
"chars": 284,
"preview": "// stdafx.cpp : source file that includes just the standard includes\n// Setup.pch will be the pre-compiled header\n// std"
},
{
"path": "src/Setup/stdafx.h",
"chars": 1641,
"preview": "// stdafx.h : include file for standard system include files,\n// or project specific include files that are used frequen"
},
{
"path": "src/Setup/targetver.h",
"chars": 358,
"preview": "#pragma once\n\n// Including SDKDDKVer.h defines the highest available Windows platform.\n\n// If you wish to build your app"
},
{
"path": "src/Setup/unzip.cpp",
"chars": 145049,
"preview": "#include \"stdafx.h\"\n#include \"unzip.h\"\n\n\n// THIS FILE is almost entirely based upon code by Jean-loup Gailly\n// and Mark"
},
{
"path": "src/Setup/unzip.h",
"chars": 9903,
"preview": "#ifndef _unzip_H\n#define _unzip_H\n\n// UNZIPPING functions -- for unzipping.\n// This file is a repackaged form of extract"
},
{
"path": "src/Setup/winmain.cpp",
"chars": 3906,
"preview": "// Setup.cpp : Defines the entry point for the application.\n//\n\n#include \"stdafx.h\"\n#include \"Setup.h\"\n#include \"FxHelpe"
},
{
"path": "src/Setup/wtl90/atlapp.h",
"chars": 57459,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlcrack.h",
"chars": 60189,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlctrls.h",
"chars": 266948,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlctrlw.h",
"chars": 118541,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlctrlx.h",
"chars": 130488,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlddx.h",
"chars": 16634,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atldlgs.h",
"chars": 175643,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atldwm.h",
"chars": 11763,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlfind.h",
"chars": 27465,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlframe.h",
"chars": 105363,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlgdi.h",
"chars": 97633,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlmisc.h",
"chars": 84232,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlprint.h",
"chars": 28965,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlres.h",
"chars": 9887,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlresce.h",
"chars": 2524,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlribbon.h",
"chars": 88681,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlscrl.h",
"chars": 59764,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlsplit.h",
"chars": 29894,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atltheme.h",
"chars": 35516,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atluser.h",
"chars": 38317,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlwince.h",
"chars": 80982,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Setup/wtl90/atlwinx.h",
"chars": 13882,
"preview": "// Windows Template Library - WTL version 9.0\n// Copyright (C) Microsoft Corporation, WTL Team. All rights reserved.\n//\n"
},
{
"path": "src/Squirrel/ApplyReleasesProgress.cs",
"chars": 1310,
"preview": "namespace Squirrel\n{\n using System;\n\n internal class ApplyReleasesProgress : Progress<int>\n {\n private "
},
{
"path": "src/Squirrel/BinaryPatchUtility.cs",
"chars": 36451,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Threading;\nusin"
},
{
"path": "src/Squirrel/ContentType.cs",
"chars": 2343,
"preview": "using System;\nusing System.Linq;\nusing System.Xml;\n\nnamespace Squirrel\n{\n internal static class ContentType\n {\n "
},
{
"path": "src/Squirrel/DeltaPackage.cs",
"chars": 15633,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics.Contracts;\nusing System.IO;\nusing System.Linq;"
},
{
"path": "src/Squirrel/EnumerableExtensions.cs",
"chars": 12477,
"preview": "// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt\n\nusing System;\nusing System.Lin"
},
{
"path": "src/Squirrel/FileDownloader.cs",
"chars": 2776,
"preview": "using System;\nusing System.Net;\nusing System.Threading.Tasks;\nusing Squirrel.SimpleSplat;\n\nnamespace Squirrel\n{\n pub"
},
{
"path": "src/Squirrel/IUpdateManager.cs",
"chars": 9327,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics.Contracts;\nusing System.IO;\nusing System.Linq;\n"
},
{
"path": "src/Squirrel/MarkdownSharp.cs",
"chars": 70285,
"preview": "/*\n * MarkdownSharp\n * -------------\n * a C# Markdown processor\n *\n * Markdown is a text-to-HTML conversion tool for we"
},
{
"path": "src/Squirrel/MsDeltaCompression.cs",
"chars": 1069,
"preview": "#nullable enable\n\nusing System;\nusing System.ComponentModel;\n\nnamespace Squirrel\n{\n internal class MsDeltaCompressio"
},
{
"path": "src/Squirrel/NativeMethods.cs",
"chars": 13888,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Runtime.Inter"
},
{
"path": "src/Squirrel/Properties/AssemblyInfo.cs",
"chars": 317,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n[assembly: ComVi"
},
{
"path": "src/Squirrel/ReleaseEntry.cs",
"chars": 11667,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics.Contracts;\nusing System.IO;\nusing System.Linq;"
},
{
"path": "src/Squirrel/ReleaseExtensions.cs",
"chars": 904,
"preview": "using NuGet;\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Text;\nusi"
},
{
"path": "src/Squirrel/ReleasePackage.cs",
"chars": 15469,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.Design;\nusing System.Diagnostics.Contracts;\n"
},
{
"path": "src/Squirrel/ShellFile.cs",
"chars": 43128,
"preview": "using System;\nusing System.Drawing;\nusing System.Runtime.InteropServices;\nusing System.Text;\n\n// All of this code is fr"
},
{
"path": "src/Squirrel/SimpleJson/SimpleJson.cs",
"chars": 87091,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SimpleJson.cs\" company=\"Th"
},
{
"path": "src/Squirrel/SimpleSplat/AssemblyFinder.cs",
"chars": 897,
"preview": "using System;\nusing System.Linq;\nusing System.Reflection;\n\nnamespace Squirrel.SimpleSplat\n{\n static class AssemblyFi"
},
{
"path": "src/Squirrel/SimpleSplat/Logging.cs",
"chars": 25937,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Reflection;\nusing System.Globalization;\nusing System.Text;\nusin"
},
{
"path": "src/Squirrel/SimpleSplat/MemoizingMRUCache.cs",
"chars": 5970,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Diagnostics.Contracts;\n\nnamespace Squir"
},
{
"path": "src/Squirrel/SimpleSplat/ModeDetector.cs",
"chars": 3556,
"preview": "using System;\n\nnamespace Squirrel.SimpleSplat\n{\n public interface IModeDetector\n {\n bool? InUnitTestRunner("
},
{
"path": "src/Squirrel/SimpleSplat/PlatformModeDetector.cs",
"chars": 2568,
"preview": "using System;\nusing System.IO;\nusing System.Reflection;\nusing System.Collections.Generic;\nusing System.Linq;\nusing Syste"
},
{
"path": "src/Squirrel/SimpleSplat/ServiceLocation.cs",
"chars": 16415,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\n\nnamespace Squirrel.SimpleSp"
},
{
"path": "src/Squirrel/Squirrel.csproj",
"chars": 1150,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFrameworks>net45"
},
{
"path": "src/Squirrel/SquirrelAwareApp.cs",
"chars": 3498,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "src/Squirrel/SquirrelAwareExecutableDetector.cs",
"chars": 4064,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System.IO;\nusing System.Linq;\nusing S"
},
{
"path": "src/Squirrel/TaskbarHelper.cs",
"chars": 2421,
"preview": "using System;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropServices;\n\nnamespace Squirrel.Shell\n{\n "
},
{
"path": "src/Squirrel/TrayHelper.cs",
"chars": 12888,
"preview": "using Microsoft.Win32;\nusing Squirrel.SimpleSplat;\nusing System;\nusing System.Collections.Generic;\nusing System.Diagnos"
},
{
"path": "src/Squirrel/UpdateInfo.cs",
"chars": 3442,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics.Contracts;\nusing System.Linq;\nusing System.Runt"
},
{
"path": "src/Squirrel/UpdateManager.ApplyReleases.cs",
"chars": 36489,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Diagnostics.Contracts;\nusing Sys"
},
{
"path": "src/Squirrel/UpdateManager.CheckForUpdates.cs",
"chars": 9547,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Net;\nusing System.Text"
},
{
"path": "src/Squirrel/UpdateManager.DownloadReleases.cs",
"chars": 4897,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Text;\nusing System.Thr"
},
{
"path": "src/Squirrel/UpdateManager.Factory.cs",
"chars": 3342,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Net.Http.Headers"
},
{
"path": "src/Squirrel/UpdateManager.InstallHelpers.cs",
"chars": 7192,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Drawing;\nusing System.Globalizat"
},
{
"path": "src/Squirrel/UpdateManager.cs",
"chars": 14344,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Diagnostics.Contracts;\nusing Syst"
},
{
"path": "src/Squirrel/Utility.cs",
"chars": 32790,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Diagnostics.Contracts;\nusing "
},
{
"path": "src/Squirrel.nuspec",
"chars": 2563,
"preview": "<?xml version=\"1.0\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n <metadata>\n <ver"
},
{
"path": "src/StubExecutable/LICENSE.md",
"chars": 1190,
"preview": "This executable uses the semver library from https://github.com/zmarko/semver, under the following license:\n\nThe MIT Lic"
},
{
"path": "src/StubExecutable/Resource.h",
"chars": 732,
"preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by StubExecutable.rc\n//\n\n#define IDS_APP_T"
},
{
"path": "src/StubExecutable/Semver200_comparator.cpp",
"chars": 4614,
"preview": "/*\nThe MIT License (MIT)\n\nCopyright (c) 2015 Marko Zivanovic\n\nPermission is hereby granted, free of charge, to any perso"
},
{
"path": "src/StubExecutable/Semver200_parser.cpp",
"chars": 7690,
"preview": "/*\nThe MIT License (MIT)\n\nCopyright (c) 2015 Marko Zivanovic\n\nPermission is hereby granted, free of charge, to any perso"
},
{
"path": "src/StubExecutable/StubExecutable.cpp",
"chars": 3204,
"preview": "// StubExecutable.cpp : Defines the entry point for the application.\n//\n\n#include \"stdafx.h\"\n#include \"StubExecutable.h\""
},
{
"path": "src/StubExecutable/StubExecutable.h",
"chars": 36,
"preview": "#pragma once\n\n#include \"resource.h\"\n"
},
{
"path": "src/StubExecutable/StubExecutable.vcxproj",
"chars": 7053,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "src/StubExecutable/StubExecutable.vcxproj.filters",
"chars": 2246,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "src/StubExecutable/semver200.h",
"chars": 1882,
"preview": "/*\nThe MIT License (MIT)\n\nCopyright (c) 2015 Marko Zivanovic\n\nPermission is hereby granted, free of charge, to any perso"
},
{
"path": "src/StubExecutable/stdafx.cpp",
"chars": 293,
"preview": "// stdafx.cpp : source file that includes just the standard includes\n// StubExecutable.pch will be the pre-compiled head"
},
{
"path": "src/StubExecutable/stdafx.h",
"chars": 546,
"preview": "// stdafx.h : include file for standard system include files,\n// or project specific include files that are used frequen"
},
{
"path": "src/StubExecutable/targetver.h",
"chars": 306,
"preview": "#pragma once\n\n// Including SDKDDKVer.h defines the highest available Windows platform.\n\n// If you wish to build your app"
},
{
"path": "src/StubExecutable/version.h",
"chars": 6302,
"preview": "/*\nThe MIT License (MIT)\n\nCopyright (c) 2015 Marko Zivanovic\n\nPermission is hereby granted, free of charge, to any pers"
},
{
"path": "src/StubExecutable/version.inl",
"chars": 4838,
"preview": "/*\nThe MIT License (MIT)\n\nCopyright (c) 2015 Marko Zivanovic\n\nPermission is hereby granted, free of charge, to any perso"
},
{
"path": "src/SyncReleases/App.config",
"chars": 180,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n <startup> \n <supportedRuntime version=\"v4.0\" sku=\".N"
},
{
"path": "src/SyncReleases/Mono.Options/Options.cs",
"chars": 39525,
"preview": "//\n// Options.cs\n//\n// Authors:\n// Jonathan Pryor <jpryor@novell.com>\n// Federico Di Gregorio <fog@initd.org>\n// Rolf"
},
{
"path": "src/SyncReleases/Program.cs",
"chars": 4231,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System.IO;\nusing System.Linq;\nusing S"
},
{
"path": "src/SyncReleases/SyncImplementations.cs",
"chars": 6661,
"preview": "using System;\nusing System.IO;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Squirrel;\nu"
},
{
"path": "src/SyncReleases/SyncReleases.csproj",
"chars": 1188,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n <Import Project=\"Sdk.props\" Sdk=\"Microsoft.NET.Sdk\" />\n\n <PropertyG"
},
{
"path": "src/Update/AnimatedGifWindow.cs",
"chars": 3510,
"preview": "#if !MONO\nusing System;\nusing System.IO;\nusing System.Reflection;\nusing System.Threading;\nusing System.Threading.Tasks;"
},
{
"path": "src/Update/App.config",
"chars": 180,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n <startup> \n <supportedRuntime version=\"v4.0\" sku=\".N"
},
{
"path": "src/Update/AuthenticodeTools.cs",
"chars": 6327,
"preview": "using System;\nusing System.Runtime.InteropServices;\n\nnamespace Squirrel.Update\n{\n internal static class Authenticode"
},
{
"path": "src/Update/CopStache.cs",
"chars": 762,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Security;\nusing System.Text;\nusing Syst"
},
{
"path": "src/Update/Mono.Options/Options.cs",
"chars": 39489,
"preview": "//\n// Options.cs\n//\n// Authors:\n// Jonathan Pryor <jpryor@novell.com>\n// Federico Di Gregorio <fog@initd.org>\n// Rolf"
},
{
"path": "src/Update/Program.cs",
"chars": 38011,
"preview": "using NuGet;\nusing Squirrel.SimpleSplat;\nusing Squirrel.Json;\nusing System;\nusing System.Collections.Generic;\nusing Sys"
},
{
"path": "src/Update/StartupOption.cs",
"chars": 6279,
"preview": "using Mono.Options;\nusing System;\n\nnamespace Squirrel.Update\n{\n internal class StartupOption\n {\n private r"
},
{
"path": "src/Update/Update-Mono.csproj",
"chars": 1561,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n <Import Project=\"Sdk.props\" Sdk=\"Microsoft.NET.Sdk\" />\n\n <PropertyG"
},
{
"path": "src/Update/Update.csproj",
"chars": 1520,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n <Import Project=\"Sdk.props\" Sdk=\"Microsoft.NET.Sdk\" />\n\n <PropertyG"
},
{
"path": "src/Update/app.manifest",
"chars": 1458,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">\n <ass"
},
{
"path": "src/Update/packages.config",
"chars": 648,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"DeltaCompressionDotNet\" version=\"1.1.0\" targetFramewor"
},
{
"path": "src/WriteZipToSetup/WriteZipToSetup.cpp",
"chars": 3486,
"preview": "// WriteZipToSetup.cpp : Defines the entry point for the console application.\n//\n\n#include \"stdafx.h\"\n\nusing namespace s"
},
{
"path": "src/WriteZipToSetup/WriteZipToSetup.vcxproj",
"chars": 4243,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "src/WriteZipToSetup/WriteZipToSetup.vcxproj.filters",
"chars": 1151,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "src/WriteZipToSetup/stdafx.cpp",
"chars": 294,
"preview": "// stdafx.cpp : source file that includes just the standard includes\n// WriteZipToSetup.pch will be the pre-compiled hea"
},
{
"path": "src/WriteZipToSetup/stdafx.h",
"chars": 491,
"preview": "// stdafx.h : include file for standard system include files,\n// or project specific include files that are used frequen"
},
{
"path": "src/build_official.cmd",
"chars": 2960,
"preview": "@echo off\n\nsetlocal\npushd %~dp0\n\n:parse_args\nif not \"%1\"==\"\" shift & goto parse_args\n\n:: Init\n\nif \"%VCToolsVersion%\"==\"\""
},
{
"path": "src/squirrel.windows.props",
"chars": 227,
"preview": "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <PropertyGroup>\n <SquirrelToolsPath>$([MSBuil"
},
{
"path": "test/Directory.Build.props",
"chars": 219,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n <Import Project=\"..\\src\\Directory.Build.props\" />\n\n <PropertyGroup>\n"
},
{
"path": "test/Squirrel.Tests/ApplyReleasesProgressTests.cs",
"chars": 1064,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "test/Squirrel.Tests/ApplyReleasesTests.cs",
"chars": 22589,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Linq;\nusing Syst"
},
{
"path": "test/Squirrel.Tests/CheckForUpdateTests.cs",
"chars": 5387,
"preview": "using System;\nusing System.IO;\nusing System.Linq;\nusing System.Text;\nusing Squirrel.Tests.TestHelpers;\nusing Xunit;\n\nnam"
},
{
"path": "test/Squirrel.Tests/ContentTypeTests.cs",
"chars": 1598,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Sys"
},
{
"path": "test/Squirrel.Tests/DeltaPackageTests.cs",
"chars": 13216,
"preview": "using System;\nusing System.IO;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing NuGet;\nusing Squirrel;\nusing Squir"
},
{
"path": "test/Squirrel.Tests/DownloadReleasesTests.cs",
"chars": 7862,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Net;\nusing System.Text;"
},
{
"path": "test/Squirrel.Tests/Properties/AssemblyInfo.cs",
"chars": 251,
"preview": "using System.Reflection;\nusing System.Runtime.InteropServices;\nusing Xunit;\n\n[assembly: ComVisible(false)]\n[assembly: C"
},
{
"path": "test/Squirrel.Tests/ReleaseEntryTests.cs",
"chars": 21148,
"preview": "using System;\nusing System.IO;\nusing System.Linq;\nusing Squirrel;\nusing Squirrel.Tests.TestHelpers;\nusing Xunit;\nusing "
},
{
"path": "test/Squirrel.Tests/ReleasePackageTests.cs",
"chars": 12854,
"preview": "using System.Runtime.Versioning;\nusing MarkdownSharp;\nusing NuGet;\nusing Squirrel;\nusing Squirrel.Tests.TestHelpers;\nus"
},
{
"path": "test/Squirrel.Tests/Squirrel.Tests.csproj",
"chars": 1006,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <TargetFramework>net45</"
},
{
"path": "test/Squirrel.Tests/SquirrelAwareExecutableDetectorTests.cs",
"chars": 3152,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Linq;\nusing Sys"
},
{
"path": "test/Squirrel.Tests/TestHelpers/AssertExtensions.cs",
"chars": 4526,
"preview": "using System;\nusing System.Collections;\nusing System.Globalization;\nusing System.IO;\nusing Xunit;\n\nnamespace Squirrel.T"
},
{
"path": "test/Squirrel.Tests/TestHelpers/ExposedClass.cs",
"chars": 4689,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Dynamic;\nusing System.Reflection;\n\n// L"
},
{
"path": "test/Squirrel.Tests/TestHelpers/ExposedObject.cs",
"chars": 5636,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Dynamic;\nusin"
},
{
"path": "test/Squirrel.Tests/TestHelpers/ExposedObjectHelper.cs",
"chars": 3215,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reflection;\nusing System.Dynamic;\n\n// L"
},
{
"path": "test/Squirrel.Tests/TestHelpers/IntegrationTestHelper.cs",
"chars": 5257,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Linq;\nusing Sys"
},
{
"path": "test/Squirrel.Tests/TestHelpers/StaticHttpServer.cs",
"chars": 2968,
"preview": "using System;\nusing System.IO;\nusing System.Net;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Task"
},
{
"path": "test/Squirrel.Tests/UpdateManagerTests.cs",
"chars": 16567,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Text;\nusing System.Thr"
},
{
"path": "test/Squirrel.Tests/UtilityTests.cs",
"chars": 8441,
"preview": "using System;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Linq;\nusing System.Security.Cryptography;\nusing S"
},
{
"path": "test/Squirrel.Tests/fixtures/RELEASES-OnePointOh",
"chars": 71,
"preview": "94689fede03fed7ab59c24337673a27837f0c3ec MyCoolApp-1.0.nupkg 1004502\n"
},
{
"path": "test/Squirrel.Tests/fixtures/RELEASES-OnePointOne",
"chars": 217,
"preview": "94689fede03fed7ab59c24337673a27837f0c3ec MyCoolApp-1.0.nupkg 1004502\n3a2eadd15dd984e4559f2b4d790ec8badaeb6a39 MyCoolA"
},
{
"path": "test/Squirrel.Tests/fixtures/Squirrel.Core.1.1.0.0.nuspec",
"chars": 966,
"preview": "<?xml version=\"1.0\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd\">\n <metadata>\n <vers"
},
{
"path": "test/Squirrel.Tests/fixtures/SquirrelInstalledApp.nuspec",
"chars": 592,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd\">\n "
},
{
"path": "test/Squirrel.Tests/fixtures/content-types/basic-merged.xml",
"chars": 642,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n <D"
},
{
"path": "test/Squirrel.Tests/fixtures/content-types/basic.xml",
"chars": 459,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n <D"
},
{
"path": "test/Squirrel.Tests/fixtures/content-types/complex-merged.xml",
"chars": 4943,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n <D"
},
{
"path": "test/Squirrel.Tests/fixtures/content-types/complex.xml",
"chars": 4824,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n <D"
},
{
"path": "test/test_official.cmd",
"chars": 1242,
"preview": "@echo off\n\nsetlocal\npushd %~dp0\n\nset _C=Release\nset _S=src\\build_official.cmd\n\n:parse_args\nif /i \"%1\"==\"debug\" (set _C=D"
},
{
"path": "vendor/wix/candle.exe.config",
"chars": 651,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<!--\n <copyright file=\"app.config\" company=\"Outercurve Foundation\">\n Copyrig"
},
{
"path": "vendor/wix/light.exe.config",
"chars": 651,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<!--\n <copyright file=\"app.config\" company=\"Outercurve Foundation\">\n Copyrig"
},
{
"path": "vendor/wix/template.wxs",
"chars": 2184,
"preview": "<Wix xmlns=\"http://schemas.microsoft.com/wix/2006/wi\" xmlns:util=\"http://schemas.microsoft.com/wix/UtilExtension\" xmlns:"
},
{
"path": "version.json",
"chars": 157,
"preview": "{\n \"version\": \"2.0.1\",\n \"publicReleaseRefSpec\": [\n \"^refs/heads/master$\"\n ],\n \"cloudBuild\": {\n \"buildNumber\": "
}
]
// ... and 25 more files (download for full content)
About this extraction
This page contains the full source code of the Squirrel/Squirrel.Windows GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 216 files (58.8 MB), approximately 696.6k tokens, and a symbol index with 4039 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.