Windows-Server-2003/shell/themes/uxtheme/themesection.h

51 lines
1.7 KiB
C++

// --------------------------------------------------------------------------
// Module Name: ThemeSection.h
//
// Copyright (c) 2000, Microsoft Corporation
//
// Class that wraps CUxThemeFile. CUxThemeFile automatically closes the section
// member variable handle. This makes usage of the class difficult because
// it doesn't duplicate the handle but it takes ownership. It does declare
// the handle as a PUBLIC member variable so we capitalize on this poor
// design. This class wraps CUxThemeFile to make the life of users of this
// class easier by not having them worry about closing the handles or not.
// When you use this class the handle is NOT closed.
//
// History: 2000-11-22 vtan created
// --------------------------------------------------------------------------
#ifndef _ThemeSection_
#define _ThemeSection_
#include "ThemeFile.h"
// --------------------------------------------------------------------------
// CThemeSection
//
// Purpose: Class that wraps CUxThemeFile and doesn't release the handle on
// closure.
//
// History: 2000-11-22 vtan created
// --------------------------------------------------------------------------
class CThemeSection
{
public:
CThemeSection (void);
~CThemeSection (void);
operator CUxThemeFile* (void);
HRESULT Open (HANDLE hSection, DWORD dwViewAccess = FILE_MAP_READ);
HRESULT ValidateData (bool fFullCheck);
HRESULT CreateFromSection (HANDLE hSection);
HANDLE Get (void) const;
PVOID GetData(void);
private:
CUxThemeFile _themeFile;
};
#endif /* _ThemeSection_ */