|
|
#ifndef ASCSTR_H
#define ASCSTR_H
#include "ftcmmn.h"
#define ASENUM DWORD
#define ASENUM_NONE 0x00000000
#define ASENUM_EXT 0x00000001
#define ASENUM_PROGID 0x00000002
#define ASENUM_ACTION 0x00000004
#define ASENUM_ASSOC_YES 0x10000000
#define ASENUM_ASSOC_NO 0x20000000
#define ASENUM_ASSOC_ALL (ASENUM_ASSOC_YES | ASENUM_ASSOC_NO)
#define ASENUM_NOEXCLUDED 0x40000000
#define ASENUM_NOEXPLORERSHELLACTION 0x80000000
#define ASENUM_NOEXE 0x01000000
#define ASENUM_SHOWONLY 0x02000000
#define ASENUM_MAINMASK 0x00000007
#define AIINIT DWORD
#define AIINIT_NONE 0x00000000
#define AIINIT_EXT 0x00000001
#define AIINIT_PROGID 0x00000002
#define AIINIT_ACTION 0x00000004
// Watch out! Begin
// All flags in this section can be OR'ed with the other flags AIBOOL, AISTR, ...
// so keep these values "globally" unique.
#define AIALL DWORD
#define AIALL_NONE 0x00000000
#define AIALL_PERUSER 0x10000000
// Watch out! End
#define AISTR DWORD
#define AISTR_NONE 0x00000000
// This returns an extension WITHOUT the dot
#define AISTR_EXT 0x00000001
// This returns an extension WITH the dot
#define AISTR_DOTEXT 0x00000002
#define AISTR_PROGID 0x00000004
#define AISTR_PROGIDDESCR 0x00000008
#define AISTR_APPPATH 0x00000010
#define AISTR_APPFRIENDLY 0x00000020
#define AISTR_ACTION 0x00000040
#define AISTR_PROGIDDEFAULTACTION 0x00000080
#define AISTR_ICONLOCATION 0x00000100
#define AISTR_ACTIONFRIENDLY 0x00000200
#define AIDWORD DWORD
#define AIDWORD_NONE 0x00000000
#define AIDWORD_APPSMALLICON 0x00000001
#define AIDWORD_APPLARGEICON 0x00000002
#define AIDWORD_DOCSMALLICON 0x00000004
#define AIDWORD_DOCLARGEICON 0x00000008
#define AIDWORD_PROGIDEDITFLAGS 0x00000010
#define AIDWORD_ACTIONATTRIBUTES 0x00000020
#define AIBOOL DWORD
#define AIBOOL_CONFIRMOPEN 0x00000001
// removed quick view constant - dsheldon
#define AIBOOL_ALWAYSSHOWEXT 0x00000004
#define AIBOOL_BROWSEINPLACE 0x00000008
#define AIBOOL_BROWSEINPLACEENABLED 0x00000010
#define AIBOOL_EDITDESCR 0x00000020
#define AIBOOL_EDITDOCICON 0x00000040
#define AIBOOL_EDIT 0x00000080
#define AIBOOL_EDITREMOVE 0x00000100
#define AIBOOL_EXTASSOCIATED 0x00000200
#define AIBOOL_EXTEXIST 0x00000400
#define AIBOOL_EXCLUDE 0x00000800
#define AIBOOL_SHOW 0x00001000
#define AIBOOL_PERUSERINFOAVAILABLE 0x00002000
#define AIBOOL_PROGIDHASNOEXT 0x00004000
#define AIDATA DWORD
#define AIDATA_PROGIDACTION 0x00000001
class IAssocInfo : public IUnknown { public: // IUnknown methods
STDMETHOD(QueryInterface)(REFIID riid, PVOID* ppv) PURE; STDMETHOD_(ULONG, AddRef)() PURE; STDMETHOD_(ULONG,Release)() PURE;
// IAssocInfo methods
// Init
STDMETHOD(Init)(AIINIT aiinitFlags, LPTSTR pszStr) PURE; STDMETHOD(InitComplex)(AIINIT aiinitFlags1, LPTSTR pszStr1, AIINIT aiinitFlags2, LPTSTR pszStr2) PURE; // Get
STDMETHOD(GetString)(AISTR aistrFlags, LPTSTR pszStr, DWORD* cchStr) PURE; STDMETHOD(GetDWORD)(AIDWORD aidwordFlags, DWORD* pdwdata) PURE; STDMETHOD(GetBOOL)(AIDWORD aiboolFlags, BOOL* pfBool) PURE; STDMETHOD(GetData)(AIDWORD aidataFlags, PBYTE pbData, DWORD* pcbData) PURE; // Set
STDMETHOD(SetString)(AISTR aistrFlags, LPTSTR pszStr) PURE; STDMETHOD(SetDWORD)(AIDWORD aidwordFlags, DWORD dwData) PURE; STDMETHOD(SetBOOL)(AIDWORD aiboolFlags, BOOL fBool) PURE; STDMETHOD(SetData)(AIDWORD aidataFlags, PBYTE pbData, DWORD cbData) PURE; // Create
STDMETHOD(Create)() PURE; // Delete
STDMETHOD(DelString)(AISTR aistrFlags) PURE; STDMETHOD(Delete)(AIALL aiallFlags) PURE; };
class IEnumAssocInfo : public IUnknown { public: // IUnknown methods
STDMETHOD(QueryInterface)(REFIID riid, PVOID* ppv) PURE; STDMETHOD_(ULONG, AddRef)() PURE; STDMETHOD_(ULONG, Release)() PURE;
// IEnumAssocInfo methods
// Initialization
STDMETHOD(Init)(ASENUM asenumFlags, LPTSTR pszStr, AIINIT aiinitFlags) PURE;
// Standard IEnum methods
STDMETHOD(Next)(IAssocInfo** ppAI) PURE; STDMETHOD(Skip)(DWORD dwSkip) PURE; STDMETHOD(Reset)() PURE; STDMETHOD(Clone)(IEnumAssocInfo* pEnum) PURE; };
class IAssocStore : public IUnknown { public: // IUnknown methods
STDMETHOD(QueryInterface)(REFIID riid, PVOID* ppv) PURE; STDMETHOD_(ULONG, AddRef)() PURE; STDMETHOD_(ULONG,Release)() PURE;
// IAssocStore methods
// Enum
STDMETHOD(EnumAssocInfo)(ASENUM asenumFlags, LPTSTR pszStr, AIINIT aiinitFlags, IEnumAssocInfo** ppEnum) PURE; // Get/Set
STDMETHOD(GetAssocInfo)(LPTSTR pszStr, AIINIT aiinitFlags, IAssocInfo** ppAI) PURE; STDMETHOD(GetComplexAssocInfo)(LPTSTR pszStr1, AIINIT aiinitFlags1, LPTSTR pszStr2, AIINIT aiinitFlags2, IAssocInfo** ppAI) PURE; //
STDMETHOD(CheckAccess)() PURE; };
#endif //ASCSTR_H
|