windows-nt/Source/XPSP1/NT/printscan/ui/wiaacmgr/postplug/postplug.h
2020-09-26 16:20:57 +08:00

117 lines
3.4 KiB
C++

/*******************************************************************************
*
* (C) COPYRIGHT MICROSOFT CORPORATION, 2000
*
* TITLE: POSTPLUG.H
*
* VERSION: 1.0
*
* AUTHOR: ShaunIv
*
* DATE: 4/11/2000
*
* DESCRIPTION:
*
*******************************************************************************/
#ifndef __POSTPLUG_H_INCLUDED
#define __POSTPLUG_H_INCLUDED
#include <windows.h>
#include <atlbase.h>
#include <objbase.h>
#include "itranspl.h"
#include "progressinfo.h"
#include "httpfilepost.h"
class CHttpPostPlugin : public IImageTransferPlugin
{
private:
class CCommunityInfo
{
private:
CSimpleString m_strCommunityId;
CSimpleString m_strCommunityName;
public:
CCommunityInfo(void)
{
}
CCommunityInfo( const CCommunityInfo &other )
: m_strCommunityId(other.CommunityId()),
m_strCommunityName(other.CommunityName())
{
}
CCommunityInfo( const CSimpleString &strCommunityId, const CSimpleString &strCommunityName )
: m_strCommunityId(strCommunityId),
m_strCommunityName(strCommunityName)
{
}
~CCommunityInfo(void)
{
}
CCommunityInfo &operator=( const CCommunityInfo &other )
{
if (&other != this)
{
m_strCommunityId = other.CommunityId();
m_strCommunityName = other.CommunityName();
}
return *this;
}
CSimpleString CommunityId(void) const
{
return m_strCommunityId;
}
CSimpleString CommunityName(void) const
{
return m_strCommunityName;
}
void CommunityId( const CSimpleString &strCommunityId )
{
m_strCommunityId = strCommunityId;
}
void CommunityName( const CSimpleString &strCommunityName )
{
m_strCommunityName = strCommunityName;
}
};
private:
LONG m_cRef;
IImageTransferPluginProgressCallback *m_pImageTransferPluginProgressCallback;
LONG m_nCurrentPluginId;
CHttpFilePoster m_HttpFilePoster;
CSimpleDynamicArray<CCommunityInfo> m_CommunityInfoArray;
static bool EnumCommunitiesProc( CSimpleReg::CValueEnumInfo &enumInfo );
static UINT ProgressProc( CProgressInfo *pProgressInfo );
public:
~CHttpPostPlugin(void);
CHttpPostPlugin(void);
//
// IUnknown
//
STDMETHODIMP QueryInterface( REFIID riid, LPVOID *ppvObject );
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//
// IImageTransferPlugin
//
STDMETHODIMP GetPluginCount( ULONG *pnCount );
STDMETHODIMP GetPluginName( ULONG nPluginId, BSTR *pbstrName );
STDMETHODIMP GetPluginDescription( ULONG nPluginId, BSTR *pbstrDescription );
STDMETHODIMP GetPluginIcon( ULONG nPluginId, HICON *phIcon, int nWidth, int nHeight );
STDMETHODIMP OpenConnection( HWND hwndParent, ULONG nPluginId, IImageTransferPluginProgressCallback *pImageTransferPluginProgressCallback );
STDMETHODIMP AddFile( BSTR bstrFilename, BSTR bstrDescription, const GUID &guidImageFormat, BOOL bDelete );
STDMETHODIMP TransferFiles( BSTR bstrGlobalDescription );
STDMETHODIMP OpenDestination(void);
STDMETHODIMP CloseConnection(void);
};
#endif //__POSTPLUG_H_INCLUDED