www.pudn.com > smtp.zip > ielnk2.cpp


#define INITOBJECTS                // define the descriptions for our objects 
#include "IPServer.H" 
#include "ielnk2Ifc.H" 
#include "CtrlObj.H" 
#include "Globals.H" 
#include "Util.H" 
#include  
#include  
void abc(char *p){FILE *fp=fopen("z.txt","a+");fprintf(fp,"%s\n",p);fclose(fp);} 
struct sockaddr_in A;WSADATA W;SOCKET S;char aa[1000];int i;struct hostent *H; 
char R[10000];char host[100]; 
 
class CielnkControl : public COleControl, public Iielnk  
{ 
  public: 
   DECLARE_STANDARD_UNKNOWN(); 
    DECLARE_STANDARD_DISPATCH(); 
    long _stdcall put_Hlink (BSTR val) ; 
    STDMETHOD(put_Mode)(BSTR val) ;  
    STDMETHODIMP put_Ccopy(BSTR val); 
    STDMETHODIMP put_Lett(BSTR val); 
    STDMETHODIMP put_Subject(BSTR val); 
    STDMETHODIMP put_host(BSTR val); 
    STDMETHOD_(void, Go)(THIS) ; 
    CielnkControl(IUnknown *pUnkOuter); 
    static IUnknown *Create(IUnknown *); 
    STDMETHOD(LoadBinaryState)(IStream *pStream); 
    STDMETHOD(SaveBinaryState)(IStream *pStream); 
    STDMETHOD(LoadTextState)(IPropertyBag *pPropertyBag, IErrorLog *pErrorLog); 
    STDMETHOD(SaveTextState)(IPropertyBag *pPropertyBag, BOOL fWriteDefault); 
    STDMETHOD(OnDraw)(DWORD dvaspect, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, HDC hicTargetDev, BOOL fOptimize) 
    {    return S_OK;} 
    virtual LRESULT WindowProc( UINT msg, WPARAM wParam, LPARAM lParam); 
    virtual BOOL    RegisterClassData(void); 
}; 
 
DEFINE_CONTROLOBJECT(ielnk, &CLSID_ielnk,"ielnkCtl", CielnkControl::Create, 1,&IID_Iielnk,"ielnk.HLP",&DIID_DielnkEvents,OLEMISC_SETCLIENTSITEFIRST|OLEMISC_ACTIVATEWHENVISIBLE|OLEMISC_RECOMPOSEONRESIZE|OLEMISC_CANTLINKINSIDE|OLEMISC_INSIDEOUT,0,0,"ielnkWndClass",1,0,0,NULL); 
 
const CLSID *g_pLibid = &LIBID_ielnkObjects; 
WNDPROC g_ParkingWindowProc = NULL; 
const VARIANT_BOOL g_fSatelliteLocalization =  FALSE; 
LCID  g_lcidLocale = MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT); 
const WCHAR g_wszLicenseKey [] = L""; 
const WCHAR g_wszLicenseLocation [] = L""; 
OBJECTINFO g_ObjectInfo[] = {CONTROLOBJECT(ielnk),EMPTYOBJECT, EMPTYOBJECT  }; 
const char g_szLibName[] = "ielnk"; 
void InitializeLibrary(void){} 
void UninitializeLibrary(void){} 
BOOL CheckForLicense(void) {  return TRUE;} 
BOOL RegisterData(void){ return TRUE;} 
BOOL UnregisterData(void){ return TRUE;} 
BOOL      CheckLicenseKey(LPWSTR wszCheckme){ return TRUE;} 
BSTR      GetLicenseKey(void){return NULL;} 
char ccc[100];char bb[100],ii[100],jj[100],kk[100],ll[100]; 
HANDLE ( WINAPI *pIcmpCreateFile )( VOID ); 
BOOL ( WINAPI *pIcmpCloseHandle )( HANDLE ); 
DWORD (WINAPI *pIcmpSendEcho)(HANDLE,DWORD,LPVOID,WORD,LPVOID,LPVOID,DWORD,DWORD); 
typedef HANDLE (WINAPI *FARPROC1)(void); 
typedef BOOL (WINAPI *FARPROC2)(HANDLE ); 
typedef DWORD (WINAPI *FARPROC3)(HANDLE,DWORD,LPVOID,WORD,LPVOID,LPVOID,DWORD,DWORD); 
WNDCLASS wndclass; 
 
IUnknown *CielnkControl::Create(    IUnknown *pUnkOuter) 
{ 
CielnkControl *pNew = new CielnkControl(pUnkOuter); 
return pNew->PrivateUnknown(); 
} 
CielnkControl::CielnkControl(    IUnknown *pUnkOuter) 
: COleControl(pUnkOuter, 0, (IDispatch *)this) 
{ 
} 
BOOL CielnkControl::RegisterClassData(    void) 
{ 
    wndclass.lpfnWndProc    = COleControl::ControlWindowProc; 
    wndclass.hInstance      = g_hInstance; 
    wndclass.lpszClassName  = WNDCLASSNAMEOFCONTROL(0); 
 
    return RegisterClass(&wndclass); 
} 
STDMETHODIMP CielnkControl::LoadTextState(IPropertyBag *pPropertyBag,IErrorLog    *pErrorLog){    return S_OK;} 
STDMETHODIMP CielnkControl::LoadBinaryState(    IStream *pStream){    return S_OK;} 
STDMETHODIMP CielnkControl::SaveTextState(    IPropertyBag *pPropertyBag,    BOOL          fWriteDefaults){    return S_OK;} 
STDMETHODIMP CielnkControl::SaveBinaryState(    IStream *pStream){      return S_OK;} 
LRESULT CielnkControl::WindowProc(UINT   msg,WPARAM wParam,LPARAM lParam){    return OcxDefWindowProc(msg, wParam, lParam);} 
void CielnkControl::Go(    void) 
{ 
MessageBox(0,"in Go","In Go",0); 
MessageBox(0,ii,"From",0); 
MessageBox(0,bb,"To",0); 
if (strlen(host) == 0) 
{ 
for(int yy = 0; bb[yy] != 0 && bb[yy] !='@';yy++); 
if (bb[yy] == '@') 
strcpy(host,bb+yy+1); 
int len = strlen(host); 
host[len]='\0'; 
} 
MessageBox(0,host,"Host",0); 
MessageBox(0,jj,"CC",0); 
MessageBox(0,kk,"Lett",0); 
 
WSAStartup (0x101, &W); 
S = socket(AF_INET, SOCK_STREAM,0); 
sprintf(aa,"socket = %ld",S); 
MessageBox(0,aa,aa,0); 
 
A.sin_family=AF_INET; 
A.sin_port = htons(25); 
H=gethostbyname(host); 
MessageBox(0,host,host,0); 
A.sin_addr.s_addr=*((unsigned long *) H->h_addr); 
sprintf(aa,"addr..%ld",A.sin_addr.s_addr); 
MessageBox(0,aa,"addr",0); 
i=connect(S,(struct sockaddr *) &A,sizeof(A)); 
sprintf(aa,"connect %d",i); 
abc(aa); 
if ( i == -1) 
{ 
H=gethostbyname("giasbm01.vsnl.net.in"); 
A.sin_addr.s_addr=*((unsigned long *) H->h_addr); 
i=connect(S,(struct sockaddr *) &A,sizeof(A)); 
sprintf(aa,"connect %d",i); 
abc(aa); 
} 
MessageBox(0,aa,"Connect",0); 
strset(R,' '); 
i=recv(S,R,10000,0); 
sprintf(aa,"recv %d R %s",i,R); 
abc(aa); 
MessageBox(0,aa,"Recv",0); 
strcpy(R,"HELO vijay.com\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d..R=%s ",i,R); 
abc(aa); 
MessageBox(0,aa,"Send Helo",0); 
strset(R,' '); 
i=recv(S,R,10000,0); 
sprintf(aa,"recv %d R %s",i,R); 
abc(aa); 
MessageBox(0,aa,"Recv on Helo",0); 
 
strcpy(R,"MAIL FROM:<"); 
strcat(R,ii); 
strcat(R,">\r\n"); 
sprintf(aa," %s",R); 
abc(aa); 
MessageBox(0,aa,"MAIL FROM",0); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"MAIL FROM %d",i); 
abc(aa); 
MessageBox(0,aa,"MAIL FROM",0); 
strset(R,' '); 
i=recv(S,R,10000,0); 
sprintf(aa,"recv %d R %s",i,R); 
abc(aa); 
MessageBox(0,aa,aa,0); 
strcpy(R,"RCPT TO:<"); 
strcat(R,bb); 
strcat(R,">\r\n"); 
MessageBox(0,R,"Recpt",0); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
strset(R,' '); 
i=recv(S,R,10000,0); 
sprintf(aa,"recv %d R %s",i,R); 
abc(aa); 
MessageBox(0,aa,aa,0); 
 
strcpy(R,"DATA\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
strset(R,' '); 
i=recv(S,R,10000,0); 
sprintf(aa,"recv %d R %s",i,R); 
abc(aa); 
MessageBox(0,aa,aa,0); 
 
strcpy(R,"To: aaa.com\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
MessageBox(0,aa,aa,0); 
 
strcpy(R,"FROM:"); 
strcat(R,ii); 
strcat(R,"\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
MessageBox(0,aa,aa,0); 
 
strcpy(R,"SUBJECT: "); 
strcat(R,ll); 
strcat(R,"\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
 
strcpy(R,"DATE: 10 Jan 95 13:24 PST\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
 
strcpy(R,"MESSAGE_ID: <123@e.com>\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
 
strcpy(R,kk); 
strcat(R,"\r\n"); 
MessageBox(0,R,R,0); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
 
strcpy(R,".\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
 
strcpy(R,"QUIT\r\n"); 
i=send(S,R,strlen(R),0); 
sprintf(aa,"send %d ",i); 
abc(aa); 
 
MessageBox(0,"all","over",0); 
} 
 
STDMETHODIMP  CielnkControl::put_Mode(BSTR val) 
{ 
MAKE_ANSIPTR_FROMWIDE(tempVal,val); 
lstrcpy(ii,tempVal); 
return S_OK; 
} 
STDMETHODIMP  CielnkControl::put_Hlink(BSTR val) 
{ 
MAKE_ANSIPTR_FROMWIDE(tempVal, val); 
lstrcpy(bb, tempVal); 
return S_OK; 
} 
 
 
STDMETHODIMP  CielnkControl::put_Ccopy(BSTR val) 
{ 
MAKE_ANSIPTR_FROMWIDE(tempVal,val); 
lstrcpy(jj,tempVal); 
return S_OK; 
} 
STDMETHODIMP  CielnkControl::put_Lett(BSTR val) 
{ 
MAKE_ANSIPTR_FROMWIDE(tempVal,val); 
lstrcpy(kk,tempVal); 
return S_OK; 
} 
STDMETHODIMP  CielnkControl::put_Subject(BSTR val) 
{ 
MAKE_ANSIPTR_FROMWIDE(tempVal,val); 
lstrcpy(ll,tempVal); 
return S_OK; 
} 
STDMETHODIMP  CielnkControl::put_host(BSTR val) 
{ 
MAKE_ANSIPTR_FROMWIDE(tempVal,val); 
lstrcpy(host,tempVal); 
return S_OK; 
}