convert line ends
[canaan.git] / prj / cam / src / object / donorq.cpp
blob01180f68c0275fd27a2f1699fd124a4b7675c399
1 /*
2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
4 */
6 // $Header: r:/t2repos/thief2/src/object/donorq.cpp,v 1.4 1997/10/14 11:20:13 TOML Exp $
7 #include <donorq_.h>
8 #include <lnkquery.h>
9 #include <lnkquer_.h>
10 #include <linkbase.h>
11 #include <link.h>
13 // Must be last header
14 #include <dbmem.h>
16 #define BROKEN_UNAGG2
17 #ifndef BROKEN_UNAGG2
19 IMPLEMENT_UNAGGREGATABLE2_SELF_DELETE(cBaseDonorQuery,IDonorQuery,IObjectQuery);
21 #else
23 __IMPLEMENT_UNAGGREGATABLE_BASE(cBaseDonorQuery, (IsEqualIID(id, IID_IDonorQuery) || IsEqualOrIUnknownGUID(id, IID_IObjectQuery)));
25 inline void cBaseDonorQuery::OnFinalRelease()
27 delete this;
30 #endif
32 ////////////////////////////////////////////////////////////
34 // cPriLinkDonorQuery
36 ////////////////////////////////////////////////////////////
38 cPriLinkDonorQuery::cPriLinkDonorQuery(ILinkQuery* links)
39 :Links(new cDelegatedLinkQuery(this,links))
43 cPriLinkDonorQuery::~cPriLinkDonorQuery()
45 delete Links;
48 STDMETHODIMP cPriLinkDonorQuery::QueryInterface(REFIID id, void** ppI)
50 if (id == IID_ILinkQuery)
52 *ppI = Links;
53 Links->AddRef();
54 return S_OK;
56 return cBaseDonorQuery::QueryInterface(id,ppI);
59 STDMETHODIMP_(BOOL) cPriLinkDonorQuery::Done()
61 return Links->Done();
64 STDMETHODIMP cPriLinkDonorQuery::Next()
66 return Links->Next();
69 STDMETHODIMP_(ObjID) cPriLinkDonorQuery::Object()
71 sLink link = {OBJ_NULL, OBJ_NULL};
72 Links->Link(&link);
73 return link.dest;
76 STDMETHODIMP_(tDonorPriority) cPriLinkDonorQuery::Priority()
78 return *(tDonorPriority*)Links->Data();