1// ======================================================================
2//	File:		KCAPI_Item.h
3//
4//	Operation classes for APIs to manage KC items
5//		- KCNewItem
6//		- KCSetAttribute
7//		- KCGetAttribute
8//		- KCSetData
9//		- KCGetData
10//		- KCGetDataNoUI
11//		- KCAddItem
12//		- KCAddItemNoUI
13//		- KCDeleteItem
14//		- KCDeleteItemNoUI
15//		- KCUpdateItem
16//		- KCReleaseItem
17//		- KCCopyItem
18//
19// Operation classes for APIs for searching and enumertating KC items
20//		- KCFindFirstItem
21//		- KCFindNextItem
22//		- KCReleaseSearch
23//
24//	Copyright:	Copyright (c) 2000,2003 Apple Computer, Inc. All Rights Reserved.
25//
26//	Change History (most recent first):
27//
28//		 <1>	3/1/00	em		Created.
29// ======================================================================
30
31#ifndef __KCAPI_ITEM__
32#define __KCAPI_ITEM__
33
34#include "KCOperation.h"
35#include "KCOperationID.h"
36
37
38// ���������������������������������������������������������������������������
39// 	� COp_KCNewItem
40// ���������������������������������������������������������������������������
41class COp_KCNewItem : public KCItemOperation
42{
43public:
44OPERATION_ID(KCNewItem)
45
46								COp_KCNewItem();
47	virtual	OSStatus			Operate();
48
49protected:
50	CParamKCItemClass			mItemClass;
51	CParamOSType				mItemCreator;
52	CParamkcBlob				mData;
53
54};
55
56// ���������������������������������������������������������������������������
57// 	� COp_KCSetAttribute
58// ���������������������������������������������������������������������������
59class COp_KCSetAttribute : public KCItemOperation
60{
61public:
62OPERATION_ID(KCSetAttribute)
63
64								COp_KCSetAttribute();
65	virtual	OSStatus			Operate();
66
67protected:
68	CParamKCAttribute			mAttribute;
69};
70
71
72// ���������������������������������������������������������������������������
73// 	� COp_KCGetAttribute
74// ���������������������������������������������������������������������������
75class COp_KCGetAttribute : public KCItemOperation
76{
77public:
78OPERATION_ID(KCGetAttribute)
79
80								COp_KCGetAttribute();
81	virtual	OSStatus			Operate();
82
83protected:
84	CParamKCAttribute			mAttribute;
85	CParamUInt32				mActualLength;
86};
87
88
89// ���������������������������������������������������������������������������
90// 	� COp_KCSetData
91// ���������������������������������������������������������������������������
92class COp_KCSetData : public KCItemOperation
93{
94public:
95OPERATION_ID(KCSetData)
96
97								COp_KCSetData();
98	virtual	OSStatus			Operate();
99
100protected:
101	CParamkcBlob				mData;
102};
103
104// ���������������������������������������������������������������������������
105// 	� COp_KCGetData
106// ���������������������������������������������������������������������������
107class COp_KCGetData : public KCItemOperation
108{
109public:
110OPERATION_ID(KCGetData)
111
112								COp_KCGetData();
113	virtual	OSStatus			Operate();
114
115protected:
116	CParamkcBlob				mData;
117	CParamUInt32				mActualLength;
118};
119
120// ���������������������������������������������������������������������������
121// 	� COp_KCGetDataNoUI
122// ���������������������������������������������������������������������������
123/*
124class COp_KCGetDataNoUI : public KCItemOperation
125{
126public:
127OPERATION_ID(KCGetDataNoUI)
128
129								COp_KCGetDataNoUI();
130	virtual	OSStatus			Operate();
131
132protected:
133	CParamkcBlob				mData;
134	CParamUInt32				mActualLength;
135
136*/
137/*    static OSStatus				Callback1(
138									KCItemRef		*outItemRef,
139									UInt32			*outMaxLength,
140									void 			**outData,
141									UInt32 			**outActualLength,
142									void 			*inContext);
143
144    static OSStatus				Callback2(
145									void 			*inContext);
146*/
147//};
148
149// ���������������������������������������������������������������������������
150// 	� COp_KCAddItem
151// ���������������������������������������������������������������������������
152class COp_KCAddItem : public KCItemOperation
153{
154public:
155OPERATION_ID(KCAddItem)
156
157								COp_KCAddItem();
158	virtual	OSStatus			Operate();
159
160protected:
161};
162
163// ���������������������������������������������������������������������������
164// 	� COp_KCAddItemNoUI
165// ���������������������������������������������������������������������������
166class COp_KCAddItemNoUI : public KCItemOperation
167{
168public:
169OPERATION_ID(KCAddItemNoUI)
170
171								COp_KCAddItemNoUI();
172	virtual	OSStatus			Operate();
173
174protected:
175    static OSStatus				Callback(
176                                    KCItemRef		*outItem,
177                                    void			*inContext);
178};
179
180// ���������������������������������������������������������������������������
181// 	� COp_KCDeleteItem
182// ���������������������������������������������������������������������������
183class COp_KCDeleteItem : public KCItemOperation
184{
185public:
186OPERATION_ID(KCDeleteItem)
187
188								COp_KCDeleteItem();
189	virtual	OSStatus			Operate();
190
191protected:
192};
193
194// ���������������������������������������������������������������������������
195// 	� COp_KCDeleteItemNoUI
196// ���������������������������������������������������������������������������
197class COp_KCDeleteItemNoUI : public KCItemOperation
198{
199public:
200OPERATION_ID(KCDeleteItemNoUI)
201
202								COp_KCDeleteItemNoUI();
203	virtual	OSStatus			Operate();
204
205protected:
206	static OSStatus				CallBack(
207									KCItemRef	*outItem,
208									void		*inContext);
209};
210
211// ���������������������������������������������������������������������������
212// 	� COp_KCUpdateItem
213// ���������������������������������������������������������������������������
214class COp_KCUpdateItem : public KCItemOperation
215{
216public:
217OPERATION_ID(KCUpdateItem)
218
219								COp_KCUpdateItem();
220	virtual	OSStatus			Operate();
221
222protected:
223};
224
225// ���������������������������������������������������������������������������
226// 	� COp_KCReleaseItem
227// ���������������������������������������������������������������������������
228class COp_KCReleaseItem : public KCItemOperation
229{
230public:
231OPERATION_ID(KCReleaseItem)
232
233								COp_KCReleaseItem();
234	virtual	OSStatus			Operate();
235
236protected:
237};
238
239// ���������������������������������������������������������������������������
240// 	� COp_KCCopyItem
241// ���������������������������������������������������������������������������
242class COp_KCCopyItem : public KCItemOperation
243{
244public:
245OPERATION_ID(KCCopyItem)
246
247								COp_KCCopyItem();
248	virtual	OSStatus			Operate();
249
250protected:
251};
252
253// ���������������������������������������������������������������������������
254// 	� COp_KCFindFirstItem
255// ���������������������������������������������������������������������������
256class COp_KCFindFirstItem : public KCSearchOperation
257{
258public:
259OPERATION_ID(KCFindFirstItem)
260
261								COp_KCFindFirstItem();
262	virtual	OSStatus			Operate();
263
264protected:
265	CParamKCAttributeList		mAttrList;
266};
267
268// ���������������������������������������������������������������������������
269// 	� COp_KCFindNextItem
270// ���������������������������������������������������������������������������
271class COp_KCFindNextItem : public KCSearchOperation
272{
273public:
274OPERATION_ID(KCFindNextItem)
275
276								COp_KCFindNextItem();
277	virtual	OSStatus			Operate();
278
279protected:
280};
281
282// ���������������������������������������������������������������������������
283// 	� COp_KCReleaseSearch
284// ���������������������������������������������������������������������������
285class COp_KCReleaseSearch : public KCSearchOperation
286{
287public:
288OPERATION_ID(KCReleaseSearch)
289
290								COp_KCReleaseSearch();
291	virtual	OSStatus			Operate();
292
293protected:
294};
295
296#endif	// __KCAPI_ITEM__
297
298
299