亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shellwrappers.h

?? 一個完整的顯示Windows目錄的程序
?? H
字號:
// SmartInterfacePtr.h: interface for the TInterfacePtr class.
//
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2000-2001 by Paolo Messina
// (http://www.geocities.com/ppescher - ppescher@yahoo.com)
//
// The contents of this file are subject to the Artistic License (the "License").
// You may not use this file except in compliance with the License. 
// You may obtain a copy of the License at:
// http://www.opensource.org/licenses/artistic-license.html
//
// If you find this code useful, credits would be nice!
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_SHELLWRAPPERS_H__B0E1BBE7_A5D8_4A80_9A36_ED5553FE74F6__INCLUDED_)
#define AFX_SHELLWRAPPERS_H__B0E1BBE7_A5D8_4A80_9A36_ED5553FE74F6__INCLUDED_

#include <shlobj.h>
#include "SmartInterfacePtr.h"

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

class SMallocPtr : public TStaticInterfacePtr<IMalloc>
{
public:
	SMallocPtr()
	{
		if (m_pIface == NULL)
			SHGetMalloc(&m_pIface);
		else
			m_pIface->AddRef();
	}
};

class SDesktopFolderPtr : public TStaticInterfacePtr<IShellFolder>
{
public:
	SDesktopFolderPtr()
	{
		if (m_pIface == NULL)
			SHGetDesktopFolder(&m_pIface);
		else
			m_pIface->AddRef();
	}
};

class SShellFolderPtr : public TInterfacePtr<IShellFolder>
{
public:
	SShellFolderPtr() {}

	SShellFolderPtr(IShellFolder* pFolder) { Copy(pFolder); }
	SShellFolderPtr(IShellFolder* pParentFolder, LPCITEMIDLIST pidlRel)
	{
		if (pidlRel != NULL && pidlRel->mkid.cb == 0)
		{
			// it's a root element, copy the parent folder
			Copy(pParentFolder);
		}
		else
		{
			pParentFolder->BindToObject(pidlRel,
				NULL, IID_IShellFolder, (LPVOID*)&m_pIface);
		}
	}
	
	SShellFolderPtr(LPCITEMIDLIST pidlAbs)
	{
		SDesktopFolderPtr pDesktopFolder;
		if (pidlAbs != NULL && pidlAbs->mkid.cb == 0)
		{
			// it's a root element, copy the parent folder
			Copy(pDesktopFolder);
		}
		else
		{
			pDesktopFolder->BindToObject(pidlAbs,
				NULL, IID_IShellFolder, (LPVOID*)&m_pIface);
		}
	}
};

class SEnumIDListPtr : public TInterfacePtr<IEnumIDList>
{
public:
	SEnumIDListPtr(IShellFolder* pParentFolder, UINT nFlags, HWND hOwner = NULL)
	{
		pParentFolder->EnumObjects(hOwner, nFlags, &m_pIface);
	}
};

class SContextMenuPtr : public TInterfacePtr<IContextMenu>
{
public:
	SContextMenuPtr() {}

	SContextMenuPtr(IShellFolder* pParentFolder, LPCITEMIDLIST pidlRel, HWND hOwner = NULL)
	{
		pParentFolder->GetUIObjectOf(hOwner, 1, &pidlRel,
			IID_IContextMenu, NULL, (LPVOID*)&m_pIface);
	}
};

class SContextMenu2Ptr : public TInterfacePtr<IContextMenu2>
{
public:
	SContextMenu2Ptr(IContextMenu* pIface)
	{
		if (pIface != NULL)
			pIface->QueryInterface(IID_IContextMenu2, (LPVOID*)&m_pIface);
	}
};

// templates

template <class TYPE>
class TSharedObject
{
public:
	~TSharedObject()
	{ Destroy(); }

protected:
	TYPE* m_pObj;

	TSharedObject()
	{ m_pObj = NULL; }

	TSharedObject(const TSharedObject& shobj)
	{ Copy(shobj); }

	void Copy(const TSharedObject& shobj);

public:
	operator const TYPE * () const
	{ return m_pObj; }

	const TSharedObject& operator = (const TSharedObject& shobj)
	{
		Destroy();
		Copy(shobj);

		return *this;
	}

	BOOL IsValid() const
	{ return m_pObj != NULL; }

	void Attach(TYPE* pObj)
	{
		ASSERT(m_pObj == NULL); // can't attach two times!
		m_pObj = pObj;
	}

	TYPE* Detach()
	{
		TYPE* ret = m_pObj;
		m_pObj = NULL;
		return ret;
	}

	// obtain a void object by pointer
	TYPE** GetPointer()
	{
		Destroy();
		return &m_pObj;
	}

#ifdef _DEBUG
	void DumpRaw(CDumpContext& dc) const
	{
		dc << "addr = " << (void*)m_pObj << "\n";
		if (m_pObj == NULL)
			return;

		SMallocPtr pMalloc;
		ULONG size = pMalloc->GetSize((void*)m_pObj);
		cd << "[hex dump]\n";
		dc.HexDump(".", (BYTE*)m_pObj, (int)size, 16);
		dc << "\n";
	}
#endif //_DEBUG

protected:

	void Destroy()
	{
		SMallocPtr pMalloc;
		pMalloc->Free(Detach());
	}
};

template <class TYPE>
void TSharedObject<TYPE>::Copy(const TSharedObject& shobj)
{
	m_pObj = NULL;
	if (shobj.m_pObj == NULL)
		return;

	// obj to copy must have been allocated this way
	SMallocPtr pMalloc;
	ULONG size = pMalloc->GetSize((void*)shobj.m_pObj);
	ASSERT(size > 0);

	if (shobj.m_pObj != NULL)
	{
		m_pObj = (TYPE*)pMalloc->Alloc(size);
		CopyMemory(m_pObj, shobj.m_pObj, size);
	}
}


#endif //!defined(AFX_SHELLWRAPPERS_H__B0E1BBE7_A5D8_4A80_9A36_ED5553FE74F6__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合自拍| 亚洲人妖av一区二区| 日韩视频一区在线观看| 日韩精品一区二区三区四区| 欧美一区二区在线不卡| 欧美精品一区二区三区很污很色的| 日韩一区二区三区观看| 精品人在线二区三区| 久久影视一区二区| 亚洲综合色在线| 精品一区二区三区免费观看| av午夜一区麻豆| 欧美性大战久久久久久久| 欧美情侣在线播放| 欧美激情综合五月色丁香小说| 日韩理论片一区二区| 男人操女人的视频在线观看欧美| 成人免费视频caoporn| 欧美一区二区福利视频| 亚洲成av人片一区二区三区| 国产成人在线视频播放| 欧美日韩成人综合天天影院 | 亚洲欧美日韩成人高清在线一区| 亚洲一区二区三区美女| 国产精品77777竹菊影视小说| 欧美情侣在线播放| 一区二区三区在线看| 国产凹凸在线观看一区二区| 欧美在线不卡视频| 国产亚洲一区二区三区四区| 美女视频黄频大全不卡视频在线播放| av一区二区不卡| 中文字幕一区二区三区在线观看 | 91老师片黄在线观看| 亚洲v精品v日韩v欧美v专区| 久久综合av免费| 欧美aaa在线| 亚洲欧洲日本在线| 久久久久久97三级| 日本色综合中文字幕| 色系网站成人免费| 亚洲专区一二三| 成人理论电影网| 国产精品你懂的在线欣赏| 国产乱码字幕精品高清av| 欧美伦理视频网站| 午夜精品在线视频一区| 欧美日韩一区二区在线视频| 亚洲一区二区在线免费看| 色悠悠久久综合| 午夜精品一区在线观看| 国产日韩欧美不卡| 欧美色区777第一页| 久久国产精品99久久人人澡| 国产精品日韩精品欧美在线| 精品视频在线免费| 国产精品伊人色| 亚洲国产日韩a在线播放性色| 欧美精品自拍偷拍动漫精品| 国产高清精品在线| 麻豆91精品91久久久的内涵| 亚洲欧美一区二区视频| 久久久久久久久久美女| 欧美激情综合网| 欧美日精品一区视频| 国产嫩草影院久久久久| 欧美性猛交xxxx黑人交| 成人丝袜高跟foot| 亚洲成人免费看| 欧美一区二区视频在线观看2020| 午夜精品免费在线| 亚洲愉拍自拍另类高清精品| 国产精品午夜电影| 久久一二三国产| 国产性做久久久久久| 国产精品久久久久久久久免费相片 | k8久久久一区二区三区| 亚洲综合久久av| 欧美亚洲动漫另类| 午夜视频一区二区三区| 日韩精品一区二区三区三区免费| 懂色一区二区三区免费观看| 国产精品 欧美精品| 亚洲综合久久久久| 亚洲va欧美va人人爽| 欧美伊人久久久久久午夜久久久久| 粉嫩一区二区三区性色av| 久久综合国产精品| 欧美sm极限捆绑bd| 99re成人精品视频| 一本大道综合伊人精品热热 | 自拍偷拍亚洲欧美日韩| 日韩一级免费观看| 精品久久人人做人人爽| 欧美一区二区三区四区高清| 欧美丰满美乳xxx高潮www| 久久精品无码一区二区三区| 亚洲视频免费在线| 精品在线播放免费| 精品一区二区三区视频| 99久久er热在这里只有精品66| 色婷婷综合五月| 亚洲精品在线网站| 国产精品美女久久久久久2018 | 午夜婷婷国产麻豆精品| 成人久久视频在线观看| 精品人伦一区二区色婷婷| 日韩一区二区视频| 国产丝袜美腿一区二区三区| 亚洲人午夜精品天堂一二香蕉| 亚洲激情图片小说视频| 国内精品久久久久影院一蜜桃| 欧美一区二区三区爱爱| 日韩不卡免费视频| 8x福利精品第一导航| 亚洲综合在线第一页| 亚洲美女一区二区三区| 国产精品69毛片高清亚洲| 欧美三级中文字幕| 国产精品福利在线播放| 国产精品夜夜嗨| 日韩精品中文字幕在线一区| 麻豆精品一区二区三区| 日韩一区二区电影在线| 精品久久久久香蕉网| 日韩欧美久久一区| 久久久久国产精品免费免费搜索| 亚洲一级二级在线| 经典三级视频一区| 91亚洲精品久久久蜜桃| 精品国产三级电影在线观看| 国产精品久久福利| 成人av在线资源| 久久奇米777| 成人黄色小视频| 1024亚洲合集| 欧美亚州韩日在线看免费版国语版| 欧美激情一区二区三区不卡 | 国产精一区二区三区| 26uuu另类欧美亚洲曰本| 国产成人免费高清| 日韩一区在线看| 欧美精品丝袜中出| 精东粉嫩av免费一区二区三区| 欧美激情在线一区二区三区| 一本色道亚洲精品aⅴ| 日韩中文字幕av电影| 国产视频一区在线观看| 欧美另类变人与禽xxxxx| 亚洲欧洲三级电影| 91免费国产在线| 亚洲视频一区二区在线| 国产成人精品三级麻豆| 欧美伦理视频网站| 风间由美一区二区av101| 中文字幕久久午夜不卡| 懂色一区二区三区免费观看 | 亚洲sss视频在线视频| 久久久久国产精品免费免费搜索| 99精品1区2区| 夜夜亚洲天天久久| 91精品91久久久中77777| 性久久久久久久| 日本高清无吗v一区| 国产欧美一区二区三区鸳鸯浴 | 精品国产一区二区三区久久影院| 国产99久久久国产精品潘金 | 欧美日韩亚洲高清一区二区| 国产91精品久久久久久久网曝门| 日本亚洲天堂网| 亚洲人成在线播放网站岛国| 久久九九国产精品| 日韩三级免费观看| 欧美一区二区精美| 欧美精品自拍偷拍| 欧美色图12p| 在线播放中文一区| 538在线一区二区精品国产| 欧美日韩精品综合在线| 欧美电影在线免费观看| 欧美日韩视频不卡| 欧美丰满嫩嫩电影| 欧美电影免费提供在线观看| 精品国产凹凸成av人导航| 久久久亚洲精华液精华液精华液| 久久精品一级爱片| 亚洲欧美偷拍三级| 偷拍日韩校园综合在线| 美女视频免费一区| 国产99一区视频免费| 色天天综合色天天久久| 欧美伦理影视网| 国产精品亲子伦对白| 亚洲成人一区二区在线观看| 奇米影视7777精品一区二区| 国产大陆亚洲精品国产| 欧美中文字幕一区二区三区| 日韩欧美在线一区二区三区| 国产精品久久久久婷婷二区次| 亚洲国产欧美另类丝袜|