home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
VSCPPv8.zip
/
VACPP
/
IBMCPP
/
samples
/
TOOLKIT
/
PM
/
DRAGDROP
/
DRAGDROP.H
< prev
next >
Wrap
Text File
|
1994-11-17
|
9KB
|
259 lines
/**************************************************************************
* File name : dragdrop.h
*
* Description: The DRAGDROP include file defines symbolic constants
* used in the following files:
* DRAGDROP.C DRAGHEAP.C DRAGDRAG.C DRAGHELP.C
* Local procedure declarations appear in this file to
* ensure they have been declared before being used.
*
* Concepts : [none]
*
* API's : [none]
*
* Copyright (C) 1991 IBM Corporation
*
* DISCLAIMER OF WARRANTIES. The following [enclosed] code is
* sample code created by IBM Corporation. This sample code is not
* part of any standard or IBM product and is provided to you solely
* for the purpose of assisting you in the development of your
* applications. The code is provided "AS IS", without
* warranty of any kind. IBM shall not be liable for any damages
* arising out of your use of the sample code, even if they have been
* advised of the possibility of such damages. *
*************************************************************************/
#define STACKSIZE 11228
#define MESSAGELEN 50 /* maximum length for messages */
#define ID_RESOURCE 1
#define ID_BUSY 260
#define IDD_OPEN 300
#define IDD_STATICTEXT 301
#define IDD_EDIT 302
#define IDM_MENU 10
#define IDM_FILE 20
#define IDM_FILEOPEN 21
#define IDM_EXIT 22
#define IDM_WINDOW 30
#define IDM_WINDOWREFRESH 31
#define IDM_WINDOWSELECTALL 32
#define IDM_WINDOWDESELECTALL 33
#define IDM_RENDER 40
#define IDM_TARGET 41
#define IDM_NOTARGET 42
#define IDM_FILENATIVE 43
#define IDM_DDENATIVE 44
#define IDM_DRAGFILES 50
#define IDM_DROPFILES 51
#define IDM_SRCRENDER 52
#define IDM_HELP 60
#define IDM_HELPINDEX 61
#define IDM_HELPGENERAL 62
#define IDM_HELPUSINGHELP 63
#define IDM_HELPPRODUCTINFO 64
#define IDS_APPNAME 16
#define IDS_CLIENTCLASS 17
#define IDS_HELPLIBRARYNAME 18
#define IDD_PRODUCTINFO 1001
#define IDC_OK 1
#define IDC_CANCEL 2
#define IDC_HELP 3
#define IDC_ICON 4
#define IDC_BITMAP 5
#define IDR_BITMAP 6
#define INITIAL_SEGSIZE 4096
#define INCREMENT_SEGSIZE 1024
#define MAX_RETRIES 10
#define LIST_ID 256
#define MSGBOXID 1002
#define IDMSG_INITFAILED 1
#define IDMSG_MAINWINCREATEFAILED 2
#define IDMSG_CANTCREATELIST 3
#define IDMSG_NOTSUBDIRECTORY 4
#define IDMSG_MUSTBESELECTED 5
#define IDMSG_BADDIRECTORY 6
#define IDMSG_ATLEASTONE 7
#define IDMSG_CANTLOCATE 8
#define IDMSG_CANTCREATESTACK 9
#define IDMSG_HEAPERROR 10
#define IDMSG_HEAPALLOCERROR 11
#define IDMSG_ALLOCDRAGINFO 12
#define IDMSG_CANNOTLOADSTRING 13
#define IDMSG_HELPNOTAVAILABLE 14
#define IDMSG_HELPCREATEERROR 15
#define IDMSG_HELPASSOCIATEERROR 16
#define IDMSG_HELPDISPLAYERROR 17
#define IDMSG_CANTSTARTDIALOG 18
#define IDMSG_DRAGERROR 19
#define IDMSG_DRAGACCESSERROR 20
#define IDMSG_DRAGFREEERROR 21
#define IDMSG_DRAGSETITEMERROR 22
#define IDMSG_DRAGQUERYSTRINGERROR 23
#define IDMSG_DRAGQUERYITEMERROR 24
#define IDMSG_FINDAPPDRAGINFO 25
#define IDMSG_MEMFREEERROR 26
#define IDMSG_TARGETRENDER 27
/* return values for initialization routines */
#define RETURN_SUCCESS 0 /* successful return in DosExit */
#define RETURN_ERROR 1 /* error return in DosExit */
#define BEEP_WARN_FREQ 60 /* frequency of warning beep */
#define BEEP_WARN_DUR 100 /* duration of warning beep */
/*
* User defined commands
*/
#define WM_REFRESH WM_USER+1
#define WM_CREATELIST WM_USER+2
#define LN_INITDRAG WM_USER+3
#define LN_DRAGOVER WM_USER+4
#define LN_DRAGLEAVE WM_USER+5
#define LN_DROPHELP WM_USER+6
#define LN_DROP WM_USER+7
#define WM_TARGETCOMPLETE WM_USER+8
/*
* type definitions
*/
typedef struct _PUBFILEFINDBUF
{
struct _PUBFILEFINDBUF FAR *pNext;
FDATE fdateLastWrite;
FTIME ftimeLastWrite;
ULONG cbFileAlloc;
ULONG attrFile;
CHAR achName[64];
} PUBFILEFINDBUF;
typedef PUBFILEFINDBUF FAR *PPUBFILEFINDBUF;
typedef struct _DRAGTARGETTHREAD
{
PDRAGINFO pDraginfo;
HWND hwndClient;
USHORT usOperation;
CHAR szTargetDir [CCHMAXPATH];
} DRAGTARGETTHREAD;
typedef DRAGTARGETTHREAD FAR *PDRAGTARGETTHREAD;
typedef struct _APPDRAGINFO
{
struct _APPDRAGINFO FAR *pNextAppDraginfo;
PDRAGINFO pDraginfo;
HWND hwndClient;
USHORT usItemsDragged;
} APPDRAGINFO;
typedef APPDRAGINFO FAR *PAPPDRAGINFO;
typedef struct _APPDRAGITEM
{
PDRAGINFO pDraginfo;
PPUBFILEFINDBUF pFile;
} APPDRAGITEM;
typedef APPDRAGITEM FAR *PAPPDRAGITEM;
/*
* Function models - DRAGDROP.C
*/
MRESULT EXPENTRY ClientWndProc (HWND, ULONG, MPARAM, MPARAM);
MRESULT EXPENTRY OpenDlgProc (HWND, ULONG, MPARAM, MPARAM);
MRESULT EXPENTRY ListSubclassProc (HWND, ULONG, MPARAM, MPARAM);
BOOL ChangeDir (PSZ);
BOOL PopulateList (HWND, PSZ);
VOID Message (PSZ pszMsg);
SHORT MessageBox(HWND hwndOwner, SHORT idMsg, SHORT fsStyle, BOOL fBeep);
/*
* Function models - DRAGHEAP.C
*/
BOOL FindFilePurge (VOID);
PPUBFILEFINDBUF FindFileFirst (PSZ, ULONG);
PPUBFILEFINDBUF FindFileNext (PPUBFILEFINDBUF);
PPUBFILEFINDBUF FindFileName (PSZ);
PAPPDRAGINFO AllocAppDraginfo (HWND, PDRAGINFO);
PAPPDRAGITEM AllocAppDragitem (PDRAGINFO, PPUBFILEFINDBUF);
BOOL FreeAppDraginfo (PAPPDRAGINFO);
BOOL FreeAppDragitem (PAPPDRAGITEM);
PDRAGINFO FindDraginfo (PAPPDRAGITEM);
PAPPDRAGINFO FindAppDraginfo (PDRAGINFO);
PPUBFILEFINDBUF FindDragitemFile (PAPPDRAGITEM);
/*
* Function models - DRAGDRAG.C
*/
BOOL InitDrag (HAB, HWND, HWND, HPOINTER, HPOINTER, HPOINTER, PSZ);
MRESULT Drop (HAB, HWND, PDRAGINFO, PSZ);
MRESULT DragLeave (VOID);
MRESULT DragOver (HAB, PDRAGINFO, PSZ);
MRESULT DropHelp (HWND, PDRAGINFO);
MRESULT EndConversation (HAB, HWND, MPARAM, MPARAM);
MRESULT EndTarget (HWND, PDRAGTARGETTHREAD);
MRESULT CheckClose (HWND);
BOOL CheckBusy (VOID);
VOID PreventClose (HWND hwndClient, ULONG cDrag);
VOID RemoveFinalBackslash (PSZ);
VOID FAR TargetThread (VOID);
/*
* Function models - DRAGHELP.C
*/
VOID InitHelp(HAB hab, HWND hwnd);
VOID HelpIndex(HWND hwnd);
VOID HelpGeneral(HWND hwnd);
VOID HelpUsingHelp(HWND hwnd);
VOID HelpProductInfo(HWND hwnd);
VOID DestroyHelpInstance(VOID);
VOID SetSysMenu(HWND hwnd);
/*
* Helper Macros
*/
#define WinDeleteLboxAll(hwndLbox) \
((BOOL)WinSendMsg((hwndLbox), LM_DELETEALL, NULL, NULL))
#define WinQueryLboxSelItemFirst(hwndLbox) \
((SHORT)WinSendMsg((hwndLbox), LM_QUERYSELECTION, \
MPFROMSHORT (LIT_FIRST), NULL))
#define WinQueryLboxSelItemNext(hwndLbox, index) \
((SHORT)WinSendMsg((hwndLbox), LM_QUERYSELECTION, \
MPFROMSHORT (index), NULL))
#define WinScrollLboxItemToTop(hwndLbox, index) \
((BOOL)WinSendMsg((hwndLbox), LM_SETTOPINDEX, MPFROMSHORT (index), \
NULL))
#define WinFindLboxItem(hwndLbox, psz) \
((USHORT)WinSendMsg((hwndLbox), LM_SEARCHSTRING, \
MPFROM2SHORT (0, LIT_FIRST), (MPARAM) psz))
#define WinSelectLboxItem(hwndLbox, index, fSelect) \
((USHORT)WinSendMsg((hwndLbox), LM_SELECTITEM, \
(MPARAM) (index), (MPARAM) (fSelect)))
#define ParentOf(hwnd) WinQueryWindow ((hwnd), QW_PARENT)
#define OwnerOf(hwnd) WinQueryWindow ((hwnd), QW_OWNER)
#define SendOwner(hwnd,msg,mp2,id) \
(WinSendMsg (OwnerOf (hwnd), WM_CONTROL, \
MPFROM2SHORT (id,msg), mp2))
/*************************** End of dragdrop.h *************************/