150 lines
5.5 KiB
C
150 lines
5.5 KiB
C
|
#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 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
|