handletable.h

来自「基于SD卡的软实现CSP程序」· C头文件 代码 · 共 43 行

H
43
字号
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
#ifndef _INCL_HANDLE_TABLE_H
#define _INCL_HANDLE_TABLE_H

#include <windows.h>

#pragma once

#define START (0)

class CHandleTable
{
public:
	CHandleTable();
	~CHandleTable();
	bool VerifyExistance(const void * const pHandle);
	bool AddToTable(void * const pHandle);
	void RemoveFromTable(const void * const pHandle);
	void* GetNext(int& iCookie);
	void Lock(){EnterCriticalSection(&m_csHandleTable);}
	void Unlock(){LeaveCriticalSection(&m_csHandleTable);}
private:
	int ComputeIndex(const void * const pHandle);
	bool GrowTable();

	void ** m_pHandleTable;
	int m_iHandleTableSize;
	int m_iHandleTableUsed;
	CRITICAL_SECTION m_csHandleTable;
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?