mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
359 lines
11 KiB
359 lines
11 KiB
/***************************************************************************
|
|
*
|
|
* File Name: ./inc/pclist.h
|
|
*
|
|
* Copyright (C) 1993-1996 Hewlett-Packard Company.
|
|
* All rights reserved.
|
|
*
|
|
* 11311 Chinden Blvd.
|
|
* Boise, Idaho 83714
|
|
*
|
|
* This is a part of the HP JetAdmin Printer Utility
|
|
*
|
|
* This source code is only intended as a supplement for support and
|
|
* localization of HP JetAdmin by 3rd party Operating System vendors.
|
|
* Modification of source code cannot be made without the express written
|
|
* consent of Hewlett-Packard.
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
* Author: Name
|
|
*
|
|
*
|
|
* Modification history:
|
|
*
|
|
* date initials change description
|
|
*
|
|
* mm-dd-yy MJB
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
***************************************************************************/
|
|
|
|
/*
|
|
Copyright (c) 1992, 1993, 1994 by Premia Corporation. All rights reserved.
|
|
|
|
Filename...: pclist.h
|
|
|
|
Version....: 2.10
|
|
|
|
Language...: Microsoft C/C++
|
|
|
|
Environment: _WIN32 and Windows 3.1
|
|
|
|
Description: This header file describes the exported APIs supported by
|
|
the list control. For a description of error codes,
|
|
notification messages, structures, etc. reference the header
|
|
file PCCORE.H.
|
|
Notes......:
|
|
|
|
History....:
|
|
|
|
Author.....: Peter J. Kaufman
|
|
|
|
*/
|
|
|
|
#ifndef __PCLIST_H
|
|
#define __PCLIST_H
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/****************************************************************************/
|
|
/* LIST CONTROL EXPORTED APIs */
|
|
/****************************************************************************/
|
|
/*
|
|
PCL_AddListItems ( )
|
|
PCL_CreateList ( )
|
|
PCL_InsertListItems ( )
|
|
*/
|
|
|
|
|
|
/*---------------------------------------------------------------------------
|
|
int WINAPI _export PCL_AddListItems (HWND hwnd,
|
|
int nNodeDefCount,
|
|
LP_TREE_NODE_DEF lpTreeNodeDef);
|
|
Description:
|
|
|
|
This API allows the application to add one or more list items to the given
|
|
list.
|
|
|
|
Arguments:
|
|
|
|
HWND hwnd:
|
|
|
|
This argument indicates which list control will create the new
|
|
list items and append them to the end of the list. This is the window
|
|
handle that was returned to the application after calling
|
|
PCL_CreateList ( ). PCL_CreateList ( ) creates an empty list.
|
|
|
|
int nNodeDefCount:
|
|
|
|
nNodeDefCount contains the number of list items to be added. In other
|
|
words, nNodeDefCount is the number of TREE_NODE_DEF array elements in
|
|
the TREE_NODE_DEF array pointed to by lpTreeNodeDef.
|
|
|
|
LP_TREE_NODE_DEF lpTreeNodeDef:
|
|
|
|
lpTreeNodeDef is a pointer to an array of TREE_NODE_DEFs that describe
|
|
each of the list items to be added.
|
|
|
|
If the list already has list items, then the new list items are
|
|
appended to end of the list.
|
|
|
|
While adding list items to the list control, the list control could
|
|
receive either a memory allocation failure or realize that the total
|
|
number of list items in the list has exceeded the maximum number of
|
|
list items allowed. If either of these conditions occur then the
|
|
list items that were added to the list control prior to the
|
|
problem, are NOT removed from the list. The application will receive
|
|
error messages if there is a memory allocation problem or the maximum
|
|
number of list items is exceeded. The application can determine what
|
|
list items did not make it into the list by looking at the value
|
|
of the lpTreeNode member of each TREE_NODE_DEF array starting from the
|
|
beginning of the array. When a TREE_NODE_DEF's lpTreeNode member is
|
|
found that has a value of zero, then that TREE_NODE_DEF and all
|
|
subsequent TREE_NODE_DEFs in the TREE_NODE_DEF array were not used to
|
|
create new list items.
|
|
|
|
Comments:
|
|
|
|
The application will receive the pointer to the list control owned
|
|
SELECT_NOTIF structure as the result of a notification of an event.
|
|
From the SELECT_NOTIF structure, the TREE_NODE pointer to the list item
|
|
involved in the event is available. Below is a list of notifications
|
|
with the associated events:
|
|
|
|
Notification Event
|
|
|
|
WM_PCT_SELECT_NOTIF
|
|
|
|
- Single click left mouse button while over a list item.
|
|
- Pressing space bar while list node is selected.
|
|
- Select list item with up or down arrow.
|
|
- Select list item with page up or page down key.
|
|
- Select list item with home or end key.
|
|
- Select list item with Ctrl Up or Ctrl Down.
|
|
- Pressing the Space Bar while a node is selected
|
|
|
|
WM_PCT_SELECT_NOTIF_DBLCLK
|
|
|
|
- Double click left mouse button while over list item. Sends
|
|
WM_PCT_SELECT_NOTIF on first click.
|
|
- Hit carriage return while a list item is selected.
|
|
- '+' key.
|
|
|
|
WM_PCT_DODRAG
|
|
|
|
- Depress the left mouse button over a list item and while continuing to
|
|
hold down the left button, move the mouse a predetermined distance.
|
|
|
|
Calling PCC_GetItemNode ( ) will return the TREE_NODE pointer of the
|
|
list item specified by the given index.
|
|
|
|
Calling PCC_ConvertPointToSelectNotif ( ) will return a pointer to
|
|
the list control owned SELECT_NOTIF structure which in turn, the pointer
|
|
to the list item that lies under the coordinate supplied by the
|
|
application can be retrieved.
|
|
|
|
PCC_SetDeleteNodeCallBack ( ) allows the application to register a
|
|
callback with the given list control. The callback will be called
|
|
every time a list item is deleted from the list.
|
|
|
|
Return Codes:
|
|
|
|
PCT_NO_ERROR (0 if no error; otherwise less than zero)
|
|
PCT_ERR_MEMORY_ALLOC_FAILED
|
|
PCT_ERR_LEVEL_LIMIT_EXCEEDED
|
|
PCT_ERR_TOO_MANY_NODES
|
|
PCT_ERR_INVALID_PARENT_FOR_INSERTION
|
|
PCT_ERR_INVALID_INDEX
|
|
*/
|
|
|
|
|
|
int WINAPI _export PCL_AddListItems (HWND hwnd,
|
|
int nNodeDefCount,
|
|
LP_TREE_NODE_DEF lpTreeNodeDef);
|
|
|
|
|
|
|
|
/*---------------------------------------------------------------------------
|
|
HWND WINAPI _export PCL_CreateList ( HANDLE hInstance,
|
|
HWND hwndApp,
|
|
int x, int y,
|
|
int nWidth, int nHeight,
|
|
DWORD dwStyle,
|
|
DWORD dwExStyle,
|
|
int nID);
|
|
Description:
|
|
|
|
Creates an empty list. PCL_CreateList ( ) ORs the style bits specified
|
|
in dwStyle to the list control's required styles and calls the Windows
|
|
API, CreateWindowEx ( ). In effect, PCL_CreateList calls ( )
|
|
CreateWindowEx ( ) as:
|
|
|
|
hwndList = CreateWindowEx (
|
|
dwExStyle,
|
|
TREE_CLASS,
|
|
"",
|
|
dwStyle
|
|
| WS_CHILD
|
|
| WS_CLIPCHILDREN
|
|
| WS_CLIPSIBLINGS
|
|
| WS_VSCROLL
|
|
| WS_HSCROLL
|
|
| WS_TABSTOP
|
|
| WS_GROUP,
|
|
x,
|
|
y,
|
|
nWidth,
|
|
nHeight,
|
|
hwndApp,
|
|
(HMENU)nID,
|
|
hInstance,
|
|
NULL);
|
|
|
|
Once the list is created then list items can be added by calling the
|
|
exported APIs:
|
|
|
|
PCL_AddListItems ( )
|
|
PCL_InsertListItems ( )
|
|
|
|
Arguments:
|
|
|
|
HANDLE hInstance:
|
|
|
|
Instance associated with the creation of the list control window.
|
|
|
|
HWND hwndApp:
|
|
|
|
Window handle of the parent window that is creating the list control.
|
|
|
|
int x:
|
|
|
|
X location of the upper left corner of the list control in client area
|
|
coordinates of the parent window.
|
|
|
|
int y:
|
|
|
|
Y location of the upper left corner of the list control in client
|
|
area coordinates of the parent window.
|
|
|
|
int nWidth:
|
|
|
|
Width of the list control in device (pixel) units.
|
|
|
|
int nHeight:
|
|
|
|
Height of the list control in device (pixel) units.
|
|
|
|
DWORD dwStyle:
|
|
|
|
Application requested CreateWindowEx ( ) styles.
|
|
|
|
DWORD dwExStyle:
|
|
|
|
Application requested CreateWindowEx ( ) extended styles.
|
|
|
|
int nID:
|
|
|
|
Identification value. To retrieve this ID call
|
|
GetWindowWord (hwndList, GWW_ID);
|
|
|
|
Comments:
|
|
|
|
The successful return value from this call, which is a window handle,
|
|
will be used as the list control identifier for applying the
|
|
list control exported APIs. Most of the list control APIs require
|
|
the list control window handle.
|
|
|
|
Return Codes:
|
|
|
|
If successful, PCL_CreateList ( ) will return the window handle of the
|
|
newly created list control. If failure, then a NULL will be returned.
|
|
*/
|
|
|
|
HWND WINAPI _export PCL_CreateList (HANDLE hInstance,
|
|
HWND hwndApp,
|
|
int x, int y,
|
|
int nWidth, int nHeight,
|
|
DWORD dwStyle,
|
|
DWORD dwExStyle,
|
|
int nID);
|
|
|
|
|
|
/*---------------------------------------------------------------------------
|
|
int WINAPI _export PCL_InsertListItems ( HWND hwndList,
|
|
int nIndex,
|
|
int nNodeDefCount,
|
|
LP_TREE_NODE_DEF lpTreeNodeDef);
|
|
Description:
|
|
|
|
This API allows the application to insert one or more list items into the
|
|
given list.
|
|
|
|
Arguments:
|
|
|
|
HWND hwndList:
|
|
|
|
This argument specifies the list control that will create the new
|
|
list items. This is the window handle that was returned to
|
|
the application by calling PCL_CreateList ( ). PCL_CreateList ( )
|
|
creates an empty list.
|
|
|
|
int nIndex:
|
|
|
|
Specifies the zero based index where the list items will be inserted
|
|
into the list. If nIndex less than 0 then the list of items will be
|
|
appended to the end of the list.
|
|
|
|
int nNodeDefCount:
|
|
|
|
nNodeDefCount contains the number of list items to be inserted. In
|
|
other words, nNodeDefCount is the number of TREE_NODE_DEF elements in
|
|
the TREE_NODE_DEF array pointed to by lpTreeNodeDef.
|
|
|
|
LP_TREE_NODE_DEF lpTreeNodeDef:
|
|
|
|
This is a pointer to a list of TREE_NODE_DEFs that describe each of
|
|
the list items to be inserted.
|
|
|
|
Comments:
|
|
|
|
When PCL_InsertListItems ( ) is called, the list control allocates
|
|
room for nNodeDefCount worth of list items in the list starting at the
|
|
index specified by the argument nIndex. The list control then
|
|
creates nNodeDefCount worth of new list items. It then serially
|
|
traverses the lpTreeNodeDef array, initializing the newly created list
|
|
items.
|
|
|
|
Return Codes:
|
|
|
|
PCT_NO_ERROR (0 if no error; otherwise less than zero)
|
|
PCT_ERR_MEMORY_ALLOC_FAILED
|
|
PCT_ERR_LEVEL_LIMIT_EXCEEDED
|
|
PCT_ERR_TOO_MANY_NODES
|
|
PCT_ERR_INVALID_PARENT_FOR_INSERTION
|
|
PCT_ERR_INVALID_INDEX
|
|
*/
|
|
|
|
int WINAPI _export PCL_InsertListItems ( HWND hwndList,
|
|
int nIndex,
|
|
int nNodeDefCount,
|
|
LP_TREE_NODE_DEF lpTreeNodeDef);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
|
|
#endif
|
|
/*----------------------------------EOF-------------------------------------*/
|