]> icculus.org git repositories - taylor/freespace2.git/blob - include/vasync.h
Initial revision
[taylor/freespace2.git] / include / vasync.h
1 /*==========================================================================;
2  *
3  *  Copyright (C) 1996-1997 Microsoft Corporation.  All Rights Reserved.
4  *
5  *  File:       async.h
6  *  Content:    AsyncData object include file
7  ***************************************************************************/
8 #ifndef __ASYNC_INCLUDED__
9 #define __ASYNC_INCLUDED__
10
11
12 #include <ole2.h>       // for DECLARE_INTERFACE and HRESULT
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif /* __cplusplus */
17
18 /*
19  * GUIDS used by DPAsyncData objects
20  */
21
22 // {47BCD7E0-2E89-11d0-A889-00A0C905433C}
23 DEFINE_GUID(IID_IDPAsyncData, 0x47bcd7e0, 0x2e89, 0x11d0, 0xa8, 0x89, 0x0, 0xa0, 0xc9, 0x5, 0x43, 0x3c);
24
25
26 /****************************************************************************
27  *
28  * IDPAsyncData Structures
29  *
30  * Various structures used to invoke DPAsyncData.
31  *
32  ****************************************************************************/
33
34 typedef struct IDPAsyncData     FAR *LPDPASYNCDATA;
35
36
37 /****************************************************************************
38  *
39  * IDPAsyncData Interface
40  *
41  ****************************************************************************/
42
43 #undef INTERFACE
44 #define INTERFACE IDPAsyncData
45 DECLARE_INTERFACE_( IDPAsyncData, IUnknown )
46 {
47     /*  IUnknown Methods        */
48     STDMETHOD(QueryInterface)       (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
49     STDMETHOD_(ULONG,AddRef)        (THIS) PURE;
50     STDMETHOD_(ULONG,Release)       (THIS) PURE;
51
52     /*  IDPAsyncData Methods    */
53     STDMETHOD(AddItem)              (THIS_ LPDWORD, LPVOID, DWORD) PURE;
54     STDMETHOD(Cancel)               (THIS) PURE;
55     STDMETHOD(GetFlags)             (THIS_ LPDWORD) PURE;
56     STDMETHOD(GetItem)              (THIS_ DWORD, LPVOID *) PURE;
57     STDMETHOD(GetItemCount)         (THIS_ LPDWORD) PURE;
58     STDMETHOD(GetStatus)            (THIS_ LPDWORD, LPDWORD, HRESULT *) PURE;
59     STDMETHOD(IsSnapshotCurrent)    (THIS) PURE;
60     STDMETHOD(RefreshSnapshot)      (THIS) PURE;
61     STDMETHOD(RemoveItem)           (THIS_ DWORD) PURE;
62     STDMETHOD(SetFlags)             (THIS_ DWORD) PURE;
63     STDMETHOD(SetItem)              (THIS_ DWORD, LPVOID, DWORD) PURE;
64     STDMETHOD(SetStatus)            (THIS_ DWORD) PURE;
65     STDMETHOD(SetStatusEvent)       (THIS_ DWORD, HANDLE) PURE;
66 };
67
68
69 /****************************************************************************
70  *
71  * IDPAsyncData interface macros
72  *
73  ****************************************************************************/
74
75 #if !defined(__cplusplus) || defined(CINTERFACE)
76
77 #define IDPAsyncData_QueryInterface(p,a,b)                  (p)->lpVtbl->QueryInterface(p,a,b)
78 #define IDPAsyncData_AddRef(p)                              (p)->lpVtbl->AddRef(p)
79 #define IDPAsyncData_Release(p)                             (p)->lpVtbl->Release(p)
80 #define IDPAsyncData_AddItem(p)                             (p)->lpVtbl->AddItem(p)
81 #define IDPAsyncData_Cancel(p)                              (p)->lpVtbl->Cancel(p)
82 #define IDPAsyncData_GetItem(p,a,b)                         (p)->lpVtbl->GetItem(p,a,b)
83 #define IDPAsyncData_GetItemCount(p,a)                      (p)->lpVtbl->GetItemCount(p,a)
84 #define IDPAsyncData_GetStatus(p,a,b,c)                     (p)->lpVtbl->GetStatus(p,a,b,c)
85 #define IDPAsyncData_IsSnapshotCurrent(p)                   (p)->lpVtbl->IsSnapshotCurrent(p)
86 #define IDPAsyncData_RefreshSnapshot(p)                     (p)->lpVtbl->RefreshSnapshot(p)
87 #define IDPAsyncData_RemoveItem(p)                          (p)->lpVtbl->RemoveItem(p)
88 #define IDPAsyncData_SetFlags(p)                            (p)->lpVtbl->SetFlags(p)
89 #define IDPAsyncData_SetItem(p)                             (p)->lpVtbl->SetItem(p)
90 #define IDPAsyncData_SetStatus(p)                           (p)->lpVtbl->SetStatus(p)
91 #define IDPAsyncData_SetStatusEvent(p,a,b)                  (p)->lpVtbl->SetStatusEvent(p,a,b)
92
93 #else /* C++ */
94
95 #define IDPAsyncData_QueryInterface(p,a,b)                  (p)->QueryInterface(a,b)
96 #define IDPAsyncData_AddRef(p)                              (p)->AddRef()
97 #define IDPAsyncData_Release(p)                             (p)->Release()
98 #define IDPAsyncData_AddItem(p)                             (p)->AddItem()
99 #define IDPAsyncData_Cancel(p)                              (p)->Cancel()
100 #define IDPAsyncData_GetItem(p,a,b)                         (p)->GetItem(a,b)
101 #define IDPAsyncData_GetItemCount(p,a)                      (p)->GetItemCount(a)
102 #define IDPAsyncData_GetStatus(p,a,b,c)                     (p)->GetStatus(a,b,c)
103 #define IDPAsyncData_IsSnapshotCurrent(p)                   (p)->IsSnapshotCurrent()
104 #define IDPAsyncData_RefreshSnapshot(p)                     (p)->RefreshSnapshot()
105 #define IDPAsyncData_RemoveItem(p)                          (p)->RemoveItem()
106 #define IDPAsyncData_SetFlags(p)                            (p)->SetFlags()
107 #define IDPAsyncData_SetItem(p)                             (p)->SetItem()
108 #define IDPAsyncData_SetStatus(p)                           (p)->SetStatus()
109 #define IDPAsyncData_SetStatusEvent(p,a,b)                  (p)->SetStatusEvent(a,b)
110
111 #endif
112
113
114 /****************************************************************************
115  *
116  * AsyncData Flags
117  *
118  ****************************************************************************/
119
120 /*
121  *      This flag is set if the ItemData is ANSI.  If it is not set, the ItemData
122  *      is either Unicode or doesn't contain any string information.
123  */
124 #define DPASYNCDATA_ANSI                        (0x00000001)
125
126
127 #ifdef __cplusplus
128 };
129 #endif /* __cplusplus */
130
131 #endif /* __ASYNC_INCLUDED__ */
132