// Sms.h : CSms 的声明

#pragma once
#include "resource.h"       // 主符号



#include "MobsetWeb_i.h"



#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Windows CE 平台(如不提供完全 DCOM 支持的 Windows Mobile 平台)上无法正确支持单线程 COM 对象。定义 _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA 可强制 ATL 支持创建单线程 COM 对象实现并允许使用其单线程 COM 对象实现。rgs 文件中的线程模型已被设置为“Free”,原因是该模型是非 DCOM Windows CE 平台支持的唯一线程模型。"
#endif

using namespace ATL;


// CSms

class ATL_NO_VTABLE CSms :
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CSms, &CLSID_Sms>,
	public IDispatchImpl<ISms, &IID_ISms, &LIBID_MobsetWebLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
	CString m_strSendRet;
	CAdoConnection m_AdoConnection;
public:
	CSms()
	{
	}
	void GetCurrentPath(TCHAR *pPath);

DECLARE_REGISTRY_RESOURCEID(IDR_SMS)


BEGIN_COM_MAP(CSms)
	COM_INTERFACE_ENTRY(ISms)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()



	DECLARE_PROTECT_FINAL_CONSTRUCT()

	HRESULT FinalConstruct()
	{
		return S_OK;
	}

	void FinalRelease()
	{
	}

public:



	STDMETHOD(CheckPasswd)(BSTR User, BSTR Passwd, BSTR Encrypt, LONG Purview, LONG* pRet);
	STDMETHOD(CheckPasswd2)(LONG CorpID,BSTR User, BSTR Passwd, BSTR TimeStamp, BSTR Encrypt, LONG Purview, LONG* pRet);
	STDMETHOD(GetPasswd)(BSTR User, BSTR Passwd, BSTR* pRet);
	STDMETHOD(DePasswd)(BSTR User, BSTR Passwd, BSTR* pRet);
	STDMETHOD(EncSPMS)(BSTR Key, BSTR Src, BSTR* pRet);
	STDMETHOD(GetPurview)(LONG PurviewType, LONG* pRet);
	STDMETHOD(HasSWTPre)(LONG lSDK, LONG* pRet);
	STDMETHOD(isHasPurview)(LONG Purview, LONG AllPurview, LONG* pRet);
	STDMETHOD(SendSms)(IDispatch* pAdoConnect, LONG lCorpID, LONG lUserID, LONG lLongSms,LONG lFD, BSTR Timer, BSTR IP, BSTR AddNum, BSTR Recver, BSTR Mobiles, BSTR Msg, LONG* pSendCount);
	STDMETHOD(get_SendRet)(BSTR* pVal);
	STDMETHOD(put_SendRet)(BSTR newVal);
	STDMETHOD(SendSms_Excel)(IDispatch* pAdoConnect, LONG lCorpID, LONG lUserID, LONG lLongSms,LONG lFD, BSTR Timer2, BSTR IP, BSTR ExcelFileName, LONG* lSendCount);
	STDMETHOD(CorpSmsHttpReq)(BSTR pReq, BSTR pIPAddr, BSTR pReqVer, BSTR* pRet);
	STDMETHOD(CheckPasswd3)(LONG CorpID, BSTR User, BSTR Passwd, BSTR TimeStamp, BSTR Encrypt, LONG Purview, BSTR* pRet);
};

OBJECT_ENTRY_AUTO(__uuidof(Sms), CSms)