reactos/modules/rosapps/lib/vfdlib/vfdshext.h
Pierre Schweitzer 25c7e1a8d0
[VFD] Import the VFD project (Virtual Floppy Drive) which allows creating virtual
floppy drives in ReactOS and mount images on them.
Only the cmd got imported. The GUI interface may come later on.
Note that, as for vcdrom, the driver is left disabled and you need to explicitely
start it through vfd command line interface.

CORE-14090
2017-12-16 21:48:34 +01:00

100 lines
2 KiB
C++

/*
vfdshext.h
Virtual Floppy Drive for Windows
Driver control library
shell extension COM class header
Copyright (c) 2003-2005 Ken Kato
*/
#ifndef _VFDSHEXT_H_
#define _VFDSHEXT_H_
//
// CVfdShExt
// COM Shell extension class
//
class CVfdShExt : public IContextMenu,
IShellExtInit,
IShellPropSheetExt
// IQueryInfo
{
protected:
ULONG m_cRefCnt; // reference count
LPDATAOBJECT m_pDataObj; // IDataObject pointer
ULONG m_nDevice; // VFD device number
CHAR m_sTarget[MAX_PATH]; // target path
BOOL m_bDragDrop;
public:
// constructor / destructor
CVfdShExt();
~CVfdShExt();
// perform VFD operations
DWORD DoVfdOpen(HWND hParent);
DWORD DoVfdNew(HWND hParent);
DWORD DoVfdClose(HWND hParent);
DWORD DoVfdSave(HWND hParent);
DWORD DoVfdProtect(HWND hParent);
DWORD DoVfdDrop(HWND hParent);
// get current attributes
ULONG GetDevice() { return m_nDevice; }
PCSTR GetTarget() { return m_sTarget; }
// IUnknown inheritance
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
// IShellExtInit inheritance
STDMETHODIMP Initialize(
LPCITEMIDLIST pIDFolder,
LPDATAOBJECT pDataObj,
HKEY hKeyID);
// IContextMenu inheritance
STDMETHODIMP QueryContextMenu(
HMENU hMenu,
UINT indexMenu,
UINT idCmdFirst,
UINT idCmdLast,
UINT uFlags);
STDMETHODIMP InvokeCommand(
LPCMINVOKECOMMANDINFO lpcmi);
STDMETHODIMP GetCommandString(
UINT idCmd,
UINT uFlags,
UINT *reserved,
LPSTR pszName,
UINT cchMax);
// IShellPropSheetExt inheritance
STDMETHODIMP AddPages(
LPFNADDPROPSHEETPAGE lpfnAddPage,
LPARAM lParam);
STDMETHODIMP ReplacePage(
UINT uPageID,
LPFNADDPROPSHEETPAGE lpfnReplaceWith,
LPARAM lParam);
/*
// IQueryInfo inheritance
STDMETHODIMP GetInfoFlags(
DWORD *pdwFlags);
STDMETHODIMP GetInfoTip(
DWORD dwFlags,
LPWSTR *ppwszTip);
*/
};
typedef CVfdShExt *LPCVFDSHEXT;
#endif // _VFDSHEXT_H_