|
|
1.1 root 1: /**********************************************************************\
2: * *
3: * Module Name: PMSTDDLG.H *
4: * *
5: * OS/2 Presentation Manager Standard Dialog Declarations *
6: * *
7: * Copyright (c) 1987 Microsoft Corporation *
8: * Copyright (c) 1987 IBM Corporation *
9: * *
10: * ==================================================================== *
11: * The following symbols are used in this file for conditional *
12: * sections: *
13: * *
14: * INCL_WINSTDDLGS - include all dialogs/controls *
15: * INCL_WINSTDFILE - standard file dialog *
16: * INCL_WINSTDFONT - standard font dialog *
17: * INCL_WINSTDSPIN - spin button control class *
18: * INCL_WINSTDDRAG - standard drag dll *
19: * *
20: \**********************************************************************/
21:
22: #if !(defined(INCL_32) || defined(INCL_16))
23: #ifdef M_I386
24: #define INCL_32
25: #else /* not M_I386 */
26: #define INCL_16
27: #endif /* M_I386 */
28: #endif /* INCL_32 || INCL_16 */
29:
30: #ifdef INCL_WINSTDDLGS /* enable everything */
31: #define INCL_WINSTDFILE
32: #define INCL_WINSTDFONT
33: #define INCL_WINSTDSPIN
34: #define INCL_WINSTDDRAG
35: #endif /* INCL_WINSTDDLGS */
36:
37:
38: #ifdef INCL_WINSTDFILE
39: /**********************************************************************/
40: /* */
41: /* F I L E D I A L O G */
42: /* */
43: /**********************************************************************/
44:
45: /*--------------------------------------------------------------------*/
46: /* File Dialog Selector Constants: */
47: /* Prime variable FILEDLG.usDialogType with desired dialog type. */
48: /*--------------------------------------------------------------------*/
49: #define OPEN_DIALOG 0 /* Select OPEN dialog. */
50: #define SAVEAS_DIALOG 1 /* Select SaveAs dialog. */
51:
52: /*--------------------------------------------------------------------*/
53: /* File Dialog Invocation Flag Definitions. */
54: /*--------------------------------------------------------------------*/
55: #define FDS_CENTER 0x00000001L /* Center within owner dialog. */
56: #define FDS_CUSTOM 0x00000002L /* Use custom user template */
57: #define FDS_HELPBUTTON 0x00000008L /* Display Help button */
58:
59: /*--------------------------------------------------------------------*/
60: /* Error Return Codes from dialog (self defining) */
61: /*--------------------------------------------------------------------*/
62: #define FDS_SUCCESSFUL 0
63: #define FDS_ERR_DEALLOCATE_MEMORY 1
64: #define FDS_ERR_FILTER_TRUNC 2
65: #define FDS_ERR_INVALID_DIALOG 3
66: #define FDS_ERR_INVALID_DRIVE 4
67: #define FDS_ERR_INVALID_FILTER 5
68: #define FDS_ERR_INVALID_PATHFILE 6
69: #define FDS_ERR_OUT_OF_MEMORY 7
70: #define FDS_ERR_PATH_TOO_LONG 8
71: #define FDS_ERR_TOO_MANY_FILE_TYPES 9
72: #define FDS_ERR_INVALID_VERSION 10
73: #define FDS_ERR_INVALID_CUSTOM_HANDLE 11
74: #define FDS_ERR_DIALOG_LOAD_ERROR 12
75: #define FDS_ERR_DRIVE_ERROR 13
76:
77: /*--------------------------------------------------------------------*/
78: /* File Dialog Messages. */
79: /*--------------------------------------------------------------------*/
80: #define FDM_FILTER (WM_USER+40) /* mp1 = PSZ pszFileName */
81: /* mp2 = PSZ EA .type value */
82: /* mr = TRUE -> keep file. */
83: #define FDM_VALIDATE (WM_USER+41) /* mp1 = PSZ pszPathName */
84: /* mp2 = Application return value*/
85: /* mr = TRUE -> Exit dialog */
86:
87: /*--------------------------------------------------------------------*/
88: /* Define the window word offset for the "lUser" data value. */
89: /*--------------------------------------------------------------------*/
90: #define WWO_APP QWL_USER
91:
92: /*--------------------------------------------------------------------*/
93: /* Define the type that is a pointer to an array of pointers. */
94: /* Hence: pointer to an array of Z string pointers. */
95: /*--------------------------------------------------------------------*/
96: typedef PSZ (FAR * PAPSZ)[1];
97:
98: /*--------------------------------------------------------------------*/
99: /* File Dialog application data structure. */
100: /*--------------------------------------------------------------------*/
101: typedef struct _FILEDLG { /* fild */
102: ULONG cbsize; /* Size of FILEDLG structure. */
103: ULONG fl; /* FDS_ flags. Alter behavior of dlg. */
104: ULONG lUser; /* User defined field. */
105: ULONG lReturn; /* Result code from dialog dismissal. */
106: LONG lSRC; /* System return code. */
107: PSZ pszTitle; /* String to display in title bar. */
108: PSZ pszOKButton; /* String to display in OK button. */
109: PFNWP pfnDlgProc; /* Entry point to custom dialog proc. */
110: PSZ pszIType; /* Pointer to string containing */
111: /* initial EA type filter. Type */
112: /* does not have to exist in list. */
113: PAPSZ ppszITypeList; /* Pointer to table of pointers that */
114: /* point to null terminated Type */
115: /* strings. End of table is marked */
116: /* by a NULL pointer. */
117: PSZ pszIDrive; /* Pointer to string containing */
118: /* initial drive. Drive does not */
119: /* have to exist in drive list. */
120: PAPSZ ppszIDriveList; /* Pointer to table of pointers that */
121: /* point to null terminated Drive */
122: /* strings. End of table is marked */
123: /* by a NULL pointer. */
124: HMODULE hmod; /* Custom File Dialog template. */
125: #ifdef INCL_16
126: USHORT _align;
127: #endif
128: char szFullFile [CCHMAXPATH]; /* Initial or selected fully */
129: /* qualified path and file. */
130: USHORT idDlg; /* Custom dialog id. */
131: USHORT usDialogType; /* Dialog selector. File or SaveAs. */
132: SHORT x; /* Dialog position coordinates. */
133: SHORT y;
134: SHORT sEAType; /* Selected file's EA Type. */
135: BOOL bEnableFileLB; /* Flag for saveas file listbox enable*/
136: } FILEDLG, FAR *PFILEDLG;
137:
138: /*--------------------------------------------------------------------*/
139: /* File Dialog - Function Prototype */
140: /*--------------------------------------------------------------------*/
141: #ifdef INCL_16
142: #define KitFileDlgProc Kit16FileDlgProc
143: #define KitFileDlg(hwnd,pfild) Kit16FileDlg(hwnd,pfild,TRUE)
144: HWND APIENTRY Kit16FileDlg (HWND hwnd, PFILEDLG pfild, BOOL fIs16);
145: #else
146: HWND APIENTRY KitFileDlg (HWND hwnd, PFILEDLG pfild);
147: #endif /* INCL_16 */
148:
149: MRESULT APIENTRY KitFileDlgProc( HWND hwnd, USHORT msg, MPARAM mp1,
150: MPARAM mp2);
151:
152: /*--------------------------------------------------------------------*/
153: /* File Dialog - dialog and control ids */
154: /*--------------------------------------------------------------------*/
155: #define DID_FILE_DIALOG 256
156: #define DID_FILENAME_TXT 257
157: #define DID_FILENAME_ED 258
158: #define DID_DRIVE_TXT 259
159: #define DID_DRIVE_CB 260
160: #define DID_FILTER_TXT 261
161: #define DID_FILTER_CB 262
162: #define DID_DIRECTORY_TXT 263
163: #define DID_DIRECTORY_LB 264
164: #define DID_DIRECTORY2_LB 265
165: #define DID_FILES_TXT 266
166: #define DID_FILES_LB 267
167: #define DID_OK_PB DID_OK
168: #define DID_CANCEL_PB DID_CANCEL
169: #define DID_HELP_PB 270
170:
171: #define IDS_FILE_ALL_FILES_SELECTOR 1000
172: #define IDS_FILE_BACK_CUR_PATH 1001
173: #define IDS_FILE_BACK_PREV_PATH 1002
174: #define IDS_FILE_BACK_SLASH 1003
175: #define IDS_FILE_BASE_FILTER 1004
176: #define IDS_FILE_BLANK 1005
177: #define IDS_FILE_COLON 1006
178: #define IDS_FILE_DOT 1007
179: #define IDS_FILE_DRIVE_LETTERS 1008
180: #define IDS_FILE_FWD_CUR_PATH 1009
181: #define IDS_FILE_FWD_PREV_PATH 1010
182: #define IDS_FILE_FORWARD_SLASH 1011
183: #define IDS_FILE_PARENT_DIR 1012
184: #define IDS_FILE_Q_MARK 1013
185: #define IDS_FILE_SPLAT 1014
186: #define IDS_FILE_SPLAT_DOT 1015
187: #define IDS_FILE_SAVEAS_TITLE 1016
188: #define IDS_FILE_SAVEAS_FILTER_TXT 1017
189: #define IDS_FILE_SAVEAS_FILENM_TXT 1018
190: #define IDS_FILE_DUMMY_FILE_NAME 1019
191: #define IDS_FILE_DUMMY_FILE_EXT 1020
192: #define IDS_FILE_DUMMY_DRIVE 1021
193: #define IDS_FILE_DUMMY_ROOT_DIR 1022
194: #define IDS_FILE_PATH_PTR 1023
195: #define IDS_FILE_VOLUME_PREFIX 1024
196: #define IDS_FILE_VOLUME_SUFFIX 1025
197:
198: #define IDS_FILE_BAD_DRIVE_NAME 1100
199: #define IDS_FILE_BAD_DRIVE_OR_PATH_NAME 1101
200: #define IDS_FILE_BAD_FILE_NAME 1102
201: #define IDS_FILE_BAD_FQF 1103
202: #define IDS_FILE_BAD_NETWORK_NAME 1104
203: #define IDS_FILE_BAD_SUB_DIR_NAME 1105
204: #define IDS_FILE_DRIVE_NOT_AVAILABLE 1106
205: #define IDS_FILE_FQFNAME_TOO_LONG 1107
206: #define IDS_FILE_OPEN_DIALOG_NOTE 1108
207: #define IDS_FILE_PATH_TOO_LONG 1109
208: #define IDS_FILE_SAVEAS_DIALOG_NOTE 1110
209:
210: #define IDS_FILE_DRIVE_DISK_CHANGE 1120
211: #define IDS_FILE_DRIVE_NOT_READY1 1121
212: #define IDS_FILE_DRIVE_NOT_READY2 1122
213: #define IDS_FILE_DRIVE_LOCKED 1123
214: #define IDS_FILE_DRIVE_NO_SECTOR 1124
215: #define IDS_FILE_DRIVE_SOME_ERROR 1125
216: #define IDS_FILE_DRIVE_INVALID 1126
217: #define IDS_FILE_INSERT_DISK_NOTE 1127
218: #define IDS_FILE_OK_WHEN_READY 1128
219:
220: #endif /* INCL_WINSTDFILE */
221:
222:
223: #ifdef INCL_WINSTDFONT
224: /**********************************************************************/
225: /* */
226: /* F O N T D I A L O G */
227: /* */
228: /**********************************************************************/
229:
230: /**********************************************************************/
231: /* Font Dialog Creation Structure */
232: /**********************************************************************/
233: typedef struct _FONTDLG { /* fntd */
234: ULONG cbSize; /* sizeof(FONTDLG) */
235: HPS hpsScreen; /* Screen presentation space */
236: HPS hpsPrinter; /* Printer presentation space */
237: PSZ pszTitle; /* Application supplied title */
238: PSZ pszPreview; /* String to print in preview wndw */
239: PSZ pszPtSizeList; /* Application provided size list */
240: PFNWP pfnDlgProc; /* Dialog subclass procedure */
241: CHAR szFamilyname[FACESIZE]; /* Familyname of font */
242: FIXED fxPointSize; /* Point size the user selected */
243: ULONG fl; /* FNTS_* flags */
244: ULONG flFlags; /* FNTF_* state flags */
245: ULONG flType; /* Font type option bits */
246: ULONG flTypeMask; /* Mask of which font types to use */
247: ULONG flStyle; /* The selected style bits */
248: ULONG flStyleMask; /* Mask of which style bits to use */
249: ULONG flCHSOptions; /* CHS_* options the user selected */
250: ULONG flCHSMask; /* Mask of CHS_* options to use */
251: LONG clrFore; /* Selected foreground color */
252: LONG clrBack; /* Selected background color */
253: ULONG lUser; /* Blank field for application */
254: LONG lReturn; /* Return Value of the Dialog */
255: LONG lEmHeight; /* Em height of the current font */
256: LONG lXHeight; /* X height of the current font */
257: LONG lExternalLeading; /* External Leading of font */
258: HMODULE hMod; /* Module to load custom template */
259: #ifdef INCL_16
260: USHORT _align;
261: #endif
262: SHORT sNominalPointSize; /* Nominal Point Size of font */
263: USHORT usWeight; /* The boldness of the font */
264: USHORT usWidth; /* The width of the font */
265: SHORT x; /* X coordinate of the dialog */
266: SHORT y; /* Y coordinate of the dialog */
267: USHORT idDlg; /* ID of a custom dialog template */
268: FATTRS fAttrs; /* Font attribute structure */
269: } FONTDLG, FAR *PFONTDLG;
270:
271: /**********************************************************************/
272: /* Font Dialog Style Flags */
273: /**********************************************************************/
274: #define FNTS_CENTER 1L
275: #define FNTS_CUSTOM 2L
276: #define FNTS_MULTIFONTSELECTION 4L
277: #define FNTS_HELPBUTTON 8L
278: #define FNTS_APPLYBUTTON 16L
279: #define FNTS_RESETBUTTON 32L
280: #define FNTS_MODELESS 64L
281:
282: /**********************************************************************/
283: /* Font Dialog Flags */
284: /**********************************************************************/
285: #define FNTF_VIEWPRINTERFONTS 1L
286: #define FNTF_PRINTERFONTSELECTED 2L
287:
288: /**********************************************************************/
289: /* Color code definitions */
290: /**********************************************************************/
291: #define CLRC_FOREGROUND 1L
292: #define CLRC_BACKGROUND 2L
293:
294: /**********************************************************************/
295: /* Font Dialog Messages */
296: /**********************************************************************/
297: #define FNTM_FACENAMECHANGED (WM_USER+50) /* mp1 = PSZ pszFacename */
298: #define FNTM_POINTSIZECHANGED (WM_USER+51) /* mp1 = PSZ pszPointSize, */
299: /* mp2 = FIXED fxPointSize */
300: #define FNTM_STYLECHANGED (WM_USER+52) /* mp1 = PSTYLECHANGE pstyc*/
301: #define FNTM_COLORCHANGED (WM_USER+53) /* mp1 = LONG clr */
302: /* mp2 = USHORT codeClr */
303: #define FNTM_UPDATEPREVIEW (WM_USER+54) /* mp1 = HWND hWndPreview */
304:
305: /**********************************************************************/
306: /* Stylechange message parameter structure */
307: /**********************************************************************/
308: typedef struct _STYLECHANGE { /* stylechg */
309: USHORT usWeight;
310: USHORT usWeightOld;
311: USHORT usWidth;
312: USHORT usWidthOld;
313: ULONG flType;
314: ULONG flTypeOld;
315: ULONG flTypeMask;
316: ULONG flTypeMaskOld;
317: ULONG flStyle;
318: ULONG flStyleOld;
319: ULONG flStyleMask;
320: ULONG flStyleMaskOld;
321: ULONG flCHSOptions;
322: ULONG flCHSOptionsOld;
323: ULONG flCHSMask;
324: ULONG flCHSMaskOld;
325: } STYLECHANGE, FAR *PSTYLECHANGE;
326:
327: /**********************************************************************/
328: /* Font Dialog Shared Segment Names */
329: /**********************************************************************/
330: #define FONTDLG_SHARED_SEGMENT1 "\\SHAREMEM\\EPKFDS01.SEG"
331: #define FONTDLG_SHARED_SEGMENT2 "\\SHAREMEM\\EPKFDS02.SEG"
332:
333: /**********************************************************************/
334: /* Font Dialog Semaphore Name */
335: /**********************************************************************/
336: #define FONTDLG_SEMAPHORE "\\SEM\\EPKFDS01.SEM"
337:
338: /**********************************************************************/
339: /* Font Dialog Function Prototypes */
340: /**********************************************************************/
341: #ifdef INCL_16
342: #define KitDefFontDlgProc Kit16DefFontDlgProc
343: #define KitFontDialog(hwnd,pfntd) Kit16FontDialog(hwnd,pfntd,TRUE)
344: HWND APIENTRY Kit16FontDialog (HWND hwnd, PFONTDLG pfntd, BOOL fIs16);
345: #else
346: HWND APIENTRY KitFontDialog (HWND hwnd, PFONTDLG pfntd);
347: #endif /* INCL_16 */
348:
349: MRESULT APIENTRY KitDefFontDlgProc (HWND hwnd, USHORT msg, MPARAM mp1,
350: MPARAM mp2 );
351:
352: /**********************************************************************/
353: /* font dialog and control id's */
354: /**********************************************************************/
355: #define DID_FONT_DIALOG 300
356: #define DID_NAME_PREFIX 301
357: #define DID_NAME 302
358: #define DID_NAME2 303
359: #define DID_STYLE_PREFIX 304
360: #define DID_STYLE 305
361: #define DID_STYLE2 306
362: #define DID_DISPLAY_FILTER 307
363: #define DID_PRINTER_FILTER 308
364: #define DID_SIZE_PREFIX 309
365: #define DID_SIZE 310
366: #define DID_SAMPLE_GROUPBOX 311
367: #define DID_SAMPLE 312
368: #define DID_HELP_BUTTON 313
369: #define DID_EMPHASIS_GROUPBOX 314
370: #define DID_OUTLINE 315
371: #define DID_UNDERSCORE 316
372: #define DID_STRIKEOUT 317
373: #define DID_APPLY_BUTTON 318
374: #define DID_RESET_BUTTON 319
375:
376: /**********************************************************************/
377: /* Stringtable id's */
378: /**********************************************************************/
379: #define IDS_FONT_SAMPLE 350
380: #define IDS_FONT_KEY_0 351
381: #define IDS_FONT_KEY_9 352
382: #define IDS_FONT_KEY_SEP 353
383: #define IDS_FONT_DISP_ONLY 354
384: #define IDS_FONT_PRINTER_ONLY 355
385: #define IDS_FONT_COMBINED 356
386: #define IDS_FONT_WEIGHT1 357
387: #define IDS_FONT_WEIGHT2 358
388: #define IDS_FONT_WEIGHT3 360
389: #define IDS_FONT_WEIGHT4 361
390: #define IDS_FONT_WEIGHT5 362
391: #define IDS_FONT_WEIGHT6 363
392: #define IDS_FONT_WEIGHT7 364
393: #define IDS_FONT_WEIGHT8 365
394: #define IDS_FONT_WEIGHT9 366
395: #define IDS_FONT_WIDTH1 367
396: #define IDS_FONT_WIDTH2 368
397: #define IDS_FONT_WIDTH3 369
398: #define IDS_FONT_WIDTH4 370
399: #define IDS_FONT_WIDTH5 371
400: #define IDS_FONT_WIDTH6 372
401: #define IDS_FONT_WIDTH7 373
402: #define IDS_FONT_WIDTH8 374
403: #define IDS_FONT_WIDTH9 375
404: #define IDS_FONT_OPTION1 376
405: #define IDS_FONT_OPTION2 377
406: #define IDS_FONT_OPTION3 378
407: #define IDS_FONT_POINT_SIZE_LIST 379
408:
409: #endif /* INCL_WINSTDFONT */
410:
411: #ifdef INCL_WINSTDSPIN
412: /**********************************************************************/
413: /* */
414: /* S P I N B U T T O N */
415: /* */
416: /**********************************************************************/
417:
418: /**********************************************************************/
419: /* SPINBUTTON Creation Flags */
420: /**********************************************************************/
421:
422: /**********************************************************************/
423: /* Character Acceptance */
424: /**********************************************************************/
425: #define SPBS_ALLCHARACTERS 0x00000000L /* Default: All chars accepted */
426: #define SPBS_NUMERICONLY 0x00000001L /* Only 0 - 9 accepted & VKeys */
427: #define SPBS_READONLY 0x00000002L /* No chars allowed in entryfld*/
428:
429: /**********************************************************************/
430: /* Type of Component */
431: /**********************************************************************/
432: #define SPBS_MASTER 0x00000010L
433: #define SPBS_SERVANT 0x00000000L /* Default: Servant */
434:
435: /**********************************************************************/
436: /* Type of Justification */
437: /**********************************************************************/
438: #define SPBS_JUSTDEFAULT 0x00000000L /* Default: Same as Left */
439: #define SPBS_JUSTLEFT 0x00000008L
440: #define SPBS_JUSTRIGHT 0x00000004L
441: #define SPBS_JUSTCENTER 0x0000000CL
442:
443: /**********************************************************************/
444: /* Border or not */
445: /**********************************************************************/
446: #define SPBS_NOBORDER 0x00000020L /* Borderless SpinField */
447: /* Default is to have a border. */
448:
449: /**********************************************************************/
450: /* Fast spin or not */
451: /**********************************************************************/
452: #define SPBS_FASTSPIN 0x00000100L /* Allow fast spinning. Fast */
453: /* spinning is performed by */
454: /* skipping over numbers */
455:
456: /**********************************************************************/
457: /* Pad numbers on front with 0's */
458: /**********************************************************************/
459: #define SPBS_PADWITHZEROS 0x00000080L /* Pad the number with zeroes */
460:
461: /**********************************************************************/
462: /* SPINBUTTON Messages */
463: /**********************************************************************/
464:
465: /**********************************************************************/
466: /* Notification from Spinbutton to the application is sent in a */
467: /* WM_CONTROL message. */
468: /**********************************************************************/
469: #define SPBN_UPARROW 0x20A /* up arrow button was pressed */
470: #define SPBN_DOWNARROW 0x20B /* down arrow button was pressed*/
471: #define SPBN_ENDSPIN 0x20C /* mouse button was released */
472: #define SPBN_CHANGE 0x20D /* spinfield text has changed */
473: #define SPBN_SETFOCUS 0x20E /* spinfield received focus */
474: #define SPBN_KILLFOCUS 0x20F /* spinfield lost focus */
475:
476: /**********************************************************************/
477: /* Messages from application to Spinbutton */
478: /**********************************************************************/
479: #define SPBM_OVERRIDESETLIMITS 0x200 /* Set spinbutton limits without*/
480: /* resetting the current value */
481: #define SPBM_QUERYLIMITS 0x201 /* Query limits set by */
482: /* SPBM_SETLIMITS */
483: #define SPBM_SETTEXTLIMIT 0x202 /* Max entryfield characters */
484: #define SPBM_SPINUP 0x203 /* Tell entry field to spin up */
485: #define SPBM_SPINDOWN 0x204 /* Tell entry field to spin down*/
486: #define SPBM_QUERYVALUE 0x205 /* Tell entry field to send */
487: /* current value */
488:
489: /**********************************************************************/
490: /* Query Flags */
491: /**********************************************************************/
492: #define SPBQ_UPDATEIFVALID 0 /* Default */
493: #define SPBQ_ALWAYSUPDATE 1
494: #define SPBQ_DONOTUPDATE 3
495:
496: /**********************************************************************/
497: /* Return value for Empty Field. */
498: /* If ptr too long, variable sent in query msg */
499: /**********************************************************************/
500: #define SPBM_SETARRAY 0x206 /* Change the data to spin */
501: #define SPBM_SETLIMITS 0x207 /* Change the numeric Limits */
502: #define SPBM_SETCURRENTVALUE 0x208 /* Change the current value */
503: #define SPBM_SETMASTER 0x209 /* Tell entryfield who master is*/
504:
505: /**********************************************************************/
506: /* SPINBUTTON Window Class Definition */
507: /**********************************************************************/
508: #define WC_SPINBUTTON ((PSZ)0xffff0020L)
509:
510: /**********************************************************************/
511: /* REGISTERSPINBUTTON Function Prototype */
512: /**********************************************************************/
513: VOID APIENTRY RegisterSpinButton ( VOID );
514:
515: #endif /* INCL_WINSTDSPIN */
516:
517:
518: #ifdef INCL_WINSTDDRAG
519: /**********************************************************************/
520: /* */
521: /* D I R E C T M A N I P U L A T I O N */
522: /* */
523: /**********************************************************************/
524:
525: #define PMERR_NOT_DRAGGING 0x1f00 /* move to pmerr.h */
526:
527: #define MSGF_DRAG 0x0010 /* message filter identifier */
528:
529: #define WM_DRAGFIRST 0x0300
530: #define WM_DRAGLAST (WM_DRAGFIRST + 0x000F)
531:
532: #define DM_DROP (WM_DRAGLAST - 0)
533: #define DM_DRAGOVER (WM_DRAGLAST - 1)
534: #define DM_DRAGLEAVE (WM_DRAGLAST - 2)
535: #define DM_DROPHELP (WM_DRAGLAST - 3)
536: #define DM_ENDCONVERSATION (WM_DRAGLAST - 4)
537: #define DM_PRINT (WM_DRAGLAST - 5)
538: #define DM_RENDER (WM_DRAGLAST - 6)
539: #define DM_RENDERCOMPLETE (WM_DRAGLAST - 7)
540: #define DM_RENDERPREPARE (WM_DRAGLAST - 8)
541:
542: #define DRT_ASM "Assembler Code" /* drag type constants */
543: #define DRT_BASIC "BASIC Code"
544: #define DRT_BINDATA "Binary Data"
545: #define DRT_BITMAP "Bitmap"
546: #define DRT_C "C Code"
547: #define DRT_COBOL "COBOL Code"
548: #define DRT_DLL "Dynamic Link Library"
549: #define DRT_DOSCMD "DOS Command File"
550: #define DRT_EXE "Executable"
551: #define DRT_FORTRAN "FORTRAN Code"
552: #define DRT_ICON "Icon"
553: #define DRT_LIB "Library"
554: #define DRT_METAFILE "Metafile"
555: #define DRT_OS2CMD "OS/2 Command File"
556: #define DRT_PASCAL "Pascal Code"
557: #define DRT_RESOURCE "Resource File"
558: #define DRT_TEXT "Plain Text"
559: #define DRT_UNKNOWN "Unknown"
560:
561: #define DOR_NODROP 0x0000 /* DM_DRAGOVER response codes */
562: #define DOR_DROP 0x0001
563: #define DOR_NODROPOP 0x0002
564: #define DOR_NEVERDROP 0x0003
565:
566: #define DO_COPYABLE 0x0001 /* supported operation flags */
567: #define DO_MOVEABLE 0x0002
568:
569: #define DC_OPEN 0x0001 /* source control flags */
570: #define DC_REF 0x0002
571: #define DC_GROUP 0x0004
572: #define DC_CONTAINER 0x0008
573: #define DC_PREPARE 0x0010
574: #define DC_REMOVEABLEMEDIA 0x0020
575:
576: #define DO_DEFAULT 0xBFFE /* Default operation */
577: #define DO_UNKNOWN 0xBFFF /* Unknown operation */
578: #define DO_COPY KC_CTRL
579: #define DO_MOVE KC_ALT
580:
581: #define DMFL_TARGETSUCCESSFUL 0x0001 /* transfer reply flags */
582: #define DMFL_NATIVERENDER 0x0002
583: #define DMFL_RENDERRETRY 0x0004
584: #define DMFL_RENDEROK 0x0008
585: #define DMFL_RENDERFAIL 0x0010
586: #define DMFL_TARGETFAIL 0x0020
587:
588: #define DRG_IMAGEICON 0x00000001L /* drag image manipulation */
589: #define DRG_IMAGETRANSPARENT 0x00000002L /* flags */
590: #define DRG_NOIMAGEAUGMENT 0x00000004L
591: #define DRG_IMAGEBITMAP 0x00000008L
592:
593:
594: typedef LHANDLE HSTR; /* hstr */
595:
596: typedef struct _DRAGITEM { /* ditem */
597: HWND hwndItem; /* conversation partner */
598: ULONG ulItemID; /* identifies item being dragged */
599: HSTR hstrType; /* type of item */
600: HSTR hstrRendMechFmt; /* rendering mechanism and format*/
601: HSTR hstrContainerName; /* name of source container */
602: HSTR hstrSourceName; /* name of item at source */
603: HSTR hstrTargetName; /* suggested name of item at dest*/
604: USHORT fsControl; /* source item control flags */
605: USHORT fsSupportedOps; /* ops supported by source */
606: } DRAGITEM;
607: typedef DRAGITEM FAR *PDRAGITEM;
608:
609: typedef struct _DRAGINFO { /* dinfo */
610: ULONG cbDraginfo; /* Size of DRAGINFO and DRAGITEMs*/
611: USHORT cbDragitem; /* size of DRAGITEM */
612: USHORT usOperation; /* current drag operation */
613: HWND hwndSource; /* window handle of source */
614: SHORT xDrop; /* x coordinate of drop position */
615: SHORT yDrop; /* y coordinate of drop position */
616: SHORT cxHotspot; /* x offset of mouse hotspot from*/
617: /* origin of dragged image */
618: SHORT cyHotspot; /* y offset of mouse hotspot from*/
619: /* origin of dragged image */
620: LHANDLE hImage; /* image handle passed to DrgDrag*/
621: ULONG fl; /* flags passed to DrgDrag */
622: USHORT cditem; /* count of DRAGITEMs */
623: USHORT usReserved; /* reserved for future use */
624: } DRAGINFO;
625: typedef DRAGINFO FAR *PDRAGINFO;
626:
627: typedef struct _DRAGTRANSFER { /* dxfer */
628: ULONG cb; /* size of control block */
629: HWND hwndClient; /* handle of target */
630: PDRAGITEM pditem; /* DRAGITEM being transferred */
631: HSTR hstrSelectedRMF; /* rendering mech & fmt of choice*/
632: HSTR hstrRenderToName; /* name source will use */
633: ULONG ulTargetInfo; /* reserved for target's use */
634: USHORT usOperation; /* operation being performed */
635: USHORT fsReply; /* reply flags */
636: } DRAGTRANSFER;
637: typedef DRAGTRANSFER FAR *PDRAGTRANSFER;
638:
639: #ifdef INCL_16
640: #define DrgAccessDraginfo Drg16AccessDraginfo
641: #define DrgAddStrHandle Drg16AddStrHandle
642: #define DrgAllocDraginfo Drg16AllocDraginfo
643: #define DrgAllocDragtransfer Drg16AllocDragtransfer
644: #define DrgDeleteDraginfoStrHandles Drg16DeleteDraginfoStrHandles
645: #define DrgDeleteStrHandle Drg16DeleteStrHandle
646: #define DrgDrag Drg16Drag
647: #define DrgFreeDraginfo Drg16FreeDraginfo
648: #define DrgFreeDragtransfer Drg16FreeDragtransfer
649: #define DrgGetPS Drg16GetPS
650: #define DrgPostTransferMsg Drg16PostTransferMsg
651: #define DrgPushDraginfo Drg16PushDraginfo
652: #define DrgQueryDragitem Drg16QueryDragitem
653: #define DrgQueryDragitemCount Drg16QueryDragitemCount
654: #define DrgQueryDragitemPtr Drg16QueryDragitemPtr
655: #define DrgQueryNativeRendMechFmt Drg16QueryNativeRendMechFmt
656: #define DrgQueryNativeRendMechFmtLen Drg16QueryNativeRendMechFmtLen
657: #define DrgQueryStrName Drg16QueryStrName
658: #define DrgQueryStrNameLen Drg16QueryStrNameLen
659: #define DrgQueryTrueType Drg16QueryTrueType
660: #define DrgQueryTrueTypeLen Drg16QueryTrueTypeLen
661: #define DrgReleasePS Drg16ReleasePS
662: #define DrgSendTransferMsg Drg16SendTransferMsg
663: #define DrgSetDragPointer Drg16SetDragPointer
664: #define DrgSetDragImage Drg16SetDragImage
665: #define DrgSetDragitem Drg16SetDragitem
666: #define DrgVerifyNativeRendMechFmt Drg16VerifyNativeRendMechFmt
667: #define DrgVerifyRendMechFmt Drg16VerifyRendMechFmt
668: #define DrgVerifyTrueType Drg16VerifyTrueType
669: #define DrgVerifyType Drg16VerifyType
670: #define DrgVerifyTypeSet Drg16VerifyTypeSet
671: #endif
672:
673: BOOL EXPENTRY DrgAccessDraginfo (PDRAGINFO pdinfo);
674: HSTR EXPENTRY DrgAddStrHandle (PSZ psz);
675: PDRAGINFO EXPENTRY DrgAllocDraginfo (USHORT cditem);
676: PDRAGTRANSFER EXPENTRY DrgAllocDragtransfer (USHORT cdxfer);
677: BOOL EXPENTRY DrgDeleteDraginfoStrHandles (PDRAGINFO pdinfo);
678: BOOL EXPENTRY DrgDeleteStrHandle (HSTR hstr);
679: HWND EXPENTRY DrgDrag (HWND hwndSource, PDRAGINFO pdinfo, LHANDLE hImage,
680: SHORT cx, SHORT cy,
681: SHORT vkTerminate, ULONG fl, PVOID pRsvd);
682: BOOL EXPENTRY DrgFreeDraginfo (PDRAGINFO pdinfo);
683: BOOL EXPENTRY DrgFreeDragtransfer (PDRAGTRANSFER pdxfer);
684: HPS EXPENTRY DrgGetPS (HWND hwnd);
685: BOOL EXPENTRY DrgPostTransferMsg (HWND hwnd, USHORT msg, PDRAGTRANSFER pdxfer,
686: USHORT fs, USHORT usRsvd, BOOL fRetry);
687: BOOL EXPENTRY DrgPushDraginfo (PDRAGINFO pdinfo, HWND hwndDest);
688: BOOL EXPENTRY DrgQueryDragitem (PDRAGINFO pdinfo, USHORT cbBuffer,
689: PDRAGITEM pditem, USHORT iItem);
690: USHORT EXPENTRY DrgQueryDragitemCount (PDRAGINFO pdinfo);
691: PDRAGITEM EXPENTRY DrgQueryDragitemPtr (PDRAGINFO pdinfo, USHORT i);
692: BOOL EXPENTRY DrgQueryNativeRendMechFmt (PDRAGITEM pditem,
693: USHORT cbBuffer, PCHAR pBuffer);
694: USHORT EXPENTRY DrgQueryNativeRendMechFmtLen (PDRAGITEM pditem);
695: USHORT EXPENTRY DrgQueryStrName (HSTR hstr, USHORT cbBuffer, PSZ pBuffer);
696: USHORT EXPENTRY DrgQueryStrNameLen (HSTR hstr);
697: BOOL EXPENTRY DrgQueryTrueType (PDRAGITEM pditem, USHORT cbBuffer, PSZ pBuffer);
698: USHORT EXPENTRY DrgQueryTrueTypeLen (PDRAGITEM pditem);
699: BOOL EXPENTRY DrgReleasePS (HPS hps);
700: MRESULT EXPENTRY DrgSendTransferMsg (HWND hwnd, USHORT msg,
701: MPARAM mp1, MPARAM mp2);
702: BOOL EXPENTRY DrgSetDragitem (PDRAGINFO pdinfo, PDRAGITEM pditem,
703: USHORT cbBuffer, USHORT iItem);
704: BOOL EXPENTRY DrgSetDragPointer (PDRAGINFO pdinfo, HPOINTER hptr);
705: BOOL EXPENTRY DrgSetDragImage (PDRAGINFO pdinfo, LHANDLE hCustom,
706: SHORT cx, SHORT cy, ULONG fl, PVOID pRsvd);
707: BOOL EXPENTRY DrgVerifyNativeRendMechFmt (PDRAGITEM pditem, PSZ pszRMF);
708: BOOL EXPENTRY DrgVerifyRendMechFmt (PDRAGITEM pditem, PSZ pszMech, PSZ pszFmt);
709: BOOL EXPENTRY DrgVerifyTrueType (PDRAGITEM pditem, PSZ pszType);
710: BOOL EXPENTRY DrgVerifyType (PDRAGITEM pditem, PSZ pszType);
711: BOOL EXPENTRY DrgVerifyTypeSet (PDRAGITEM pditem, PSZ pszType, USHORT cbMatch,
712: PSZ pszMatch);
713:
714: #endif /* INCL_WINSTDDRAG */
715:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.