-
Notifications
You must be signed in to change notification settings - Fork 420
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 5dfe140
Showing
88 changed files
with
71,187 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
############################################################################### | ||
# Set default behavior to automatically normalize line endings. | ||
############################################################################### | ||
* text=auto | ||
|
||
############################################################################### | ||
# Set default behavior for command prompt diff. | ||
# | ||
# This is need for earlier builds of msysgit that does not have it on by | ||
# default for csharp files. | ||
# Note: This is only used by command line | ||
############################################################################### | ||
#*.cs diff=csharp | ||
|
||
############################################################################### | ||
# Set the merge driver for project and solution files | ||
# | ||
# Merging from the command prompt will add diff markers to the files if there | ||
# are conflicts (Merging from VS is not affected by the settings below, in VS | ||
# the diff markers are never inserted). Diff markers may cause the following | ||
# file extensions to fail to load in VS. An alternative would be to treat | ||
# these files as binary and thus will always conflict and require user | ||
# intervention with every merge. To do so, just uncomment the entries below | ||
############################################################################### | ||
#*.sln merge=binary | ||
#*.csproj merge=binary | ||
#*.vbproj merge=binary | ||
#*.vcxproj merge=binary | ||
#*.vcproj merge=binary | ||
#*.dbproj merge=binary | ||
#*.fsproj merge=binary | ||
#*.lsproj merge=binary | ||
#*.wixproj merge=binary | ||
#*.modelproj merge=binary | ||
#*.sqlproj merge=binary | ||
#*.wwaproj merge=binary | ||
|
||
############################################################################### | ||
# behavior for image files | ||
# | ||
# image files are treated as binary by default. | ||
############################################################################### | ||
#*.jpg binary | ||
#*.png binary | ||
#*.gif binary | ||
|
||
############################################################################### | ||
# diff behavior for common document formats | ||
# | ||
# Convert binary document formats to text before diffing them. This feature | ||
# is only available from the command line. Turn it on by uncommenting the | ||
# entries below. | ||
############################################################################### | ||
#*.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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
## Ignore Visual Studio temporary files, build results, and | ||
## files generated by popular Visual Studio add-ons. | ||
|
||
# User-specific files | ||
*.suo | ||
*.user | ||
*.sln.docstates | ||
|
||
# Build results | ||
[Dd]ebug/ | ||
[Dd]ebugPublic/ | ||
[Rr]elease/ | ||
x64/ | ||
build/ | ||
bld/ | ||
[Bb]in/ | ||
[Oo]bj/ | ||
|
||
# Roslyn cache directories | ||
*.ide/ | ||
|
||
# MSTest test Results | ||
[Tt]est[Rr]esult*/ | ||
[Bb]uild[Ll]og.* | ||
|
||
#NUNIT | ||
*.VisualState.xml | ||
TestResult.xml | ||
|
||
# Build Results of an ATL Project | ||
[Dd]ebugPS/ | ||
[Rr]eleasePS/ | ||
dlldata.c | ||
|
||
*_i.c | ||
*_p.c | ||
*_i.h | ||
*.ilk | ||
*.meta | ||
*.obj | ||
*.pch | ||
*.pdb | ||
*.pgc | ||
*.pgd | ||
*.rsp | ||
*.sbr | ||
*.tlb | ||
*.tli | ||
*.tlh | ||
*.tmp | ||
*.tmp_proj | ||
*.log | ||
*.vspscc | ||
*.vssscc | ||
.builds | ||
*.pidb | ||
*.svclog | ||
*.scc | ||
|
||
# Chutzpah Test files | ||
_Chutzpah* | ||
|
||
# Visual C++ cache files | ||
ipch/ | ||
*.aps | ||
*.ncb | ||
*.opensdf | ||
*.sdf | ||
*.cachefile | ||
|
||
# Visual Studio profiler | ||
*.psess | ||
*.vsp | ||
*.vspx | ||
|
||
# TFS 2012 Local Workspace | ||
$tf/ | ||
|
||
# Guidance Automation Toolkit | ||
*.gpState | ||
|
||
# ReSharper is a .NET coding add-in | ||
_ReSharper*/ | ||
*.[Rr]e[Ss]harper | ||
*.DotSettings.user | ||
|
||
# JustCode is a .NET coding addin-in | ||
.JustCode | ||
|
||
# TeamCity is a build add-in | ||
_TeamCity* | ||
|
||
# DotCover is a Code Coverage Tool | ||
*.dotCover | ||
|
||
# NCrunch | ||
_NCrunch_* | ||
.*crunch*.local.xml | ||
|
||
# MightyMoose | ||
*.mm.* | ||
AutoTest.Net/ | ||
|
||
# Web workbench (sass) | ||
.sass-cache/ | ||
|
||
# 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/ | ||
|
||
# Publish Web Output | ||
*.[Pp]ublish.xml | ||
*.azurePubxml | ||
## TODO: Comment the next line if you want to checkin your | ||
## web deploy settings but do note that will include unencrypted | ||
## passwords | ||
#*.pubxml | ||
|
||
# NuGet Packages Directory | ||
packages/* | ||
## TODO: If the tool you use requires repositories.config | ||
## uncomment the next line | ||
#!packages/repositories.config | ||
|
||
# Enable "build/" folder in the NuGet Packages folder since | ||
# NuGet packages use it for MSBuild targets. | ||
# This line needs to be after the ignore of the build folder | ||
# (and the packages folder if the line above has been uncommented) | ||
!packages/build/ | ||
|
||
# Windows Azure Build Output | ||
csx/ | ||
*.build.csdef | ||
|
||
# Windows Store app package directory | ||
AppPackages/ | ||
|
||
# Others | ||
sql/ | ||
*.Cache | ||
ClientBin/ | ||
[Ss]tyle[Cc]op.* | ||
~$* | ||
*~ | ||
*.dbmdl | ||
*.dbproj.schemaview | ||
*.pfx | ||
*.publishsettings | ||
node_modules/ | ||
|
||
# RIA/Silverlight projects | ||
Generated_Code/ | ||
|
||
# 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 | ||
UpgradeLog*.htm | ||
|
||
# SQL Server files | ||
*.mdf | ||
*.ldf | ||
|
||
# Business Intelligence projects | ||
*.rdl.data | ||
*.bim.layout | ||
*.bim_*.settings | ||
|
||
# Microsoft Fakes | ||
FakesAssemblies/ | ||
|
||
# LightSwitch generated files | ||
GeneratedArtifacts/ | ||
_Pvt_Extensions/ | ||
ModelManifest.xml | ||
/do/err.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# audio-router | ||
Routes audio stream from a program to desired audio device. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
// DialogMessageHook.cpp: implementation of the CDialogMessageHook class. | ||
// | ||
////////////////////////////////////////////////////////////////////// | ||
|
||
#include "DialogMessageHook.h" | ||
|
||
////////////////////////////////////////////////////////////////////// | ||
// Construction/Destruction | ||
////////////////////////////////////////////////////////////////////// | ||
|
||
HHOOK CDialogMessageHook::m_hHook = NULL; | ||
THWNDCollection CDialogMessageHook::m_aWindows; | ||
|
||
////////////////// | ||
// Note that windows are enumerated in top-down Z-order, so the menu | ||
// window should always be the first one found. | ||
// taken from code written by by Paul DiLascia, | ||
// C++ Q&A, MSDN Magazine, November 2003 | ||
// | ||
static BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam) | ||
{ | ||
TCHAR buf[16]; | ||
GetClassName(hwnd, buf, sizeof(buf) / sizeof(TCHAR)); | ||
if (_tcsncmp(buf, _T("#32768"), 6) == 0) { // special classname for menus | ||
*((HWND*)lParam) = hwnd; | ||
return FALSE; | ||
} | ||
return TRUE; | ||
} | ||
|
||
// Hook procedure for WH_GETMESSAGE hook type. | ||
// | ||
// This function is more or less a combination of MSDN KB articles | ||
// Q187988 and Q216503. See MSDN for additional details | ||
LRESULT CALLBACK CDialogMessageHook::GetMessageProc(int nCode, | ||
WPARAM wParam, LPARAM lParam) | ||
{ | ||
// If this is a keystrokes message, pass it to IsDialogMessage for tab | ||
// and accelerator processing | ||
LPMSG lpMsg = (LPMSG) lParam; | ||
|
||
// check if there is a menu active | ||
HWND hMenuWnd = NULL; | ||
EnumWindows(MyEnumProc, (LPARAM)&hMenuWnd); | ||
|
||
if (hMenuWnd == NULL && | ||
(nCode >= 0) && | ||
PM_REMOVE == wParam && | ||
(lpMsg->message >= WM_KEYFIRST && lpMsg->message <= WM_KEYLAST)) | ||
{ | ||
HWND hWnd, hActiveWindow = GetActiveWindow(); | ||
THWNDCollection::iterator it = m_aWindows.begin(); | ||
|
||
// check each window we manage to see if the message is meant for them | ||
while (it != m_aWindows.end()) | ||
{ | ||
hWnd = *it; | ||
|
||
if (::IsWindow(hWnd) && | ||
::IsDialogMessage(hWnd, lpMsg)) | ||
{ | ||
// The value returned from this hookproc is ignored, and it cannot | ||
// be used to tell Windows the message has been handled. To avoid | ||
// further processing, convert the message to WM_NULL before | ||
// returning. | ||
lpMsg->hwnd = NULL; | ||
lpMsg->message = WM_NULL; | ||
lpMsg->lParam = 0L; | ||
lpMsg->wParam = 0; | ||
|
||
break; | ||
} | ||
|
||
it++; | ||
} | ||
} | ||
|
||
// Passes the hook information to the next hook procedure in | ||
// the current hook chain. | ||
return ::CallNextHookEx(m_hHook, nCode, wParam, lParam); | ||
} | ||
|
||
extern CAppModule _Module; | ||
|
||
HRESULT CDialogMessageHook::InstallHook(HWND hWnd) | ||
{ | ||
// make sure the hook is installed | ||
if (m_hHook == NULL) | ||
{ | ||
m_hHook = ::SetWindowsHookEx(WH_GETMESSAGE, | ||
GetMessageProc, | ||
_Module.m_hInst, | ||
GetCurrentThreadId()); | ||
|
||
// is the hook set? | ||
if (m_hHook == NULL) | ||
{ | ||
return E_UNEXPECTED; | ||
} | ||
} | ||
|
||
// add the window to our list of managed windows | ||
if (m_aWindows.find(hWnd) == m_aWindows.end()) | ||
m_aWindows.insert(hWnd); | ||
|
||
return S_OK; | ||
} | ||
|
||
HRESULT CDialogMessageHook::UninstallHook(HWND hWnd) | ||
{ | ||
HRESULT hr = S_OK; | ||
|
||
// was the window found? | ||
if (m_aWindows.erase(hWnd) == 0) | ||
return E_INVALIDARG; | ||
|
||
// is this the last window? if so, then uninstall the hook | ||
if (m_aWindows.size() == 0 && m_hHook) | ||
{ | ||
if (!::UnhookWindowsHookEx(m_hHook)) | ||
hr = HRESULT_FROM_WIN32(::GetLastError()); | ||
|
||
m_hHook = NULL; | ||
} | ||
|
||
return hr; | ||
} |
Oops, something went wrong.