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; }