Problem when building app with POOM
-
Dear all, I have a problem when building an application for Pocket PC using eVC 3.0 Here is some code:
hr = CLSIDFromProgID(POA_OBJECT, &clsid); if (FAILED(hr)) { AfxMessageBox(_T("Fail to load CLSID")); } else { hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IPOutlookApp, (LPVOID *) &(polApp)); if (FAILED(hr)) { err = GetLastError(); sprintf(str,"Fail to load CoCreateInstance %d",err); AfxMessageBox((CString)str); } }
I got error message:Linking... ImportFromPOOM.obj : error LNK2001: unresolved external symbol _IID_IPOlItems ImportFromPOOM.obj : error LNK2001: unresolved external symbol _IID_IPOutlookApp X86Dbg/TimeMAX.exe : fatal error LNK1120: 2 unresolved externals Error executing link.exe. Creating browse info file...
I try to find some answers on news groups and did following these guides by adding: #define INITGUID #include "pimstore.h" And when I insert this line #include "initguid.h" I got more error messagesLinking... ImportFromPOOM.obj : error LNK2005: _CLSID_Application already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Folder already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_CityItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_AppointmentItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_TaskItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_ContactItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Items already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Recipients already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Recipient already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_RecurrencePattern already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_TimeZone already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Exceptions already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Exception already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _LIBID_PocketOutlook already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _IID_IPOutlookApp already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _IID_IFolder already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _IID_ICity already defined in ChildView.obj
-
Dear all, I have a problem when building an application for Pocket PC using eVC 3.0 Here is some code:
hr = CLSIDFromProgID(POA_OBJECT, &clsid); if (FAILED(hr)) { AfxMessageBox(_T("Fail to load CLSID")); } else { hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IPOutlookApp, (LPVOID *) &(polApp)); if (FAILED(hr)) { err = GetLastError(); sprintf(str,"Fail to load CoCreateInstance %d",err); AfxMessageBox((CString)str); } }
I got error message:Linking... ImportFromPOOM.obj : error LNK2001: unresolved external symbol _IID_IPOlItems ImportFromPOOM.obj : error LNK2001: unresolved external symbol _IID_IPOutlookApp X86Dbg/TimeMAX.exe : fatal error LNK1120: 2 unresolved externals Error executing link.exe. Creating browse info file...
I try to find some answers on news groups and did following these guides by adding: #define INITGUID #include "pimstore.h" And when I insert this line #include "initguid.h" I got more error messagesLinking... ImportFromPOOM.obj : error LNK2005: _CLSID_Application already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Folder already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_CityItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_AppointmentItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_TaskItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_ContactItem already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Items already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Recipients already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Recipient already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_RecurrencePattern already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_TimeZone already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Exceptions already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _CLSID_Exception already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _LIBID_PocketOutlook already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _IID_IPOutlookApp already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _IID_IFolder already defined in ChildView.obj ImportFromPOOM.obj : error LNK2005: _IID_ICity already defined in ChildView.obj
I solve the problem by inserting the following lines at the top of the application's header file (I include it in other files as needed):
#include "resource.h" // main symbols
#include <comdef.h>
#include <pimstore.h>_COM_SMARTPTR_TYPEDEF(IPOutlookApp, __uuidof(IPOutlookApp));
_COM_SMARTPTR_TYPEDEF(IAppointment, __uuidof(IAppointment));
_COM_SMARTPTR_TYPEDEF(ITask, __uuidof(ITask));Then, on the application cpp file:
#include "stdafx.h"
#include "MainFrm.h"#include <initguid.h>
#include "Application.h"IPOutlookAppPtr g_pPoomApp;
The linker does not complain... Regards, João Paulo Figueira Embedded MVP