Sorry, thats not my project.  Never heard of it.

-Robert

> -----Original Message-----
> From: Dai Jin [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, May 23, 2001 5:24 PM
> To: [EMAIL PROTECTED]
> Subject: Re: RE: [JDEV] JabberCOM c++ sample
> 
> 
> Hello, Robert Temple,
> 
>     I have imitated your jabbin project. When i inherit from 
> a CDocument
> class, it run. But when i inherit from a CDialog class, it can't run.
> Can u give me some help?
> 
> Best Regard,
> Jim
> 
> 
> // JabberDlg.cpp : implementation file
> //
> 
> #include "stdafx.h"
> #include "Jabber.h"
> #include "JabberDlg.h"
> 
> #ifdef _DEBUG
> #define new DEBUG_NEW
> #undef THIS_FILE
> static char THIS_FILE[] = __FILE__;
> #endif
> 
> #define MIN_TRACK_WIDTH                               120
> #define MIN_TRACK_LENGTH                      180
> 
> //////////////////////////////////////////////////////////////
> ///////////////
> // CAboutDlg dialog used for App About
> 
> class CAboutDlg : public CDialog
> {
> public:
>       CAboutDlg();
> 
> // Dialog Data
>       //{{AFX_DATA(CAboutDlg)
>       enum { IDD = IDD_ABOUTBOX };
>       //}}AFX_DATA
> 
>       // ClassWizard generated virtual function overrides
>       //{{AFX_VIRTUAL(CAboutDlg)
>       protected:
>       virtual void DoDataExchange(CDataExchange* pDX);    // 
> DDX/DDV support
>       //}}AFX_VIRTUAL
> 
> // Implementation
> protected:
>       //{{AFX_MSG(CAboutDlg)
>       //}}AFX_MSG
>       DECLARE_MESSAGE_MAP()
> };
> 
> CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
> {
>       //{{AFX_DATA_INIT(CAboutDlg)
>       //}}AFX_DATA_INIT
> }
> 
> void CAboutDlg::DoDataExchange(CDataExchange* pDX)
> {
>       CDialog::DoDataExchange(pDX);
>       //{{AFX_DATA_MAP(CAboutDlg)
>       //}}AFX_DATA_MAP
> }
> 
> BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
>       //{{AFX_MSG_MAP(CAboutDlg)
>               // No message handlers
>       //}}AFX_MSG_MAP
> END_MESSAGE_MAP()
> 
> //////////////////////////////////////////////////////////////
> ///////////////
> // CJabberDlg dialog
> 
> CJabberDlg::CJabberDlg(CWnd* pParent /*=NULL*/)
>       : CDialog(CJabberDlg::IDD, pParent)
> {
>       //{{AFX_DATA_INIT(CJabberDlg)
>               // NOTE: the ClassWizard will add member 
> initialization here
>       //}}AFX_DATA_INIT
>       // Note that LoadIcon does not require a subsequent 
> DestroyIcon in Win32
>       m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
> 
>       HRESULT hr = CoInitialize(NULL);
>       ASSERT(SUCCEEDED(hr));
> 
>       hr = spJabberSession.CreateInstance(__uuidof(JabberSession));
>       ASSERT(SUCCEEDED(hr));
> 
>       // ����Jabber������
>       ConnectSink();
> }
> 
> void CJabberDlg::DoDataExchange(CDataExchange* pDX)
> {
>       CDialog::DoDataExchange(pDX);
>       //{{AFX_DATA_MAP(CJabberDlg)
>               // NOTE: the ClassWizard will add DDX and DDV calls here
>       //}}AFX_DATA_MAP
> }
> 
> BEGIN_DISPATCH_MAP(CJabberDlg, CDialog)
>       //{{AFX_DISPATCH_MAP(CJabberDlg)
>       DISP_FUNCTION(CJabberDlg, "OnConnect",               
> OnConnect,               VT_EMPTY, VTS_NONE)
>       DISP_FUNCTION(CJabberDlg, "OnDisconnect",            
> OnDisconnect,            VT_EMPTY, VTS_NONE)
>       DISP_FUNCTION(CJabberDlg, "OnAuthError",             
> OnAuthError,             VT_EMPTY, VTS_BSTR)
>       DISP_FUNCTION(CJabberDlg, "OnCommError",             
> OnCommError,             VT_EMPTY, VTS_BSTR)
>       DISP_FUNCTION(CJabberDlg, "OnQueryError",            
> OnQueryError,            VT_EMPTY, VTS_BSTR VTS_BSTR VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnRosterStart",           
> OnRosterStart,           VT_EMPTY, VTS_NONE)
>       DISP_FUNCTION(CJabberDlg, "OnRosterItem",            
> OnRosterItem,            VT_EMPTY, VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnRosterEnd",             
> OnRosterEnd,             VT_EMPTY, VTS_NONE)
>       DISP_FUNCTION(CJabberDlg, "OnMessage",               
> OnMessage,               VT_EMPTY, VTS_DISPATCH VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnPresence",              
> OnPresence,              VT_EMPTY, VTS_BSTR VTS_BOOL VTS_BSTR 
> VTS_BOOL VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnSubscriptionRequest",   
> OnSubscriptionRequest,   VT_EMPTY, VTS_BSTR VTS_BSTR VTS_BSTR)
>       DISP_FUNCTION(CJabberDlg, "OnSubscriptionApproved",  
> OnSubscriptionApproved,  VT_EMPTY, VTS_BSTR VTS_BSTR)
>       DISP_FUNCTION(CJabberDlg, "OnSubscriptionDenied",    
> OnSubscriptionDenied,    VT_EMPTY, VTS_BSTR VTS_BSTR)
>       DISP_FUNCTION(CJabberDlg, "OnXML",                   
> OnXML,                   VT_EMPTY, VTS_I4 VTS_BSTR)
>       DISP_FUNCTION(CJabberDlg, "OnJabberIQ",              
> OnJabberIQ,              VT_EMPTY, VTS_BSTR VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnUnhandledQuery",        
> OnUnhandledQuery,        VT_EMPTY, VTS_BSTR VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnAgentsStart",           
> OnAgentsStart,           VT_EMPTY, VTS_NONE)
>       DISP_FUNCTION(CJabberDlg, "OnAgentItem",             
> OnAgentItem,             VT_EMPTY, VTS_DISPATCH VTS_BSTR)
>       DISP_FUNCTION(CJabberDlg, "OnAgentsEnd",             
> OnAgentsEnd,             VT_EMPTY, VTS_NONE)
>       DISP_FUNCTION(CJabberDlg, "OnXMLTag",                
> OnXMLTag,                VT_EMPTY, VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnVersionGet",            
> OnVersionGet,            VT_EMPTY, VTS_BSTR VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnTimeGet",               
> OnTimeGet,               VT_EMPTY, VTS_BSTR VTS_DISPATCH)
>       DISP_FUNCTION(CJabberDlg, "OnGetOOB",                
> OnGetOOB,                VT_EMPTY, VTS_BSTR VTS_BSTR VTS_BSTR 
> VTS_DISPATCH)
>       //}}AFX_DISPATCH_MAP
> END_DISPATCH_MAP()
> 
> BEGIN_INTERFACE_MAP(CJabberDlg, CDialog)
>       INTERFACE_PART(CJabberDlg, 
> __uuidof(IJabberSessionEvents), Dispatch)
> END_INTERFACE_MAP()
> 
> BEGIN_MESSAGE_MAP(CJabberDlg, CDialog)
>       //{{AFX_MSG_MAP(CJabberDlg)
>       ON_WM_SYSCOMMAND()
>       ON_WM_PAINT()
>       ON_WM_QUERYDRAGICON()
>       ON_WM_GETMINMAXINFO()
>       ON_WM_CLOSE()
>       //}}AFX_MSG_MAP
> END_MESSAGE_MAP()
> 
> //////////////////////////////////////////////////////////////
> ///////////////
> // CJabberDlg message handlers
> 
> BOOL CJabberDlg::OnInitDialog()
> {
>       CDialog::OnInitDialog();
> 
>       // Add "About..." menu item to system menu.
> 
>       // IDM_ABOUTBOX must be in the system command range.
>       ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
>       ASSERT(IDM_ABOUTBOX < 0xF000);
> 
>       CMenu* pSysMenu = GetSystemMenu(FALSE);
>       if (pSysMenu != NULL)
>       {
>               CString strAboutMenu;
>               strAboutMenu.LoadString(IDS_ABOUTBOX);
>               if (!strAboutMenu.IsEmpty())
>               {
>                       pSysMenu->AppendMenu(MF_SEPARATOR);
>                       pSysMenu->AppendMenu(MF_STRING, 
> IDM_ABOUTBOX, strAboutMenu);
>               }
>       }
> 
>       // Set the icon for this dialog.  The framework does 
> this automatically
>       //  when the application's main window is not a dialog
>       SetIcon(m_hIcon, TRUE);                 // Set big icon
>       SetIcon(m_hIcon, FALSE);                // Set small icon
>       
>       // TODO: Add extra initialization here
>       m_sJabberID = m_sUsername + '@' + m_sServer;
> 
>       Connect();
> 
>       return TRUE;  // return TRUE  unless you set the focus 
> to a control
> }
> 
> void CJabberDlg::OnSysCommand(UINT nID, LPARAM lParam)
> {
>       if ((nID & 0xFFF0) == IDM_ABOUTBOX)
>       {
>               CAboutDlg dlgAbout;
>               dlgAbout.DoModal();
>       }
>       else
>       {
>               CDialog::OnSysCommand(nID, lParam);
>       }
> }
> 
> // If you add a minimize button to your dialog, you will need 
> the code below
> //  to draw the icon.  For MFC applications using the 
> document/view model,
> //  this is automatically done for you by the framework.
> 
> void CJabberDlg::OnPaint() 
> {
>       if (IsIconic())
>       {
>               CPaintDC dc(this); // device context for painting
> 
>               SendMessage(WM_ICONERASEBKGND, (WPARAM) 
> dc.GetSafeHdc(), 0);
> 
>               // Center icon in client rectangle
>               int cxIcon = GetSystemMetrics(SM_CXICON);
>               int cyIcon = GetSystemMetrics(SM_CYICON);
>               CRect rect;
>               GetClientRect(&rect);
>               int x = (rect.Width() - cxIcon + 1) / 2;
>               int y = (rect.Height() - cyIcon + 1) / 2;
> 
>               // Draw the icon
>               dc.DrawIcon(x, y, m_hIcon);
>       }
>       else
>       {
>               CDialog::OnPaint();
>       }
> }
> 
> // The system calls this to obtain the cursor to display 
> while the user drags
> //  the minimized window.
> HCURSOR CJabberDlg::OnQueryDragIcon()
> {
>       return (HCURSOR) m_hIcon;
> }
> 
> void CJabberDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
> {
>       // TODO: Add your message handler code here and/or call default
>       lpMMI->ptMinTrackSize.x = MIN_TRACK_WIDTH;
>       lpMMI->ptMinTrackSize.y = MIN_TRACK_LENGTH;
>       
>       CDialog::OnGetMinMaxInfo(lpMMI);
> }
> 
> BOOL CJabberDlg::PreTranslateMessage(MSG* pMsg) 
> {
>       // TODO: Add your specialized code here and/or call the 
> base class
>       if ((pMsg->message == WM_KEYDOWN) && 
>               (pMsg->wParam == VK_RETURN || pMsg->wParam == 
> VK_ESCAPE))
>       {
>               return TRUE;
>       }
>       
>       return CDialog::PreTranslateMessage(pMsg);
> }
> 
> void CJabberDlg::ConnectSink()
> {
>       // �õ�JabberSession�����IDispatch�ӿ�ָ��
>       IUnknown* pUnkSink = GetIDispatch(FALSE);
>       // ���¼���������������
>       BOOL bSucceed = AfxConnectionAdvise(spJabberSession, 
>                                                               
>               __uuidof(IJabberSessionEvents), 
>                                                               
>               pUnkSink, FALSE, &m_dwCookie);
>       ASSERT(bSucceed);
> }
> 
> void CJabberDlg::DisConnectSink()
> {
>       // �õ�JabberSession�����IDispatch�ӿ�ָ��
>       IUnknown* pUnkSink = GetIDispatch(FALSE);
>       // ���¼���������������
>       BOOL bSucceed = AfxConnectionUnadvise(spJabberSession,
>                                                               
>                 __uuidof(IJabberSessionEvents),
>                                                               
>                 pUnkSink, FALSE, m_dwCookie);
>       ASSERT(bSucceed);
> }
> 
> void CJabberDlg::OnConnect()
> {
>       MessageBox("OK");
> }
> 
> void CJabberDlg::OnDisconnect()
> {
> }
> 
> void CJabberDlg::OnAuthError(LPSTR pTxt)
> {
> }
> 
> void CJabberDlg::OnCommError(LPSTR PTxt)
> {
> }
> 
> void CJabberDlg::OnQueryError(LPSTR PTxt, LPSTR fromjid, 
> IXMLTagPtr tag)
> {
> }
> 
> void CJabberDlg::OnRosterStart()
> {
> }
> 
> void CJabberDlg::OnRosterItem(IJabberRosterItemPtr item)
> {
> }
> 
> void CJabberDlg::OnRosterEnd()
> {
> }
> 
> void CJabberDlg::OnMessage(IJabberMsgPtr msg, IXMLTagPtr tag)
> {
> }
> 
> void CJabberDlg::OnPresence(LPSTR presJID, BOOL available, 
> LPSTR status, BOOL inRoster, IXMLTagPtr tag)
> {
> }
> 
> void CJabberDlg::OnSubscriptionRequest(LPSTR fromJID, LPSTR 
> subType, LPSTR status)
> {
> }
> 
> void CJabberDlg::OnSubscriptionApproved(LPSTR fromJID, LPSTR status)
> {
> }
> 
> void CJabberDlg::OnSubscriptionDenied(LPSTR fromJID, LPSTR status)
> {
> }
> 
> void CJabberDlg::OnXML(long direction, LPSTR txt)
> {
> }
> 
> void CJabberDlg::OnJabberIQ(LPSTR nameSpace, IJabberIQPtr iq)
> {
> }
> 
> void CJabberDlg::OnUnhandledQuery(LPSTR nameSpace, IXMLTagPtr tag)
> {
> }
> 
> void CJabberDlg::OnAgentsStart()
> {
> }
> 
> void CJabberDlg::OnAgentItem(IJabberAgentItemPtr agent, LPSTR iqID)
> {
> }
> 
> void CJabberDlg::OnAgentsEnd()
> {
> }
> 
> void CJabberDlg::OnXMLTag(IXMLTagPtr Tag)
> {
> }
> 
> void CJabberDlg::OnVersionGet(LPSTR fromJID, IXMLTagPtr Tag)
> {
> }
> 
> void CJabberDlg::OnTimeGet(LPSTR fromJID, IXMLTagPtr Tag)
> {
> }
> 
> void CJabberDlg::OnGetOOB(LPSTR fromJID, LPSTR URL, LPSTR 
> Desc, IXMLTagPtr Tag)
> {
> }
> 
> void CJabberDlg::OnClose() 
> {
>       // TODO: Add your message handler code here and/or call default
>       DisConnectSink();
>       DisConnect();
> 
>       CoUninitialize();
> 
>       CDialog::OnClose();
> }
> 
> void CJabberDlg::Connect()
> {
>       spJabberSession->PutPassword((LPCSTR)m_sUsername);
>       spJabberSession->PutPassword((LPCSTR)m_sPassword);
>       spJabberSession->PutServer((LPCSTR)m_sServer);
>       spJabberSession->PutPort(5222);
>       spJabberSession->DoConnect(VARIANT_FALSE, jatDigest);
> }
> 
> void CJabberDlg::DisConnect()
> {
>       spJabberSession->PutAvailable(VARIANT_FALSE);
>       spJabberSession->DoDisconnect(VARIANT_FALSE);
> }
> 
> 
> 
>             Dai Jin
>             [EMAIL PROTECTED]
> 
> _______________________________________________
> jdev mailing list
> [EMAIL PROTECTED]
> http://mailman.jabber.org/listinfo/jdev
> 
_______________________________________________
jdev mailing list
[EMAIL PROTECTED]
http://mailman.jabber.org/listinfo/jdev

Reply via email to