IUISimplePropertySet::GetValue 메서드(uiribbon.h)
속성 키로 식별되는 값을 검색합니다.
구문
HRESULT GetValue(
[in] REFPROPERTYKEY key,
[out] PROPVARIANT *value
);
매개 변수
[in] key
형식: REFPROPERTYKEY
관심 있는 속성 키입니다.
[out] value
형식: PROPVARIANT*
이 메서드가 반환되면 키 값에 대한 포인터가 포함됩니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
예제
다음 예제에서는 항목 및 명령 갤러리 모두에 대한 IUISimplePropertySet 의 사용자 지정 구현을 보여 줍니다.
이 예제의 CItemProperties 클래스는 IUISimplePropertySet 에서 파생되며 필요한 메서드 IUISimplePropertySet::GetValue 외에도 초기화 및 인덱스 추적을 위한 도우미 함수 집합을 구현합니다.
//
// PURPOSE: Implementation of IUISimplePropertySet.
//
// COMMENTS:
// Three gallery-specific helper functions added.
//
class CItemProperties
: public CComObjectRootEx<CComMultiThreadModel>
, public IUISimplePropertySet
{
public:
// COM map for QueryInterface of IUISimplePropertySet.
BEGIN_COM_MAP(CItemProperties)
COM_INTERFACE_ENTRY(IUISimplePropertySet)
END_COM_MAP()
// Required method that enables property key values to be
// retrieved on gallery collection items.
STDMETHOD(GetValue)(REFPROPERTYKEY key, PROPVARIANT *ppropvar)
{
HRESULT hr;
// A Command gallery.
// _isCommandGallery set on item initialization.
if (_isCommandGallery)
{
if(key == UI_PKEY_CommandId && _isCommandGallery)
{
// Return a pointer to the CommandId of the item.
return InitPropVariantFromUInt32(_cmdID, ppropvar);
}
}
// An item gallery.
else
{
if (key == UI_PKEY_Label)
{
// Return a pointer to the item label string.
return UIInitPropertyFromString(
UI_PKEY_Label, g_labels[_index], ppropvar);
}
else if(key == UI_PKEY_ItemImage)
{
if (NULL == _spimgItem)
{
hr = CreateUIImageFromBitmapResource(
MAKEINTRESOURCE(IDB_GALLERYITEM), &_spimgItem);
if (FAILED(hr))
{
return hr;
}
}
// Return a pointer to the item image.
return UIInitPropertyFromImage(
UI_PKEY_ItemImage, _spimgItem, ppropvar);
}
}
return E_NOTIMPL;
}
// Initialize an item in an item gallery collection at the specified index.
void Initialize(int index)
{
_index = index;
_cmdID = 0;
_isCommandGallery = false;
}
// Initialize a Command in a Command gallery.
void InitializeAsCommand(__in UINT cmdID)
{
_index = 0;
_cmdID = cmdID;
_isCommandGallery = true;
}
// Gets the index of the selected item in an item gallery.
int GetIndex()
{
return _index;
}
private:
int _index;
int _cmdID;
bool _isCommandGallery;
CComPtr<IUIImage> _spimgItem;
};
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | uiribbon.h |
DLL | Mshtml.dll |