summaryrefslogblamecommitdiffstats
path: root/Src/Elevator/FileTypeRegistrar.h
blob: 573438bb933c03dc8185e979e49078ae3666099b (plain) (tree)





























































































































































                                                                                                                                       
#pragma once

#if defined(_WIN64)
 #include "IFileTypeRegistrar_64.h"
#else
 #include "IFileTypeRegistrar_32.h"
#endif

class FileTypeRegistrar : public IFileTypeRegistrar
{
public:
	FileTypeRegistrar();
	/* IUnknown */
	HRESULT STDMETHODCALLTYPE QueryInterface(
		/* [in] */ REFIID riid, 
		/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject
		);
	ULONG STDMETHODCALLTYPE AddRef(void);
	ULONG STDMETHODCALLTYPE Release(void);

	/* Stuff we define */
	HRESULT STDMETHODCALLTYPE RegisterMIMEType(
		/* [in, string] */ LPCWSTR mimeType, 
		/* [in, string] */ LPCWSTR programName, 
		/* [in, string] */ LPCWSTR extension, 
		BOOL netscapeOnly
		);

	HRESULT STDMETHODCALLTYPE RegisterCDPlayer(
		/* [in, string] */ LPCWSTR programName
		);

	HRESULT STDMETHODCALLTYPE UnregisterCDPlayer(
		/* [in, string] */ LPCWSTR programName
		);

	HRESULT STDMETHODCALLTYPE RegisterType(
		/* [in, string] */ LPCWSTR extension,
		/* [in, string] */ LPCWSTR which_str, 
		/* [in, string] */ LPCWSTR prog_name
		);

	HRESULT STDMETHODCALLTYPE UnregisterType(
		/* [in, string] */ LPCWSTR extension, 
		/* [in, string] */ LPCWSTR which_str, 
		/* [in, string] */ LPCWSTR prog_name,
		/*[in]*/ int iconNumber
		);

	HRESULT STDMETHODCALLTYPE AddDirectoryContext(
		/* [in, string] */ LPCWSTR programName, 
		/* [in, string] */ LPCWSTR which_str, 
		/* [in, string] */ LPCWSTR description
		);

	HRESULT STDMETHODCALLTYPE RemoveDirectoryContext(
		/* [in, string] */ LPCWSTR which_str
		);

	HRESULT STDMETHODCALLTYPE AddAgent(
		/* [in, string] */ LPCWSTR agentFilename
		);

	HRESULT STDMETHODCALLTYPE RemoveAgent();

	HRESULT STDMETHODCALLTYPE RegisterMediaPlayer(
		DWORD accessEnabled, 
		/* [in, string] */ LPCWSTR programName, 
		/* [in, string] */ LPCWSTR prog_name, 
		int iconNumber
		);

	HRESULT STDMETHODCALLTYPE RegisterMediaPlayerProtocol(LPCWSTR protocol, LPCWSTR prog_name);
	HRESULT STDMETHODCALLTYPE UnregisterMediaPlayerProtocol(LPCWSTR protocol, LPCWSTR prog_name);

	HRESULT STDMETHODCALLTYPE SetupFileType(
		/* [in, string] */ LPCWSTR programName, 
		/* [in, string] */ LPCWSTR winamp_file, 
		/* [in, string] */ LPCWSTR name, 
		int iconNumber, 
		/* [in, string] */ LPCWSTR defaultShellCommand,
		/* [in, string] */ LPCWSTR iconPath
		);

	HRESULT STDMETHODCALLTYPE SetupShell(
		/* [in, string] */ LPCWSTR commandLine, 
		/* [in, string] */ LPCWSTR winamp_file, 
		/* [in, string] */ LPCWSTR description, 
		/* [in, string] */ LPCWSTR commandName,
		/* [in, string] */ LPCWSTR dragAndDropGUID
		);

	HRESULT STDMETHODCALLTYPE RemoveShell(
		/* [in, string] */ LPCWSTR winamp_file,
		/* [in, string] */ LPCWSTR commandName
		);

	HRESULT STDMETHODCALLTYPE SetupDefaultFileType(
		/* [in, string] */ LPCWSTR winamp_file,
		/* [in, string] */ LPCWSTR defaultShellCommand
		);

	HRESULT STDMETHODCALLTYPE RegisterTypeShell(
		/* [in, string] */ LPCWSTR programName, 
		/* [in, string] */ LPCWSTR which_file, 
		/* [in, string] */ LPCWSTR description, 
		int iconNumber,
		/* [in, string] */ LPCWSTR commandName
		);

	HRESULT STDMETHODCALLTYPE RegisterGUID(
		/* [in, string] */ LPCWSTR programName, 
		/* [in, string] */ LPCWSTR guidString
		);

	HRESULT STDMETHODCALLTYPE RegisterDVDPlayer(
		/* [in, string] */ LPCWSTR programName,
		int iconNumber,
		/* [in, string] */ LPCWSTR which_file,
		/* [in, string] */ LPCWSTR commandName,
		/* [in, string] */ LPCWSTR provider, 
		/* [in, string] */ LPCWSTR description
		);

	HRESULT STDMETHODCALLTYPE InstallItem(
		LPCWSTR sourceFile,
		LPCWSTR destinationFolder,
		LPCWSTR destinationFilename
		);

	HRESULT STDMETHODCALLTYPE DeleteItem(
		LPCWSTR file
		);

	HRESULT STDMETHODCALLTYPE RenameItem(
		LPCWSTR oldFile,
		LPCWSTR newFile,
		BOOL force
		);

	HRESULT STDMETHODCALLTYPE CleanupDirectory(
		LPCWSTR directory
		);

	HRESULT STDMETHODCALLTYPE MoveDirectoryContents(
		LPCWSTR oldDirectory,
		LPCWSTR newDirectory
		);

	HRESULT STDMETHODCALLTYPE WriteProKey(LPCWSTR name, LPCWSTR key);
	HRESULT STDMETHODCALLTYPE WriteClientUIDKey(LPCWSTR path, LPCWSTR uid_str);

	HRESULT STDMETHODCALLTYPE RegisterProtocol(LPCWSTR protocol, LPCWSTR command, LPCWSTR icon);
	HRESULT STDMETHODCALLTYPE RegisterCapability(const wchar_t *programName, const wchar_t *winamp_file, const wchar_t *extension);

//private:
	volatile ULONG refCount;
};