private int ReadContact(DAContentAccessDefinitions.CA_ITEM_ID UID, ref CADataDefinitions.CA_DATA_CONTACT dataContact) { int hOperHandle = 0; int iRet = DAContentAccess.CABeginOperation(m_hCurrentConnection, 0, ref hOperHandle); if (iRet != PCCSErrors.CONA_OK) { //PCCAPIUtils.ShowErrorMessage("CABeginOperation", iRet); //syncEngine.CancelSync(PCCAPIUtils.CONAError2String(iRet)); Dispatcher.Invoke(new SyncCancelEventHandler(owner.CancelSync), this, PCCAPIUtils.CONAError2String(iRet), null); } dataContact.iSize = Marshal.SizeOf(dataContact); dataContact.bPICount = 0; dataContact.pPIFields = IntPtr.Zero; dataContact.bAddressCount = 0; dataContact.pAddressFields = IntPtr.Zero; dataContact.bNumberCount = 0; dataContact.pNumberFields = IntPtr.Zero; dataContact.bGeneralCount = 0; dataContact.pGeneralFields = IntPtr.Zero; // Allocate memory for buffers IntPtr buffer = Marshal.AllocHGlobal(Marshal.SizeOf(UID)); Marshal.StructureToPtr(UID, buffer, true); UID.iSize = Marshal.SizeOf(typeof(DAContentAccessDefinitions.CA_ITEM_ID)); m_pContactBuffer = Marshal.AllocHGlobal(Marshal.SizeOf(dataContact)); Marshal.StructureToPtr(dataContact, m_pContactBuffer, true); iRet = DAContentAccess.CAReadItem(hOperHandle, buffer, DAContentAccessDefinitions.CA_OPTION_USE_CACHE, CADataDefinitions.CA_DATA_FORMAT_STRUCT, m_pContactBuffer); if (iRet == PCCSErrors.CONA_OK) { // Copy data from buffer dataContact = (CADataDefinitions.CA_DATA_CONTACT)Marshal.PtrToStructure(m_pContactBuffer, typeof(CADataDefinitions.CA_DATA_CONTACT)); } else { //PCCAPIUtils.ShowErrorMessage("CAReadItem", iRet); //syncEngine.CancelSync(PCCAPIUtils.CONAError2String(iRet)); Dispatcher.Invoke(new SyncCancelEventHandler(owner.CancelSync), this, PCCAPIUtils.CONAError2String(iRet), null); Marshal.FreeHGlobal(m_pContactBuffer); m_pContactBuffer = IntPtr.Zero; } Marshal.FreeHGlobal(buffer); int iResult = DAContentAccess.CAEndOperation(hOperHandle); if (iResult != PCCSErrors.CONA_OK) { //PCCAPIUtils.ShowErrorMessage("CAEndOperation", iResult); //syncEngine.CancelSync(PCCAPIUtils.CONAError2String(iRet)); Dispatcher.Invoke(new SyncCancelEventHandler(owner.CancelSync), this, PCCAPIUtils.CONAError2String(iRet), null); } return iRet; }
public void ReadNumbers(PIMNumbers n, CADataDefinitions.CA_DATA_ITEM pimData) { if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TEL) { n.Telephone.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TEL_HOME) { n.Home.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TEL_WORK) { n.Work.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TEL_PREF) { n.Preffered.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TEL_CAR) { n.Car.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TEL_DATA) { n.Data.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_MOBILE) { n.Mobile.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_MOBILE_HOME) { n.MobileHome.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_MOBILE_WORK) { n.MobileWork.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_PAGER) { n.Pager.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_FAX) { n.Fax.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_FAX_HOME) { n.FaxHome.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_FAX_WORK) { n.FaxWork.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_VIDEO) { n.Video.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_VIDEO_HOME) { n.VideoHome.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_VIDEO_WORK) { n.VideoWork.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_VOIP) { n.VoIP.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_VOIP_HOME) { n.VoIPHome.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_VOIP_WORK) { n.VoIPWork.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TEL_PREF) { n.Preffered.Add(Marshal.PtrToStringUni(pimData.pCustomData)); } }
public void ReadPersonalInfo(PIMPersonalInfo c, CADataDefinitions.CA_DATA_ITEM pimData) { if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_NAME) { c.Name = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_FN) { c.FirstName = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_MN) { c.MiddleName = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_LN) { c.LastName = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_TITLE) { c.Title = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_SUFFIX) { c.Suffix = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_COMPANY) { c.Company = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_JOB_TITLE) { c.JobTitle = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_BIRTHDAY) { } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_PICTURE) { } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_NICKNAME) { c.Nick = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_FORMAL_NAME) { c.FormalName = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_GIVEN_NAME_PRONUNCIATION) { c.GivenNamePronunciation = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_FAMILY_NAME_PRONUNCIATION) { c.FamilyNamePronunciation = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_COMPANY_NAME_PRONUNCIATION) { c.CompanyNamePronunciation = Marshal.PtrToStringUni(pimData.pCustomData); } }
public void ReadAddresses(PIMAddresses a, CADataDefinitions.CA_DATA_ITEM pimData) { CADataDefinitions.CA_DATA_POSTAL_ADDRESS postal; postal = (CADataDefinitions.CA_DATA_POSTAL_ADDRESS)Marshal.PtrToStructure(pimData.pCustomData, typeof(CADataDefinitions.CA_DATA_POSTAL_ADDRESS)); if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_POSTAL) { a.Postal = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_POSTAL_BUSINESS) { a.Business = Marshal.PtrToStringUni(pimData.pCustomData); } else if (pimData.iFieldSubType == CADataDefinitions.CA_FIELD_SUB_TYPE_POSTAL_PRIVATE) { a.Private = Marshal.PtrToStringUni(pimData.pCustomData); } a.City = postal.pstrCity; a.Country = postal.pstrCountry; a.POBox = postal.pstrPOBox; a.PostalCode = postal.pstrPostalCode; a.State = postal.pstrState; a.Street = postal.pstrStreet; }