링크: http://fendee.egloos.com/10882938

posted by 뚱2

링크: http://경support.microsoft.com/default.aspx?scid=kb;en-us;306759

posted by 뚱2

링크 : http://valley.egloos.com/viewer/?url=http://guenang.egloos.com/2341347 

posted by 뚱2

링크 : http://forums.techguy.org/windows-7/977270-icons-not-displaying-properly.html

 

1. C:\Users\[사용자]\AppData\Local\IconCache.db를 삭제한다. (혹 모르니 백업해두면 좋다.)

2. 작업관리자에서 explorer.exe를 킬한다.

3. 명령프롬프트에서 explorer.exe를 실행시킨다.

posted by 뚱2

링크 : http://suminpapa.tistory.com/107 





WindowsService.zip


posted by 뚱2

대부분 시스템 언어설정에서 문제가 생기는 경우이다.

아래 이미지를 보고 한글로 맞춰주면 된다.

시스템로케일을 변경한다.


posted by 뚱2

[Windows] Message

OS/Windows 2012. 7. 30. 09:06

링크 : http://wiki.winehq.org/List_Of_Windows_Messages 


Hex

Decimal

Symbolic

0000

0

WM_NULL

0001

1

WM_CREATE

0002

2

WM_DESTROY

0003

3

WM_MOVE

0005

5

WM_SIZE

0006

6

WM_ACTIVATE

0007

7

WM_SETFOCUS

0008

8

WM_KILLFOCUS

000a

10

WM_ENABLE

000b

11

WM_SETREDRAW

000c

12

WM_SETTEXT

000d

13

WM_GETTEXT

000e

14

WM_GETTEXTLENGTH

000f

15

WM_PAINT

0010

16

WM_CLOSE

0011

17

WM_QUERYENDSESSION

0012

18

WM_QUIT

0013

19

WM_QUERYOPEN

0014

20

WM_ERASEBKGND

0015

21

WM_SYSCOLORCHANGE

0016

22

WM_ENDSESSION

0018

24

WM_SHOWWINDOW

0019

25

WM_CTLCOLOR

001a

26

WM_WININICHANGE

001b

27

WM_DEVMODECHANGE

001c

28

WM_ACTIVATEAPP

001d

29

WM_FONTCHANGE

001e

30

WM_TIMECHANGE

001f

31

WM_CANCELMODE

0020

32

WM_SETCURSOR

0021

33

WM_MOUSEACTIVATE

0022

34

WM_CHILDACTIVATE

0023

35

WM_QUEUESYNC

0024

36

WM_GETMINMAXINFO

0026

38

WM_PAINTICON

0027

39

WM_ICONERASEBKGND

0028

40

WM_NEXTDLGCTL

002a

42

WM_SPOOLERSTATUS

002b

43

WM_DRAWITEM

002c

44

WM_MEASUREITEM

002d

45

WM_DELETEITEM

002e

46

WM_VKEYTOITEM

002f

47

WM_CHARTOITEM

0030

48

WM_SETFONT

0031

49

WM_GETFONT

0032

50

WM_SETHOTKEY

0033

51

WM_GETHOTKEY

0037

55

WM_QUERYDRAGICON

0039

57

WM_COMPAREITEM

003d

61

WM_GETOBJECT

0041

65

WM_COMPACTING

0044

68

WM_COMMNOTIFY

0046

70

WM_WINDOWPOSCHANGING

0047

71

WM_WINDOWPOSCHANGED

0048

72

WM_POWER

004a

74

WM_COPYDATA

004b

75

WM_CANCELJOURNAL

004e

78

WM_NOTIFY

0050

80

WM_INPUTLANGCHANGEREQUEST

0051

81

WM_INPUTLANGCHANGE

0052

82

WM_TCARD

0053

83

WM_HELP

0054

84

WM_USERCHANGED

0055

85

WM_NOTIFYFORMAT

007b

123

WM_CONTEXTMENU

007c

124

WM_STYLECHANGING

007d

125

WM_STYLECHANGED

007e

126

WM_DISPLAYCHANGE

007f

127

WM_GETICON

0080

128

WM_SETICON

0081

129

WM_NCCREATE

0082

130

WM_NCDESTROY

0083

131

WM_NCCALCSIZE

0084

132

WM_NCHITTEST

0085

133

WM_NCPAINT

0086

134

WM_NCACTIVATE

0087

135

WM_GETDLGCODE

0088

136

WM_SYNCPAINT

00a0

160

WM_NCMOUSEMOVE

00a1

161

WM_NCLBUTTONDOWN

00a2

162

WM_NCLBUTTONUP

00a3

163

WM_NCLBUTTONDBLCLK

00a4

164

WM_NCRBUTTONDOWN

00a5

165

WM_NCRBUTTONUP

00a6

166

WM_NCRBUTTONDBLCLK

00a7

167

WM_NCMBUTTONDOWN

00a8

168

WM_NCMBUTTONUP

00a9

169

WM_NCMBUTTONDBLCLK

00ab

171

WM_NCXBUTTONDOWN

00ac

172

WM_NCXBUTTONUP

00ad

173

WM_NCXBUTTONDBLCLK

00ff

255

WM_INPUT

0100

256

WM_KEYDOWN

0100

256

WM_KEYFIRST

0101

257

WM_KEYUP

0102

258

WM_CHAR

0103

259

WM_DEADCHAR

0104

260

WM_SYSKEYDOWN

0105

261

WM_SYSKEYUP

0106

262

WM_SYSCHAR

0107

263

WM_SYSDEADCHAR

0108

264

WM_KEYLAST

0109

265

WM_WNT_CONVERTREQUESTEX

010a

266

WM_CONVERTREQUEST

010b

267

WM_CONVERTRESULT

010c

268

WM_INTERIM

010d

269

WM_IME_STARTCOMPOSITION

010e

270

WM_IME_ENDCOMPOSITION

010f

271

WM_IME_COMPOSITION

010f

271

WM_IME_KEYLAST

0110

272

WM_INITDIALOG

0111

273

WM_COMMAND

0112

274

WM_SYSCOMMAND

0113

275

WM_TIMER

0114

276

WM_HSCROLL

0115

277

WM_VSCROLL

0116

278

WM_INITMENU

0117

279

WM_INITMENUPOPUP

0118

280

WM_SYSTIMER

011f

287

WM_MENUSELECT

0120

288

WM_MENUCHAR

0121

289

WM_ENTERIDLE

0122

290

WM_MENURBUTTONUP

0123

291

WM_MENUDRAG

0124

292

WM_MENUGETOBJECT

0125

293

WM_UNINITMENUPOPUP

0126

294

WM_MENUCOMMAND

0127

295

WM_CHANGEUISTATE

0128

296

WM_UPDATEUISTATE

0129

297

WM_QUERYUISTATE

0132

306

WM_CTLCOLORMSGBOX

0133

307

WM_CTLCOLOREDIT

0134

308

WM_CTLCOLORLISTBOX

0135

309

WM_CTLCOLORBTN

0136

310

WM_CTLCOLORDLG

0137

311

WM_CTLCOLORSCROLLBAR

0138

312

WM_CTLCOLORSTATIC

0200

512

WM_MOUSEFIRST

0200

512

WM_MOUSEMOVE

0201

513

WM_LBUTTONDOWN

0202

514

WM_LBUTTONUP

0203

515

WM_LBUTTONDBLCLK

0204

516

WM_RBUTTONDOWN

0205

517

WM_RBUTTONUP

0206

518

WM_RBUTTONDBLCLK

0207

519

WM_MBUTTONDOWN

0208

520

WM_MBUTTONUP

0209

521

WM_MBUTTONDBLCLK

0209

521

WM_MOUSELAST

020a

522

WM_MOUSEWHEEL

020b

523

WM_XBUTTONDOWN

020c

524

WM_XBUTTONUP

020d

525

WM_XBUTTONDBLCLK

0210

528

WM_PARENTNOTIFY

0211

529

WM_ENTERMENULOOP

0212

530

WM_EXITMENULOOP

0213

531

WM_NEXTMENU

0214

532

WM_SIZING

0215

533

WM_CAPTURECHANGED

0216

534

WM_MOVING

0218

536

WM_POWERBROADCAST

0219

537

WM_DEVICECHANGE

0220

544

WM_MDICREATE

0221

545

WM_MDIDESTROY

0222

546

WM_MDIACTIVATE

0223

547

WM_MDIRESTORE

0224

548

WM_MDINEXT

0225

549

WM_MDIMAXIMIZE

0226

550

WM_MDITILE

0227

551

WM_MDICASCADE

0228

552

WM_MDIICONARRANGE

0229

553

WM_MDIGETACTIVE

0230

560

WM_MDISETMENU

0231

561

WM_ENTERSIZEMOVE

0232

562

WM_EXITSIZEMOVE

0233

563

WM_DROPFILES

0234

564

WM_MDIREFRESHMENU

0280

640

WM_IME_REPORT

0281

641

WM_IME_SETCONTEXT

0282

642

WM_IME_NOTIFY

0283

643

WM_IME_CONTROL

0284

644

WM_IME_COMPOSITIONFULL

0285

645

WM_IME_SELECT

0286

646

WM_IME_CHAR

0288

648

WM_IME_REQUEST

0290

656

WM_IMEKEYDOWN

0290

656

WM_IME_KEYDOWN

0291

657

WM_IMEKEYUP

0291

657

WM_IME_KEYUP

02a0

672

WM_NCMOUSEHOVER

02a1

673

WM_MOUSEHOVER

02a2

674

WM_NCMOUSELEAVE

02a3

675

WM_MOUSELEAVE

0300

768

WM_CUT

0301

769

WM_COPY

0302

770

WM_PASTE

0303

771

WM_CLEAR

0304

772

WM_UNDO

0305

773

WM_RENDERFORMAT

0306

774

WM_RENDERALLFORMATS

0307

775

WM_DESTROYCLIPBOARD

0308

776

WM_DRAWCLIPBOARD

0309

777

WM_PAINTCLIPBOARD

030a

778

WM_VSCROLLCLIPBOARD

030b

779

WM_SIZECLIPBOARD

030c

780

WM_ASKCBFORMATNAME

030d

781

WM_CHANGECBCHAIN

030e

782

WM_HSCROLLCLIPBOARD

030f

783

WM_QUERYNEWPALETTE

0310

784

WM_PALETTEISCHANGING

0311

785

WM_PALETTECHANGED

0312

786

WM_HOTKEY

0317

791

WM_PRINT

0318

792

WM_PRINTCLIENT

0319

793

WM_APPCOMMAND

0358

856

WM_HANDHELDFIRST

035f

863

WM_HANDHELDLAST

0360

864

WM_AFXFIRST

037f

895

WM_AFXLAST

0380

896

WM_PENWINFIRST

0381

897

WM_RCRESULT

0382

898

WM_HOOKRCRESULT

0383

899

WM_GLOBALRCCHANGE

0383

899

WM_PENMISCINFO

0384

900

WM_SKB

0385

901

WM_HEDITCTL

0385

901

WM_PENCTL

0386

902

WM_PENMISC

0387

903

WM_CTLINIT

0388

904

WM_PENEVENT

038f

911

WM_PENWINLAST

0400

1024

DDM_SETFMT

0400

1024

DM_GETDEFID

0400

1024

NIN_SELECT

0400

1024

TBM_GETPOS

0400

1024

WM_PSD_PAGESETUPDLG

0400

1024

WM_USER

0401

1025

CBEM_INSERTITEMA

0401

1025

DDM_DRAW

0401

1025

DM_SETDEFID

0401

1025

HKM_SETHOTKEY

0401

1025

PBM_SETRANGE

0401

1025

RB_INSERTBANDA

0401

1025

SB_SETTEXTA

0401

1025

TB_ENABLEBUTTON

0401

1025

TBM_GETRANGEMIN

0401

1025

TTM_ACTIVATE

0401

1025

WM_CHOOSEFONT_GETLOGFONT

0401

1025

WM_PSD_FULLPAGERECT

0402

1026

CBEM_SETIMAGELIST

0402

1026

DDM_CLOSE

0402

1026

DM_REPOSITION

0402

1026

HKM_GETHOTKEY

0402

1026

PBM_SETPOS

0402

1026

RB_DELETEBAND

0402

1026

SB_GETTEXTA

0402

1026

TB_CHECKBUTTON

0402

1026

TBM_GETRANGEMAX

0402

1026

WM_PSD_MINMARGINRECT

0403

1027

CBEM_GETIMAGELIST

0403

1027

DDM_BEGIN

0403

1027

HKM_SETRULES

0403

1027

PBM_DELTAPOS

0403

1027

RB_GETBARINFO

0403

1027

SB_GETTEXTLENGTHA

0403

1027

TBM_GETTIC

0403

1027

TB_PRESSBUTTON

0403

1027

TTM_SETDELAYTIME

0403

1027

WM_PSD_MARGINRECT

0404

1028

CBEM_GETITEMA

0404

1028

DDM_END

0404

1028

PBM_SETSTEP

0404

1028

RB_SETBARINFO

0404

1028

SB_SETPARTS

0404

1028

TB_HIDEBUTTON

0404

1028

TBM_SETTIC

0404

1028

TTM_ADDTOOLA

0404

1028

WM_PSD_GREEKTEXTRECT

0405

1029

CBEM_SETITEMA

0405

1029

PBM_STEPIT

0405

1029

TB_INDETERMINATE

0405

1029

TBM_SETPOS

0405

1029

TTM_DELTOOLA

0405

1029

WM_PSD_ENVSTAMPRECT

0406

1030

CBEM_GETCOMBOCONTROL

0406

1030

PBM_SETRANGE32

0406

1030

RB_SETBANDINFOA

0406

1030

SB_GETPARTS

0406

1030

TB_MARKBUTTON

0406

1030

TBM_SETRANGE

0406

1030

TTM_NEWTOOLRECTA

0406

1030

WM_PSD_YAFULLPAGERECT

0407

1031

CBEM_GETEDITCONTROL

0407

1031

PBM_GETRANGE

0407

1031

RB_SETPARENT

0407

1031

SB_GETBORDERS

0407

1031

TBM_SETRANGEMIN

0407

1031

TTM_RELAYEVENT

0408

1032

CBEM_SETEXSTYLE

0408

1032

PBM_GETPOS

0408

1032

RB_HITTEST

0408

1032

SB_SETMINHEIGHT

0408

1032

TBM_SETRANGEMAX

0408

1032

TTM_GETTOOLINFOA

0409

1033

CBEM_GETEXSTYLE

0409

1033

CBEM_GETEXTENDEDSTYLE

0409

1033

PBM_SETBARCOLOR

0409

1033

RB_GETRECT

0409

1033

SB_SIMPLE

0409

1033

TB_ISBUTTONENABLED

0409

1033

TBM_CLEARTICS

0409

1033

TTM_SETTOOLINFOA

040a

1034

CBEM_HASEDITCHANGED

040a

1034

RB_INSERTBANDW

040a

1034

SB_GETRECT

040a

1034

TB_ISBUTTONCHECKED

040a

1034

TBM_SETSEL

040a

1034

TTM_HITTESTA

040a

1034

WIZ_QUERYNUMPAGES

040b

1035

CBEM_INSERTITEMW

040b

1035

RB_SETBANDINFOW

040b

1035

SB_SETTEXTW

040b

1035

TB_ISBUTTONPRESSED

040b

1035

TBM_SETSELSTART

040b

1035

TTM_GETTEXTA

040b

1035

WIZ_NEXT

040c

1036

CBEM_SETITEMW

040c

1036

RB_GETBANDCOUNT

040c

1036

SB_GETTEXTLENGTHW

040c

1036

TB_ISBUTTONHIDDEN

040c

1036

TBM_SETSELEND

040c

1036

TTM_UPDATETIPTEXTA

040c

1036

WIZ_PREV

040d

1037

CBEM_GETITEMW

040d

1037

RB_GETROWCOUNT

040d

1037

SB_GETTEXTW

040d

1037

TB_ISBUTTONINDETERMINATE

040d

1037

TTM_GETTOOLCOUNT

040e

1038

CBEM_SETEXTENDEDSTYLE

040e

1038

RB_GETROWHEIGHT

040e

1038

SB_ISSIMPLE

040e

1038

TB_ISBUTTONHIGHLIGHTED

040e

1038

TBM_GETPTICS

040e

1038

TTM_ENUMTOOLSA

040f

1039

SB_SETICON

040f

1039

TBM_GETTICPOS

040f

1039

TTM_GETCURRENTTOOLA

0410

1040

RB_IDTOINDEX

0410

1040

SB_SETTIPTEXTA

0410

1040

TBM_GETNUMTICS

0410

1040

TTM_WINDOWFROMPOINT

0411

1041

RB_GETTOOLTIPS

0411

1041

SB_SETTIPTEXTW

0411

1041

TBM_GETSELSTART

0411

1041

TB_SETSTATE

0411

1041

TTM_TRACKACTIVATE

0412

1042

RB_SETTOOLTIPS

0412

1042

SB_GETTIPTEXTA

0412

1042

TB_GETSTATE

0412

1042

TBM_GETSELEND

0412

1042

TTM_TRACKPOSITION

0413

1043

RB_SETBKCOLOR

0413

1043

SB_GETTIPTEXTW

0413

1043

TB_ADDBITMAP

0413

1043

TBM_CLEARSEL

0413

1043

TTM_SETTIPBKCOLOR

0414

1044

RB_GETBKCOLOR

0414

1044

SB_GETICON

0414

1044

TB_ADDBUTTONSA

0414

1044

TBM_SETTICFREQ

0414

1044

TTM_SETTIPTEXTCOLOR

0415

1045

RB_SETTEXTCOLOR

0415

1045

TB_INSERTBUTTONA

0415

1045

TBM_SETPAGESIZE

0415

1045

TTM_GETDELAYTIME

0416

1046

RB_GETTEXTCOLOR

0416

1046

TB_DELETEBUTTON

0416

1046

TBM_GETPAGESIZE

0416

1046

TTM_GETTIPBKCOLOR

0417

1047

RB_SIZETORECT

0417

1047

TB_GETBUTTON

0417

1047

TBM_SETLINESIZE

0417

1047

TTM_GETTIPTEXTCOLOR

0418

1048

RB_BEGINDRAG

0418

1048

TB_BUTTONCOUNT

0418

1048

TBM_GETLINESIZE

0418

1048

TTM_SETMAXTIPWIDTH

0419

1049

RB_ENDDRAG

0419

1049

TB_COMMANDTOINDEX

0419

1049

TBM_GETTHUMBRECT

0419

1049

TTM_GETMAXTIPWIDTH

041a

1050

RB_DRAGMOVE

041a

1050

TBM_GETCHANNELRECT

041a

1050

TB_SAVERESTOREA

041a

1050

TTM_SETMARGIN

041b

1051

RB_GETBARHEIGHT

041b

1051

TB_CUSTOMIZE

041b

1051

TBM_SETTHUMBLENGTH

041b

1051

TTM_GETMARGIN

041c

1052

RB_GETBANDINFOW

041c

1052

TB_ADDSTRINGA

041c

1052

TBM_GETTHUMBLENGTH

041c

1052

TTM_POP

041d

1053

RB_GETBANDINFOA

041d

1053

TB_GETITEMRECT

041d

1053

TBM_SETTOOLTIPS

041d

1053

TTM_UPDATE

041e

1054

RB_MINIMIZEBAND

041e

1054

TB_BUTTONSTRUCTSIZE

041e

1054

TBM_GETTOOLTIPS

041e

1054

TTM_GETBUBBLESIZE

041f

1055

RB_MAXIMIZEBAND

041f

1055

TBM_SETTIPSIDE

041f

1055

TB_SETBUTTONSIZE

041f

1055

TTM_ADJUSTRECT

0420

1056

TBM_SETBUDDY

0420

1056

TB_SETBITMAPSIZE

0420

1056

TTM_SETTITLEA

0421

1057

MSG_FTS_JUMP_VA

0421

1057

TB_AUTOSIZE

0421

1057

TBM_GETBUDDY

0421

1057

TTM_SETTITLEW

0422

1058

RB_GETBANDBORDERS

0423

1059

MSG_FTS_JUMP_QWORD

0423

1059

RB_SHOWBAND

0423

1059

TB_GETTOOLTIPS

0424

1060

MSG_REINDEX_REQUEST

0424

1060

TB_SETTOOLTIPS

0425

1061

MSG_FTS_WHERE_IS_IT

0425

1061

RB_SETPALETTE

0425

1061

TB_SETPARENT

0426

1062

RB_GETPALETTE

0427

1063

RB_MOVEBAND

0427

1063

TB_SETROWS

0428

1064

TB_GETROWS

0429

1065

TB_GETBITMAPFLAGS

042a

1066

TB_SETCMDID

042b

1067

RB_PUSHCHEVRON

042b

1067

TB_CHANGEBITMAP

042c

1068

TB_GETBITMAP

042d

1069

MSG_GET_DEFFONT

042d

1069

TB_GETBUTTONTEXTA

042e

1070

TB_REPLACEBITMAP

042f

1071

TB_SETINDENT

0430

1072

TB_SETIMAGELIST

0431

1073

TB_GETIMAGELIST

0432

1074

TB_LOADIMAGES

0432

1074

TTM_ADDTOOLW

0433

1075

TB_GETRECT

0433

1075

TTM_DELTOOLW

0434

1076

TB_SETHOTIMAGELIST

0434

1076

TTM_NEWTOOLRECTW

0435

1077

TB_GETHOTIMAGELIST

0435

1077

TTM_GETTOOLINFOW

0436

1078

TB_SETDISABLEDIMAGELIST

0436

1078

TTM_SETTOOLINFOW

0437

1079

TB_GETDISABLEDIMAGELIST

0437

1079

TTM_HITTESTW

0438

1080

TB_SETSTYLE

0438

1080

TTM_GETTEXTW

0439

1081

TB_GETSTYLE

0439

1081

TTM_UPDATETIPTEXTW

043a

1082

TB_GETBUTTONSIZE

043a

1082

TTM_ENUMTOOLSW

043b

1083

TB_SETBUTTONWIDTH

043b

1083

TTM_GETCURRENTTOOLW

043c

1084

TB_SETMAXTEXTROWS

043d

1085

TB_GETTEXTROWS

043e

1086

TB_GETOBJECT

043f

1087

TB_GETBUTTONINFOW

0440

1088

TB_SETBUTTONINFOW

0441

1089

TB_GETBUTTONINFOA

0442

1090

TB_SETBUTTONINFOA

0443

1091

TB_INSERTBUTTONW

0444

1092

TB_ADDBUTTONSW

0445

1093

TB_HITTEST

0446

1094

TB_SETDRAWTEXTFLAGS

0447

1095

TB_GETHOTITEM

0448

1096

TB_SETHOTITEM

0449

1097

TB_SETANCHORHIGHLIGHT

044a

1098

TB_GETANCHORHIGHLIGHT

044b

1099

TB_GETBUTTONTEXTW

044c

1100

TB_SAVERESTOREW

044d

1101

TB_ADDSTRINGW

044e

1102

TB_MAPACCELERATORA

044f

1103

TB_GETINSERTMARK

0450

1104

TB_SETINSERTMARK

0451

1105

TB_INSERTMARKHITTEST

0452

1106

TB_MOVEBUTTON

0453

1107

TB_GETMAXSIZE

0454

1108

TB_SETEXTENDEDSTYLE

0455

1109

TB_GETEXTENDEDSTYLE

0456

1110

TB_GETPADDING

0457

1111

TB_SETPADDING

0458

1112

TB_SETINSERTMARKCOLOR

0459

1113

TB_GETINSERTMARKCOLOR

045a

1114

TB_MAPACCELERATORW

045b

1115

TB_GETSTRINGW

045c

1116

TB_GETSTRINGA

0463

1123

TAPI_REPLY

0464

1124

ACM_OPENA

0464

1124

BFFM_SETSTATUSTEXTA

0464

1124

CDM_FIRST

0464

1124

CDM_GETSPEC

0464

1124

IPM_CLEARADDRESS

0464

1124

WM_CAP_UNICODE_START

0465

1125

ACM_PLAY

0465

1125

BFFM_ENABLEOK

0465

1125

CDM_GETFILEPATH

0465

1125

IPM_SETADDRESS

0465

1125

PSM_SETCURSEL

0465

1125

UDM_SETRANGE

0465

1125

WM_CHOOSEFONT_SETLOGFONT

0466

1126

ACM_STOP

0466

1126

BFFM_SETSELECTIONA

0466

1126

CDM_GETFOLDERPATH

0466

1126

IPM_GETADDRESS

0466

1126

PSM_REMOVEPAGE

0466

1126

UDM_GETRANGE

0466

1126

WM_CAP_SET_CALLBACK_ERRORW

0466

1126

WM_CHOOSEFONT_SETFLAGS

0467

1127

ACM_OPENW

0467

1127

BFFM_SETSELECTIONW

0467

1127

CDM_GETFOLDERIDLIST

0467

1127

IPM_SETRANGE

0467

1127

PSM_ADDPAGE

0467

1127

UDM_SETPOS

0467

1127

WM_CAP_SET_CALLBACK_STATUSW

0468

1128

BFFM_SETSTATUSTEXTW

0468

1128

CDM_SETCONTROLTEXT

0468

1128

IPM_SETFOCUS

0468

1128

PSM_CHANGED

0468

1128

UDM_GETPOS

0469

1129

CDM_HIDECONTROL

0469

1129

IPM_ISBLANK

0469

1129

PSM_RESTARTWINDOWS

0469

1129

UDM_SETBUDDY

046a

1130

CDM_SETDEFEXT

046a

1130

PSM_REBOOTSYSTEM

046a

1130

UDM_GETBUDDY

046b

1131

PSM_CANCELTOCLOSE

046b

1131

UDM_SETACCEL

046c

1132

EM_CONVPOSITION

046c

1132

PSM_QUERYSIBLINGS

046c

1132

UDM_GETACCEL

046d

1133

MCIWNDM_GETZOOM

046d

1133

PSM_UNCHANGED

046d

1133

UDM_SETBASE

046e

1134

PSM_APPLY

046e

1134

UDM_GETBASE

046f

1135

PSM_SETTITLEA

046f

1135

UDM_SETRANGE32

0470

1136

PSM_SETWIZBUTTONS

0470

1136

UDM_GETRANGE32

0470

1136

WM_CAP_DRIVER_GET_NAMEW

0471

1137

PSM_PRESSBUTTON

0471

1137

UDM_SETPOS32

0471

1137

WM_CAP_DRIVER_GET_VERSIONW

0472

1138

PSM_SETCURSELID

0472

1138

UDM_GETPOS32

0473

1139

PSM_SETFINISHTEXTA

0474

1140

PSM_GETTABCONTROL

0475

1141

PSM_ISDIALOGMESSAGE

0476

1142

MCIWNDM_REALIZE

0476

1142

PSM_GETCURRENTPAGEHWND

0477

1143

MCIWNDM_SETTIMEFORMATA

0477

1143

PSM_INSERTPAGE

0478

1144

MCIWNDM_GETTIMEFORMATA

0478

1144

PSM_SETTITLEW

0478

1144

WM_CAP_FILE_SET_CAPTURE_FILEW

0479

1145

MCIWNDM_VALIDATEMEDIA

0479

1145

PSM_SETFINISHTEXTW

0479

1145

WM_CAP_FILE_GET_CAPTURE_FILEW

047b

1147

MCIWNDM_PLAYTO

047b

1147

WM_CAP_FILE_SAVEASW

047c

1148

MCIWNDM_GETFILENAMEA

047d

1149

MCIWNDM_GETDEVICEA

047d

1149

PSM_SETHEADERTITLEA

047d

1149

WM_CAP_FILE_SAVEDIBW

047e

1150

MCIWNDM_GETPALETTE

047e

1150

PSM_SETHEADERTITLEW

047f

1151

MCIWNDM_SETPALETTE

047f

1151

PSM_SETHEADERSUBTITLEA

0480

1152

MCIWNDM_GETERRORA

0480

1152

PSM_SETHEADERSUBTITLEW

0481

1153

PSM_HWNDTOINDEX

0482

1154

PSM_INDEXTOHWND

0483

1155

MCIWNDM_SETINACTIVETIMER

0483

1155

PSM_PAGETOINDEX

0484

1156

PSM_INDEXTOPAGE

0485

1157

DL_BEGINDRAG

0485

1157

MCIWNDM_GETINACTIVETIMER

0485

1157

PSM_IDTOINDEX

0486

1158

DL_DRAGGING

0486

1158

PSM_INDEXTOID

0487

1159

DL_DROPPED

0487

1159

PSM_GETRESULT

0488

1160

DL_CANCELDRAG

0488

1160

PSM_RECALCPAGESIZES

048c

1164

MCIWNDM_GET_SOURCE

048d

1165

MCIWNDM_PUT_SOURCE

048e

1166

MCIWNDM_GET_DEST

048f

1167

MCIWNDM_PUT_DEST

0490

1168

MCIWNDM_CAN_PLAY

0491

1169

MCIWNDM_CAN_WINDOW

0492

1170

MCIWNDM_CAN_RECORD

0493

1171

MCIWNDM_CAN_SAVE

0494

1172

MCIWNDM_CAN_EJECT

0495

1173

MCIWNDM_CAN_CONFIG

0496

1174

IE_GETINK

0496

1174

IE_MSGFIRST

0496

1174

MCIWNDM_PALETTEKICK

0497

1175

IE_SETINK

0498

1176

IE_GETPENTIP

0499

1177

IE_SETPENTIP

049a

1178

IE_GETERASERTIP

049b

1179

IE_SETERASERTIP

049c

1180

IE_GETBKGND

049d

1181

IE_SETBKGND

049e

1182

IE_GETGRIDORIGIN

049f

1183

IE_SETGRIDORIGIN

04a0

1184

IE_GETGRIDPEN

04a1

1185

IE_SETGRIDPEN

04a2

1186

IE_GETGRIDSIZE

04a3

1187

IE_SETGRIDSIZE

04a4

1188

IE_GETMODE

04a5

1189

IE_SETMODE

04a6

1190

IE_GETINKRECT

04a6

1190

WM_CAP_SET_MCI_DEVICEW

04a7

1191

WM_CAP_GET_MCI_DEVICEW

04b4

1204

WM_CAP_PAL_OPENW

04b5

1205

WM_CAP_PAL_SAVEW

04b8

1208

IE_GETAPPDATA

04b9

1209

IE_SETAPPDATA

04ba

1210

IE_GETDRAWOPTS

04bb

1211

IE_SETDRAWOPTS

04bc

1212

IE_GETFORMAT

04bd

1213

IE_SETFORMAT

04be

1214

IE_GETINKINPUT

04bf

1215

IE_SETINKINPUT

04c0

1216

IE_GETNOTIFY

04c1

1217

IE_SETNOTIFY

04c2

1218

IE_GETRECOG

04c3

1219

IE_SETRECOG

04c4

1220

IE_GETSECURITY

04c5

1221

IE_SETSECURITY

04c6

1222

IE_GETSEL

04c7

1223

IE_SETSEL

04c8

1224

CDM_LAST

04c8

1224

IE_DOCOMMAND

04c8

1224

MCIWNDM_NOTIFYMODE

04c9

1225

IE_GETCOMMAND

04ca

1226

IE_GETCOUNT

04cb

1227

IE_GETGESTURE

04cb

1227

MCIWNDM_NOTIFYMEDIA

04cc

1228

IE_GETMENU

04cd

1229

IE_GETPAINTDC

04cd

1229

MCIWNDM_NOTIFYERROR

04ce

1230

IE_GETPDEVENT

04cf

1231

IE_GETSELCOUNT

04d0

1232

IE_GETSELITEMS

04d1

1233

IE_GETSTYLE

04db

1243

MCIWNDM_SETTIMEFORMATW

04dc

1244

EM_OUTLINE

04dc

1244

MCIWNDM_GETTIMEFORMATW

04dd

1245

EM_GETSCROLLPOS

04de

1246

EM_SETSCROLLPOS

04df

1247

EM_SETFONTSIZE

04e0

1248

MCIWNDM_GETFILENAMEW

04e1

1249

MCIWNDM_GETDEVICEW

04e4

1252

MCIWNDM_GETERRORW

0600

1536

FM_GETFOCUS

0601

1537

FM_GETDRIVEINFOA

0602

1538

FM_GETSELCOUNT

0603

1539

FM_GETSELCOUNTLFN

0604

1540

FM_GETFILESELA

0605

1541

FM_GETFILESELLFNA

0606

1542

FM_REFRESH_WINDOWS

0607

1543

FM_RELOAD_EXTENSIONS

0611

1553

FM_GETDRIVEINFOW

0614

1556

FM_GETFILESELW

0615

1557

FM_GETFILESELLFNW

0659

1625

WLX_WM_SAS

07e8

2024

SM_GETSELCOUNT

07e8

2024

UM_GETSELCOUNT

07e8

2024

WM_CPL_LAUNCH

07e9

2025

SM_GETSERVERSELA

07e9

2025

UM_GETUSERSELA

07e9

2025

WM_CPL_LAUNCHED

07ea

2026

SM_GETSERVERSELW

07ea

2026

UM_GETUSERSELW

07eb

2027

SM_GETCURFOCUSA

07eb

2027

UM_GETGROUPSELA

07ec

2028

SM_GETCURFOCUSW

07ec

2028

UM_GETGROUPSELW

07ed

2029

SM_GETOPTIONS

07ed

2029

UM_GETCURFOCUSA

07ee

2030

UM_GETCURFOCUSW

07ef

2031

UM_GETOPTIONS

07f0

2032

UM_GETOPTIONS2

2000

8192

OCMBASE

2019

8217

OCM_CTLCOLOR

202b

8235

OCM_DRAWITEM

202c

8236

OCM_MEASUREITEM

202d

8237

OCM_DELETEITEM

202e

8238

OCM_VKEYTOITEM

202f

8239

OCM_CHARTOITEM

2039

8249

OCM_COMPAREITEM

204e

8270

OCM_NOTIFY

2111

8465

OCM_COMMAND

2114

8468

OCM_HSCROLL

2115

8469

OCM_VSCROLL

2132

8498

OCM_CTLCOLORMSGBOX

2133

8499

OCM_CTLCOLOREDIT

2134

8500

OCM_CTLCOLORLISTBOX

2135

8501

OCM_CTLCOLORBTN

2136

8502

OCM_CTLCOLORDLG

2137

8503

OCM_CTLCOLORSCROLLBAR

2138

8504

OCM_CTLCOLORSTATIC

2210

8720

OCM_PARENTNOTIFY

8000

32768

WM_APP

cccd

52429

WM_RASDIALEVENT


posted by 뚱2

CreateDirectory는 API 입니다. 만약 만들려는 폴더의 상위 폴더가 존재하지 않는다면
폴더가 생성되지 않습니다.

SHCreateDirectory는 쉘 함수로써 상위 폴더가 존재하지 않더라도 만들어줍니다. 더 편해요 ^^

다면 Microsoft Windows XP Service Pack 2 (SP2) and Windows Server 2003. 이상에서 사용할수 있습니다.
그리고 SHCreateDirectory 함수는 Unicode 함수입니다. 다라서 MultiByte에서 사용하실려면
문자열을 변환해주셔야 합니다.

posted by 뚱2
전부터 궁금했던 사항을 잘 정리한 블로그가 있어서 링크 걸어 둡니다.

posted by 뚱2

MFC만 사용하다 API만으로 버튼 클릭 메세지를 만들기

::SendMessage(::GatParent(hWnd)
              , WM_COMMAND 
              , (WPARAM)MAKELONG(::GetDlgCtrlID(hWnd))
              , BN_CLICKED) 
              , (LPARAM)hWnd ); 


여기서 hWnd 핸들은 클릭할려는 버튼의 핸들값 입니다.
posted by 뚱2
MFC에서 COM를 사용하기 위해서는 스레드 로딩시에  CoInitialize()를 호출해 주어야 합니다.
저는 ADO를 통해서 Oracle에 접근하기 위해서 사용했습니다.
단순한 생각으로 처음부터 DB에 연결해서 주구장창 하나로 사용하려고 했습니다.
그래서 다중접속 부분의 동시접속 문제는 CriticalSection을 이용했는데
알고 보니 이게 좋은 방법이 아니었습니다.
그래서 각 유저가 접속할때마다 DB를 Open하고 쿼리 날리고 DB를 Close 할려고 했는데
CreateInstance를 생성할때마다 스마트포인터가 NULL로 되더군요..
알고 봤더니 COM을 MFC에서 사용하기 위해서는
CoInitialize를 호출하는데 이건 스레드당 한개씩 오픈해야 한다는 것 입니다.
제가 다중접속을 위해서 별도의 스레드로 소켓을 이용한 프로그래밍을 했는데
각각 별도의 스레드에서 DB를 접속할려고 하니 안되는 거였습니다. ㅡㅡ;
결국 스레드당 접속을 한 결과 접속을 잘 해결되었습니다.

ADO ? COM 사용시 주의사항??

1. CoInitialize()와 CoUninitialize()는 꼭 짝으로 이뤄서 사용하자 :
   C++이라면 클래스로 만들어서 생성자에서 CoInitialize()하고 소멸자에서 CoUninitialize()하면
   좋겠죠
2. ADO 사용을 편하게 하기 위해서 스마트 포인터를 사용하는데... 스마트 포인터는 내부적으로
   소멸자에서 Release()를 호출해 줍니다. 따라서 명시적으로 Release()를 호출하면은 안됩니다.

하나라도 정확하게 알고 사용하는거와
모르고 사용하는건 큰 차이가 있을을 다시 한번 느꼇습니다.
이거 배워야 할게 너무도 많네요... ^^

 
posted by 뚱2

Release에서 디버깅 하기 ...

OS/Windows 2008. 11. 21. 10:54

저같은 경우 통신 프로그램을 개발 할 때
로컬에서 작업을 마치고 나서 실 서버에 서버 프로그램을 올립니다.
그런데 거의 대부분 실서버 올렸다고 바로 릴리즈 하지 못합니다.
쏟아지는 버그와 수정 사항들 ... (저만 그런가요? ^^; )
이럴때 디버깅 하기가 참 곤란 합니다.
다시 로컬 작업하던 컴퓨터에서 디버깅 모드로 디버깅하고 컴파일 하고
다시 실 서버로 올려서 돌아가는지 확인하고.... 에휴~~~~
그럴대 참으로 유용한 방법입니다.

디버그 모드에서 출력창에 스트링을 TRACE 구문이 있는데요
WIN32 API 중에 OutputDebugString()이라는 API가 있습니다.
이건 릴리즈에서도 출력창에 스트링을 출력할 수 있습니다.
그런데 이렇게 막연하게 설명하면은
출력은 어디서 봐????
이러실텐데요....
출력을 보는 프로그램은 Win32 API로 직접만들수도 있지만...
저 같은 경우는 DebugView 라는 프로그램을 사용합니다.
DebugView의 사용법은 헬프 파일을 살펴보세요.
암튼...

OutputDebugString 사용법은 참으로 간단합니다.
void WINAPI OutputDebugString(
  __in_opt  LPCTSTR lpOutputString
);

그냥 문자열을 넘기면 됩니다.
그런데 여기서 문제가 살짝 발생하네요.... 다 좋은데.... 전 printf 같이
인자도 넘기고 싶습니다.
그래서 전 이렇게 했습니다.

void OutputDebugPrintf(TCHAR* pszFormat, ...)
{
    //가변인자의 길이를 모르기때문에 동적으로 생성하기 위한 포인터 변수
    TCHAR* pBuffer = NULL;
    va_list args;

    va_start(args, pszFormat);
    // 가변인자 스트링의 길이를 구한다.
    int nLen = _vsctprintf(pszFormat, args) + sizeof(TCHAR);
    // 가변인자 길이만큼 문자열을 생성한다.
    pBuffer = new TCHAR[nLen];
    // 복사한다.
    _vstprintf_s(pBuffer, nLen, pszFormat, args);
    va_end(args); // Windows에서는 필요없음
 
   // 출력해준다.
   ::OutputDebugString(pBuffer);
    if (pBuffer)
    {
        delete[] pBuffer;
        pBuffer = NULL;
    }
}

va_list, va_start, va_end는 printf와 같이 가변인자를 받아서 처리하는
매크로 들입니다.
이걸이용하면은 인자가 몇개든 출력할수 있습니다.
사용법은 printf와 같습니다.




posted by 뚱2
예)

if (m_hThread) { DWORD dwExitCode = 0; ::GetExitCodeThread(m_hThread, &dwExitCode); if (dwExitCode == STILL_ACTIVE) { AfxMessageBox(_T("실행중인 스레드")); } }


사실 GetExitCodeThread는 스레드 핸들을 인자로 해서 스레드 종료코드를 알아내는 함수이다.
그렇지만 스레드가 종료되기전 GetExitCodeThread를 호출하면 종료코드에 'STILL_ACTIVE'가
담겨져 있다 따라서 스레드가 실행중인지 확인 할 수 있다.

'OS > Windows' 카테고리의 다른 글

CoInitialize(), CoUninitialize() 호출시 주의사항  (0) 2009.02.03
Release에서 디버깅 하기 ...  (0) 2008.11.21
InternetSetOption의 Timeout 설정 버그  (0) 2008.09.16
WM_DESTROY 메세지  (0) 2008.07.21
초보 DLL 사용하기  (0) 2008.02.21
posted by 뚱2

동기화 모드로 InternetOpenUrl 함수를 사용하다 보니 블러킹 상태에 대한
조치가 필요해서 InternetSetOption 함수의 Timeout 인자를 설정했지만
안먹더군요... 그래서 인터넷을 뒤진 결과 MS 버그 ㅡㅡ;
결국 MS에서 알려준 방법대로 스레드로 처리하긴 했습니다.
뭐 이건 배보다 배꼽이 더큰 경우라고 할 수 있네요...
#include "windows.h"
#include "wininet.h"
#include "iostream.h"

DWORD WINAPI WorkerFunction( LPVOID ); 
HINTERNET g_hOpen, g_hConnect;

typedef struct 
{
   CHAR* pHost;
   CHAR* pUser;
   CHAR* pPass;
} PARM;

void main()
{
   CHAR    szHost[] = "localhost";
   CHAR    szUser[] = "JoeB";
   CHAR    szPass[] = "test";
   CHAR    szLocalFile[] = "localfile";
   CHAR    szRemoteFile[] = "remotefile";
   DWORD   dwExitCode;
   DWORD   dwTimeout;
   PARM    threadParm;

   g_hOpen = 0;
   if ( !( g_hOpen = InternetOpen ( "FTP sample", 
                                    LOCAL_INTERNET_ACCESS, 
                                    NULL, 
                                    0, 
                                    0 ) ) )
   {         
       cerr << "Error on InternetOpen: " << GetLastError() << endl;
       return ;
   }

   // Create a worker thread 
   HANDLE   hThread; 
   DWORD    dwThreadID;
   threadParm.pHost = szHost;
   threadParm.pUser = szUser;
   threadParm.pPass = szPass;

   hThread = CreateThread(
                 NULL,            // Pointer to thread security attributes 
                 0,               // Initial thread stack size, in bytes 
                 WorkerFunction,  // Pointer to thread function 
                 &threadParm,     // The argument for the new thread
                 0,               // Creation flags 
                 &dwThreadID      // Pointer to returned thread identifier 
             );    

   // Wait for the call to InternetConnect in worker function to complete
   dwTimeout = 5000; // in milliseconds
   if ( WaitForSingleObject ( hThread, dwTimeout ) == WAIT_TIMEOUT )
   {
       cout << "Can not connect to server in " 
            << dwTimeout << " milliseconds" << endl;
       if ( g_hOpen )
InternetCloseHandle ( g_hOpen );
       // Wait until the worker thread exits
       WaitForSingleObject ( hThread, INFINITE );
       cout << "Thread has exited" << endl;
       return ;
   }

   // The state of the specified object (thread) is signaled
   dwExitCode = 0;
   if ( !GetExitCodeThread( hThread, &dwExitCode ) )
   {
       cerr << "Error on GetExitCodeThread: " << GetLastError() << endl;
       return ;
   }

   CloseHandle (hThread);
   if ( dwExitCode )
   // Worker function failed
      return ;

   if ( !FtpGetFile ( g_hConnect, 
                      szRemoteFile,
                      szLocalFile,
                      FALSE,INTERNET_FLAG_RELOAD, 
                      FTP_TRANSFER_TYPE_ASCII,
                      0 ) )
   {
       cerr << "Error on FtpGetFile: " << GetLastError() << endl;
       return ;
   }

   if ( g_hConnect )
       InternetCloseHandle( g_hConnect );
   if ( g_hOpen )
       InternetCloseHandle( g_hOpen );

   return ;
}

/////////////////// WorkerFunction ////////////////////// 
DWORD WINAPI 
WorkerFunction(
   IN LPVOID vThreadParm
)
/*
Purpose:
   Call InternetConnect to establish a FTP session  
Arguments:
   vThreadParm - points to PARM passed to thread
Returns:
   returns 0  
*/ 
{
   PARM* pThreadParm;
   // Initialize local pointer to void pointer passed to thread
   pThreadParm = (PARM*)vThreadParm;
   g_hConnect = 0;

   if ( !( g_hConnect = InternetConnect (
                            g_hOpen, 
                            pThreadParm->pHost,
                            INTERNET_INVALID_PORT_NUMBER,
                            pThreadParm->pUser,
                            pThreadParm->pPass,
                            INTERNET_SERVICE_FTP, 
                            0,
                            0 ) ) )
   {
       cerr << "Error on InternetConnnect: " << GetLastError() << endl;
       return 1; // failure
   }
   
   return 0;  // success
}

원본은 요기 ↓
http://support.microsoft.com/default.aspx?scid=kb;en-us;224318

posted by 뚱2

WM_DESTROY 메세지

OS/Windows 2008. 7. 21. 10:18

WM_DESTROY 메세지는 윈도우가 파괴될때 발생합니다.
윈도우가 파괴되는 경우는 Alt+F4, 종료버튼을 누를때 입니다.
특이한 점은 윈도우 구조체가 메모리 해제되고 나서 이 메세지가 발생합니다.
따라서 WM_DESTROY에서 DC를 얻어서 그리기를 시도하면 실패합니다.

윈도우 종료시에 마지막으로 그리기 작업이 필요하다면 WM_CLOSE에서
해주셔야 합니다. 이 메세지는 윈도우 구조체를 메모리 해제하기 바로 전에
발생하는 메세지 입니다. 따라서 DC를 정상적으로 얻을수 있습니다.

WM_DESTROY는 DC와 연관되지 않은 데이터 정리 작업을 하기 좋은 곳 입니다.

posted by 뚱2

초보 DLL 사용하기

OS/Windows 2008. 2. 21. 16:48

DLL (Dynamic Linking Library) 입니다.
우선 초보인 제 입장에서는 만들기도 힘들고
가져다 쓰기도 힘드네요 ㅡ,.ㅡ;

우선 개념을 잡자면...

DLL 소스를 컴파일 하면은 .lib와 .dll이 생성됩니다.
    1.  .h는 컴파일 과정에서 필요합니다. 함수나 클래스의 선언이 되어 있어야지 컴파일 되겠죠...
    2.  .lib는 링크 과정에서 필요합니다. 이유는 정적 lib는 링크과정에서 포함되어서 .exe파일이 만들어
        집니다. 그렇지만 Dll의 lib는 링크과정에서 어디 어디 무슨 파일이 있는지 실행위치 같은 정보가
        들어있어서 링크되어 지는 것입니다.
    3. dll은 런타임 과정(실행시)에서 필요합니다.

.h는 필요한곳에 선언해서 사용하고
.lib는 #pragma comment나 Project -> Setting에서 설정해주시면 됩니다.
.dll은 찾는 순서
    1. 클라이언트 프로그램(EXE)을 포함하는 디렉토리
    2. 현재 작업 디렉토리
    3. 윈도우 시스템 디렉토리
    4. 윈도우 디렉토리
    5. Path 환경변수에 설정된 디렉토리
에서 찾을수 있습니다.
보통 개발할때는 저는 1번을 많이 이용합니다.

posted by 뚱2

보기 어려운 오류코드를 오류메시지로 자동 바꿔주는 함수입니다.

WORD FormatMessage(
         DWORD    dwFlags 
       , LPCVOID  lpSource 
       , DWORD    dwMessageId 
       , DWORD    dwLanguageId 
       , LPTSTR   lpBuffer
       , DWORD    nSize 
       , va_list* Arguments
       );


더 자세한 것은 MSDN을 참고 하세요

PS. 오류코드는 GetLastError()함수를 통해서 얻을 수 있습니다.

'OS > Windows' 카테고리의 다른 글

Release에서 디버깅 하기 ...  (0) 2008.11.21
GetExitCodeThread 로 스레드의 상태를 알아보기  (0) 2008.09.27
InternetSetOption의 Timeout 설정 버그  (0) 2008.09.16
WM_DESTROY 메세지  (0) 2008.07.21
초보 DLL 사용하기  (0) 2008.02.21
posted by 뚱2