Leaked source code of windows server 2003
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.
 
 
 
 
 
 

124 lines
4.2 KiB

/////////////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1998 Active Voice Corporation. All Rights Reserved.
//
// Active Agent(r) and Unified Communications(tm) are trademarks of Active Voice Corporation.
//
// Other brand and product names used herein are trademarks of their respective owners.
//
// The entire program and user interface including the structure, sequence, selection,
// and arrangement of the dialog, the exclusively "yes" and "no" choices represented
// by "1" and "2," and each dialog message are protected by copyrights registered in
// the United States and by international treaties.
//
// Protected by one or more of the following United States patents: 5,070,526, 5,488,650,
// 5,434,906, 5,581,604, 5,533,102, 5,568,540, 5,625,676, 5,651,054.
//
// Active Voice Corporation
// Seattle, Washington
// USA
//
/////////////////////////////////////////////////////////////////////////////////////////
////
// garb.h - interface for garbage bag functions in garb.c
////
#ifndef __GARB_H__
#define __GARB_H__
#include "winlocal.h"
#define GARB_VERSION 0x00000100
// garbage bag handle
//
DECLARE_HANDLE32(HGARB);
// flags which identify characteristics of a garbage bag element
//
#define GARBELEM_TEMPFILENAME 0x00000001
#define GARBELEM_STRDUP 0x00000002
#define GARBELEM_GLOBALPTR 0x00000004
#define GARBELEM_LOCALPTR 0x00000008
#define GARBELEM_CURSOR 0x00000010
#define GARBELEM_ICON 0x00000020
#define GARBELEM_MENU 0x00000040
#define GARBELEM_WINDOW 0x00000080
#define GARBELEM_ATOM 0x00000100
#define GARBELEM_DC 0x00000200
#define GARBELEM_METAFILE 0x00000400
#define GARBELEM_PEN 0x00001000
#define GARBELEM_BRUSH 0x00002000
#define GARBELEM_FONT 0x00004000
#define GARBELEM_BITMAP 0x00008000
#define GARBELEM_RGN 0x00010000
#define GARBELEM_PALETTE 0x00020000
#define GARBELEM_HFIL 0x00040000
#define GARBELEM_HFILE 0x00080000
#ifdef _WIN32
#define GARBELEM_HEAPPTR 0x00100000
#endif
#ifdef __cplusplus
extern "C" {
#endif
// GarbInit - initialize garbage bag
// <dwVersion> (i) must be GARB_VERSION
// <hInst> (i) instance handle of calling module
// return handle (NULL if error)
//
HGARB DLLEXPORT WINAPI GarbInit(DWORD dwVersion, HINSTANCE hInst);
// GarbTerm - dispose of each element in garbage bag, then destroy it
// <hGarb> (i) handle returned from GarbInit
// return 0 if success
//
// NOTE: elements are disposed of in the order they were placed
// in the garbage bag; therefore, for instance, if a temporary
// file is to be first closed and then deleted, call GarbAddElement()
// first with the file handle (GARBELEM_HFILE) and then with the
// file name (GARBELEM_TEMPFILENAME).
//
int DLLEXPORT WINAPI GarbTerm(HGARB hGarb);
// GarbAddElement - add an element to the garbage bag
// <hGarb> (i) handle returned from GarbInit
// <elem> (i) garbage elem
// <dwFlags> (i) element flags (determines disposal method)
// GARBELEM_TEMPFILENAME FileRemove(elem)
// GARBELEM_STRDUP StrDupFree(elem)
// GARBELEM_GLOBALPTR GlobalFreePtr(elem)
// GARBELEM_LOCALPTR LocalFreePtr(elem)
#ifdef _WIN32
// GARBELEM_HEAPPTR HeapFreePtr(GetProcessHeap(), 0, elem)
#endif
// GARBELEM_CURSOR DestroyCursor(elem)
// GARBELEM_ICON DestroyIcon(elem)
// GARBELEM_MENU DestroyMenu(elem)
// GARBELEM_WINDOW DestroyWindow(elem)
// GARBELEM_DC DeleteDC(elem)
// GARBELEM_METAFILE DeleteMetafile(elem)
// GARBELEM_PEN DeleteObject(elem)
// GARBELEM_BRUSH DeleteObject(elem)
// GARBELEM_FONT DeleteObject(elem)
// GARBELEM_BITMAP DeleteObject(elem)
// GARBELEM_RGN DeleteObject(elem)
// GARBELEM_PALETTE DeleteObject(elem)
// GARBELEM_HFIL FileClose(elem)
// GARBELEM_HFILE _lclose(elem)
// return 0 if success
//
// NOTE: it is possible to combine flags, such as
// (GARBELEM_TEMPFILENAME | GARBELEM_STRDUP)
// In this case the FileRemove() will be called before StrDupFree()
// Most flag combinations, however, make no sense.
//
int DLLEXPORT WINAPI GarbAddElement(HGARB hGarb, LPVOID elem, DWORD dwFlags);
#ifdef __cplusplus
}
#endif
#endif // __GARB_H__