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.
 
 
 
 
 
 

50 lines
1.7 KiB

//
// MODULE: ShortList.h
//
// PURPOSE: A list of all of the handles that are currently open.
// There is an instance of a COM interface for every open handle.
//
// PROJECT: Local Troubleshooter Launcher for the Device Manager
//
// COMPANY: Saltmine Creative, Inc. (206)-633-4743 [email protected]
//
// AUTHOR: Richard Meadows
//
// ORIGINAL DATE: 2-26-98
//
//
// Version Date By Comments
//--------------------------------------------------------------------
// V0.1 - RM Original
///////////////////////
// Smart Struct
class CShortListItem
{
public:
CShortListItem() { m_hSelf = NULL; m_pInterface = NULL;
m_pNext = NULL;
return;};
HANDLE m_hSelf; // The items in the queue are indexed by the handle.
IUnknown *m_pInterface; // For now the ITShootATL interface pointers are the only thing TSLaunch needs to keep.
CShortListItem *m_pNext; // Points to the next item in the list.
};
class CShortList
{
public:
CShortList();
~CShortList(); // Frees the memory used by all of the items in the list and releases the interfaces.
bool Add(HANDLE hItem, IUnknown *pInterface); // Returns false only if there is no memory left.
// and the new function did not throw an exception.
bool Remove(HANDLE hItem); // Removes the item from the queue frees the items memory and releases the interface.
void RemoveAll(); // Removes all of the items from the queue. Releases all of the interfaces. Deletes all of the items.
IUnknown *LookUp(HANDLE hItem); // Returns a pointer to the interface or NULL if hItem is not in the list.
protected:
CShortListItem *m_pFirst;
CShortListItem *m_pLast;
};