⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemiconlibrary.h

📁 c++系统开发实例精粹内附的80例源代码 环境:windows2000,c++6.0
💻 H
字号:
//////////////////////////////////////////////////////////////////////
// FileFury
// Copyright (c) 2000 Tenebril Incorporated
// All rights reserved.
//
// This source code is governed by the Tenebril open source
// license (http://www.tenebril.com/developers/opensource/license.html)
//
// For more information on this and other open source applications,
// visit the Tenebril OpenSource page:
//       http://www.tenebril.com/developers/opensource
//
//////////////////////////////////////////////////////////////////////

// SystemIconLibrary.h: interface for the CSystemIconLibrary class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SYSTEMICONLIBRARY_H__40EE7DC2_6053_11D3_B8DD_00600838CD5F__INCLUDED_)
#define AFX_SYSTEMICONLIBRARY_H__40EE7DC2_6053_11D3_B8DD_00600838CD5F__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#define SMALL_ICON                   0
#define LARGE_ICON                   1
#define OPEN_ICON                    2

#define SPECIALICON_FOLDER           0
#define SPECIALICON_DRIVE            1

typedef struct
{
	char *Next[256];    // Unicode problem here.
	UINT nIndex[3];
} TrieNode;

typedef struct
{
	TCHAR Ext[3];
	UINT nIndex[3];
} SerialTrieNode;

class CSystemIconLibrary  
{
public:
	int FindSpecialIcon(int nSpecial, int nType);
	int FromBuffer(char *cBuffer);
	char * ToBuffer(UINT &nSize);
	BOOL StopRefresh();
	BOOL UpdateIcon(LPCTSTR czFileName, UINT nID, int nType,
		CWnd *pStatusWnd = NULL);
	int FindIcon(LPCTSTR czFileName, int nType);
	BOOL Refresh(CFileSystem *pFS, CWnd *pStatusWnd = NULL);
	CSystemIconLibrary();
	virtual ~CSystemIconLibrary();

private:
	CMutex m_cRefMutex;
	BOOL m_bContinueRefresh;
	TrieNode *m_pTrieRoot;

protected:
	int UnknownIcon(int nType);
	BOOL UpdateSpecialIcons();
	BOOL UpdateSpecialIcon(int nSpecial, int nIcon, int nType);
	int m_nSpecialIcon[2][3];
	BOOL SerializeEntries(TrieNode *pEntry, SerialTrieNode **ppSNode,
		int &nAlloc, UINT &nSize, TCHAR tcSoFar[3]);
	BOOL SerializeEntries(TrieNode *pEntry);
	BOOL PostDeleteEntries(TrieNode *pEntry);
	BOOL RefreshPath(LPCTSTR czPath, CWnd *pStatusWnd = NULL);
};

#endif // !defined(AFX_SYSTEMICONLIBRARY_H__40EE7DC2_6053_11D3_B8DD_00600838CD5F__INCLUDED_)

⌨️ 快捷键说明

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