From 85e0cc246d4350122b17fbe2bfd15635a190ad77 Mon Sep 17 00:00:00 2001 From: Dirk Voelzke Date: Wed, 20 Jan 2010 11:33:12 +0100 Subject: dv17: #i70994#: Use property handler instead of column info for Windows Vista --- shell/inc/internal/metainforeader.hxx | 2 +- shell/inc/internal/propertyhdl.hxx | 90 +++++++++++++++++++++++++++++++++++ shell/inc/internal/shlxthdl.hxx | 4 ++ shell/inc/internal/stream_helper.hxx | 35 ++++++++++++++ shell/inc/internal/utilities.hxx | 0 5 files changed, 130 insertions(+), 1 deletion(-) mode change 100644 => 100755 shell/inc/internal/metainforeader.hxx create mode 100755 shell/inc/internal/propertyhdl.hxx mode change 100644 => 100755 shell/inc/internal/shlxthdl.hxx create mode 100755 shell/inc/internal/stream_helper.hxx mode change 100644 => 100755 shell/inc/internal/utilities.hxx (limited to 'shell/inc') diff --git a/shell/inc/internal/metainforeader.hxx b/shell/inc/internal/metainforeader.hxx old mode 100644 new mode 100755 index 1e004b5a3727..478365811da3 --- a/shell/inc/internal/metainforeader.hxx +++ b/shell/inc/internal/metainforeader.hxx @@ -46,7 +46,7 @@ public: CMetaInfoReader( const std::string& DocumentName ); - CMetaInfoReader( void* stream, zlib_filefunc_def* fa); + CMetaInfoReader( void* stream, zlib_filefunc_def* fa); /** check if the Tag is in the target meta.xml file. diff --git a/shell/inc/internal/propertyhdl.hxx b/shell/inc/internal/propertyhdl.hxx new file mode 100755 index 000000000000..60ff10bc6958 --- /dev/null +++ b/shell/inc/internal/propertyhdl.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: PropertyHdl.hxx,v $ + * $Revision: 1.5 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef PROPERTYHDL_HXX_INCLUDED +#define PROPERTYHDL_HXX_INCLUDED + +#if defined _MSC_VER +#pragma warning(push, 1) +#pragma warning(disable:4917) +#endif +#include +#if defined _MSC_VER +#pragma warning(pop) +#endif + +class CMetaInfoReader; + +class CPropertyHdl : public IPropertyStore, + public IPropertyStoreCapabilities, + public IInitializeWithStream +{ +public: + CPropertyHdl(long RefCnt = 1); + virtual ~CPropertyHdl(); + + //----------------------------- + // IUnknown methods + //----------------------------- + virtual HRESULT STDMETHODCALLTYPE QueryInterface( + REFIID riid, + void __RPC_FAR *__RPC_FAR *ppvObject ); + virtual ULONG STDMETHODCALLTYPE AddRef( void ); + virtual ULONG STDMETHODCALLTYPE Release( void ); + + //----------------------------- + // IPropertyStore + //----------------------------- + virtual HRESULT STDMETHODCALLTYPE GetCount( DWORD *pcProps ); + virtual HRESULT STDMETHODCALLTYPE GetAt( DWORD iProp, PROPERTYKEY *pkey ); + virtual HRESULT STDMETHODCALLTYPE GetValue( REFPROPERTYKEY key, PROPVARIANT *pPropVar ); + virtual HRESULT STDMETHODCALLTYPE SetValue( REFPROPERTYKEY key, REFPROPVARIANT propVar ); + virtual HRESULT STDMETHODCALLTYPE Commit(); + + //----------------------------- + // IPropertyStoreCapabilities + //----------------------------- + virtual HRESULT STDMETHODCALLTYPE IsPropertyWritable( REFPROPERTYKEY key ); + + //----------------------------- + // IInitializeWithStream + //----------------------------- + virtual HRESULT STDMETHODCALLTYPE Initialize(IStream *pStream, DWORD grfMode); + +private: + void LoadProperties( CMetaInfoReader *pMetaInfoReader ); + HRESULT GetItemData( CMetaInfoReader *pMetaInfoReader, UINT nIndex, PROPVARIANT *pVarData ); + +private: + long m_RefCnt; + IPropertyStoreCache* m_pCache; +}; + +#endif diff --git a/shell/inc/internal/shlxthdl.hxx b/shell/inc/internal/shlxthdl.hxx old mode 100644 new mode 100755 index 782212f6dc5b..70830c9775ec --- a/shell/inc/internal/shlxthdl.hxx +++ b/shell/inc/internal/shlxthdl.hxx @@ -55,4 +55,8 @@ const CLSID CLSID_PROPERTYSHEET_HANDLER = const CLSID CLSID_THUMBVIEWER_HANDLER = { 0x3b092f0c, 0x7696, 0x40e3, { 0xa8, 0xf, 0x68, 0xd7, 0x4d, 0xa8, 0x42, 0x10 } }; +// {AE424E85-F6DF-4910-A6A9-438797986431} +const CLSID CLSID_PROPERTY_HANDLER = +{ 0xae424e85, 0xf6df, 0x4910, { 0xa6, 0xa9, 0x43, 0x87, 0x97, 0x98, 0x64, 0x31 } }; + #endif diff --git a/shell/inc/internal/stream_helper.hxx b/shell/inc/internal/stream_helper.hxx new file mode 100755 index 000000000000..2ef4529b54ce --- /dev/null +++ b/shell/inc/internal/stream_helper.hxx @@ -0,0 +1,35 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2010 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef STREAM_HELPER_HXX_INCLUDED +#define STREAM_HELPER_HXX_INCLUDED + +#include "internal/types.hxx" + +IStream* PrepareIStream( IStream* pStream, zlib_filefunc_def &zFileFunc ); + +#endif diff --git a/shell/inc/internal/utilities.hxx b/shell/inc/internal/utilities.hxx old mode 100644 new mode 100755 -- cgit