Skip to content

Commit 6c44e37

Browse files
committed
First Project Commit
The very basic shell of the program is in place. It still is technically useless, but it at least pretends to do soemthing useful. As good a time as any to commit, just in case.
1 parent bc7b637 commit 6c44e37

15 files changed

+873
-0
lines changed

.gitignore

Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
## Ignore Visual Studio temporary files, build results, and
2+
## files generated by popular Visual Studio add-ons.
3+
4+
# User-specific files
5+
*.suo
6+
*.user
7+
*.userosscache
8+
*.sln.docstates
9+
10+
# User-specific files (MonoDevelop/Xamarin Studio)
11+
*.userprefs
12+
13+
# Build results
14+
[Dd]ebug/
15+
[Dd]ebugPublic/
16+
[Rr]elease/
17+
[Rr]eleases/
18+
[Xx]64/
19+
[Xx]86/
20+
[Bb]uild/
21+
bld/
22+
[Bb]in/
23+
[Oo]bj/
24+
25+
# Visual Studio 2015 cache/options directory
26+
.vs/
27+
# Uncomment if you have tasks that create the project's static files in wwwroot
28+
#wwwroot/
29+
30+
# MSTest test Results
31+
[Tt]est[Rr]esult*/
32+
[Bb]uild[Ll]og.*
33+
34+
# NUNIT
35+
*.VisualState.xml
36+
TestResult.xml
37+
38+
# Build Results of an ATL Project
39+
[Dd]ebugPS/
40+
[Rr]eleasePS/
41+
dlldata.c
42+
43+
# DNX
44+
project.lock.json
45+
artifacts/
46+
47+
*_i.c
48+
*_p.c
49+
*_i.h
50+
*.ilk
51+
*.meta
52+
*.obj
53+
*.pch
54+
*.pdb
55+
*.pgc
56+
*.pgd
57+
*.rsp
58+
*.sbr
59+
*.tlb
60+
*.tli
61+
*.tlh
62+
*.tmp
63+
*.tmp_proj
64+
*.log
65+
*.vspscc
66+
*.vssscc
67+
.builds
68+
*.pidb
69+
*.svclog
70+
*.scc
71+
72+
# Chutzpah Test files
73+
_Chutzpah*
74+
75+
# Visual C++ cache files
76+
ipch/
77+
*.aps
78+
*.ncb
79+
*.opendb
80+
*.opensdf
81+
*.sdf
82+
*.cachefile
83+
*.VC.db
84+
85+
# Visual Studio profiler
86+
*.psess
87+
*.vsp
88+
*.vspx
89+
*.sap
90+
91+
# TFS 2012 Local Workspace
92+
$tf/
93+
94+
# Guidance Automation Toolkit
95+
*.gpState
96+
97+
# ReSharper is a .NET coding add-in
98+
_ReSharper*/
99+
*.[Rr]e[Ss]harper
100+
*.DotSettings.user
101+
102+
# JustCode is a .NET coding add-in
103+
.JustCode
104+
105+
# TeamCity is a build add-in
106+
_TeamCity*
107+
108+
# DotCover is a Code Coverage Tool
109+
*.dotCover
110+
111+
# NCrunch
112+
_NCrunch_*
113+
.*crunch*.local.xml
114+
nCrunchTemp_*
115+
116+
# MightyMoose
117+
*.mm.*
118+
AutoTest.Net/
119+
120+
# Web workbench (sass)
121+
.sass-cache/
122+
123+
# Installshield output folder
124+
[Ee]xpress/
125+
126+
# DocProject is a documentation generator add-in
127+
DocProject/buildhelp/
128+
DocProject/Help/*.HxT
129+
DocProject/Help/*.HxC
130+
DocProject/Help/*.hhc
131+
DocProject/Help/*.hhk
132+
DocProject/Help/*.hhp
133+
DocProject/Help/Html2
134+
DocProject/Help/html
135+
136+
# Click-Once directory
137+
publish/
138+
139+
# Publish Web Output
140+
*.[Pp]ublish.xml
141+
*.azurePubxml
142+
143+
# TODO: Un-comment the next line if you do not want to checkin
144+
# your web deploy settings because they may include unencrypted
145+
# passwords
146+
#*.pubxml
147+
*.publishproj
148+
149+
# NuGet Packages
150+
*.nupkg
151+
# The packages folder can be ignored because of Package Restore
152+
**/packages/*
153+
# except build/, which is used as an MSBuild target.
154+
!**/packages/build/
155+
# Uncomment if necessary however generally it will be regenerated when needed
156+
#!**/packages/repositories.config
157+
# NuGet v3's project.json files produces more ignoreable files
158+
*.nuget.props
159+
*.nuget.targets
160+
161+
# Microsoft Azure Build Output
162+
csx/
163+
*.build.csdef
164+
165+
# Microsoft Azure Emulator
166+
ecf/
167+
rcf/
168+
169+
# Windows Store app package directory
170+
AppPackages/
171+
BundleArtifacts/
172+
173+
# Visual Studio cache files
174+
# files ending in .cache can be ignored
175+
*.[Cc]ache
176+
# but keep track of directories ending in .cache
177+
!*.[Cc]ache/
178+
179+
# Others
180+
ClientBin/
181+
[Ss]tyle[Cc]op.*
182+
~$*
183+
*~
184+
*.dbmdl
185+
*.dbproj.schemaview
186+
*.pfx
187+
*.publishsettings
188+
node_modules/
189+
orleans.codegen.cs
190+
191+
# RIA/Silverlight projects
192+
Generated_Code/
193+
194+
# Backup & report files from converting an old project file
195+
# to a newer Visual Studio version. Backup files are not needed,
196+
# because we have git ;-)
197+
_UpgradeReport_Files/
198+
Backup*/
199+
UpgradeLog*.XML
200+
UpgradeLog*.htm
201+
202+
# SQL Server files
203+
*.mdf
204+
*.ldf
205+
206+
# Business Intelligence projects
207+
*.rdl.data
208+
*.bim.layout
209+
*.bim_*.settings
210+
211+
# Microsoft Fakes
212+
FakesAssemblies/
213+
214+
# GhostDoc plugin setting file
215+
*.GhostDoc.xml
216+
217+
# Node.js Tools for Visual Studio
218+
.ntvs_analysis.dat
219+
220+
# Visual Studio 6 build log
221+
*.plg
222+
223+
# Visual Studio 6 workspace options file
224+
*.opt
225+
226+
# Visual Studio LightSwitch build output
227+
**/*.HTMLClient/GeneratedArtifacts
228+
**/*.DesktopClient/GeneratedArtifacts
229+
**/*.DesktopClient/ModelManifest.xml
230+
**/*.Server/GeneratedArtifacts
231+
**/*.Server/ModelManifest.xml
232+
_Pvt_Extensions
233+
234+
# LightSwitch generated files
235+
GeneratedArtifacts/
236+
ModelManifest.xml
237+
238+
# Paket dependency manager
239+
.paket/paket.exe
240+
241+
# FAKE - F# Make
242+
.fake/

Winclipper/ClipsMenu.cpp

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#include "stdafx.h"
2+
#include "ClipsMenu.h"
3+
4+
int ShowClipsMenu(HWND hWnd, HWND curWin)
5+
{
6+
if (hWnd != NULL && curWin != NULL)
7+
{
8+
SetForegroundWindow(hWnd);
9+
10+
LPPOINT cPos = new POINT;
11+
if (!GetCursorPos(cPos))
12+
{
13+
return ERROR;
14+
}
15+
16+
HMENU menu = CreatePopupMenu();
17+
AppendMenu(menu, MF_STRING, 999, L"TEST");
18+
if (TrackPopupMenu(
19+
menu,
20+
TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD,
21+
(*cPos).x,
22+
(*cPos).y,
23+
0,
24+
hWnd,
25+
NULL
26+
))
27+
{
28+
29+
SetForegroundWindow(curWin);
30+
Sleep(10);
31+
if (!OpenClipboard(curWin))
32+
return FALSE;
33+
HANDLE psClipboardData = GetClipboardData(CF_UNICODETEXT);
34+
if (psClipboardData != NULL)
35+
{
36+
wchar_t * data = reinterpret_cast<wchar_t*>(GlobalLock(psClipboardData));
37+
wchar_t * derefData = _wcsdup(data);
38+
39+
SendPasteInput();
40+
41+
GlobalUnlock(psClipboardData);
42+
}
43+
CloseClipboard();
44+
}
45+
SetForegroundWindow(curWin);
46+
PostMessage(hWnd, WM_NULL, 0, 0);
47+
}
48+
}
49+
50+
void SendPasteInput(void)
51+
{
52+
INPUT inputCtrlKey;
53+
INPUT inputVKey;
54+
55+
inputCtrlKey.type = INPUT_KEYBOARD;
56+
inputCtrlKey.ki.wVk = VK_CONTROL;
57+
inputCtrlKey.ki.wScan = 0;
58+
inputCtrlKey.ki.time = 1;
59+
inputCtrlKey.ki.dwFlags = 0;
60+
inputCtrlKey.ki.dwExtraInfo = 0;
61+
62+
inputVKey.type = INPUT_KEYBOARD;
63+
inputVKey.ki.wVk = 0x56;
64+
inputVKey.ki.wScan = 0;
65+
inputVKey.ki.time = 2;
66+
inputVKey.ki.dwFlags = 0;
67+
inputVKey.ki.dwExtraInfo = 0;
68+
69+
INPUT ip[] = { inputCtrlKey, inputVKey };
70+
71+
SendInput(2, ip, sizeof(INPUT));
72+
73+
ip[0].ki.dwFlags = KEYEVENTF_KEYUP;
74+
ip[1].ki.dwFlags = KEYEVENTF_KEYUP;
75+
SendInput(2, ip, sizeof(INPUT));
76+
77+
return;
78+
}

Winclipper/ClipsMenu.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
3+
#define CANCELED_SELECTION 1 // user selected nothing, pressed esc, or clicked outside the window
4+
#define SELECTED_PASTE_ITEM 2 // user selected one of the clips, and it was pasted
5+
#define SELECTED_SETTINGS 99 // user selected the Settings option
6+
// ERROR is returned in any other situation
7+
8+
// Forward declarations of functions included in this code module:
9+
BOOL AddToClips(HWND);
10+
BOOL MoveToFrontOfClips(HWND);
11+
int ShowClipsMenu(HWND, HWND);
12+
void SendPasteInput(void);

0 commit comments

Comments
 (0)