⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addrmapi.h

📁 这个是微软WINCE的OBEX协议例子
💻 H
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*++


Module Name:

    addrmapi.h

Purpose:

    List of properties used in the address book database.

--*/

#ifndef _ADDRMAPI_
#define _ADDRMAPI_

#ifndef HHPR_TAG_ONLY

// Here are the MAPI property types, taken from MAPIDEFS.H.
#define MV_FLAG         0x1000                                                  // multi-value flag
#define PT_UNSPECIFIED  ((ULONG)  0)  // (reserved for interface use) type doesn't matter to caller
#define PT_NULL         ((ULONG)  1)                                         // NULL property value
#define PT_I2           ((ULONG)  2)                                         // signed 16-bit value
#define PT_LONG         ((ULONG)  3)                                         // signed 32-bit value
#define PT_R4           ((ULONG)  4)                                       // 4-byte floating point
#define PT_DOUBLE       ((ULONG)  5)                                       // floating point double
#define PT_CURRENCY     ((ULONG)  6) // signed 64-bit int (decimal w/ 4 digits right of decimal pt)
#define PT_APPTIME      ((ULONG)  7)                                            // application time
#define PT_ERROR        ((ULONG) 10)                                          // 32-bit error value
// our store doesn't understand PT_BOOLEAN
//#define PT_BOOLEAN      ((ULONG) 11)                              // 16-bit boolean (non-zero true)
#define PT_OBJECT       ((ULONG) 13)                               // embedded object in a property
#define PT_I8           ((ULONG) 20)                                       // 8-byte signed integer
#define PT_STRING8      ((ULONG) 30)                      // null terminated 8-bit character string
#define PT_UNICODE      ((ULONG) 31)                              // null terminated Unicode string
#define PT_SYSTIME      ((ULONG) 64) // FILETIME 64-bit int (num of 100ns periods since Jan 1,1601)
#define PT_CLSID        ((ULONG) 72)                                                    // OLE GUID
#define PT_BINARY       ((ULONG) 258)                         // uninterpreted (counted byte array)

// Alternate property type names for ease of use.
#define PT_BOOLEAN  PT_I2
#define PT_SHORT    PT_I2
#define PT_I4       PT_LONG
#define PT_FLOAT    PT_R4
#define PT_R8       PT_DOUBLE
#define PT_LONGLONG PT_I8

// Property Tags.  By convention, MAPI never uses 0 or FFFF as a property ID.  Use as null values,
// initializers, sentinels, or what have you.
#define PROP_TYPE_MASK        ((ULONG)0x0000FFFF)  /* Mask for Property type */
#define PROP_TYPE(ulPropTag)  (((ULONG)(ulPropTag))&PROP_TYPE_MASK)
#define PROP_ID(ulPropTag)    (((ULONG)(ulPropTag))>>16)
#define PROP_TAG(ulPropType,ulPropID)  ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
#define PROP_ID_NULL       0
#define PROP_ID_INVALID       0xFFFF
#define PR_NULL               PROP_TAG( PT_NULL, PROP_ID_NULL)
#define CHANGE_PROP_TYPE(ulPropTag, ulPropType) (((ULONG)0xFFFF0000 & ulPropTag) | ulPropType)

// Here are properties defined by MAPI, taken from MAPITAGS.H.
#define PR_BODY_W                             PROP_TAG( PT_UNICODE,   0x1000)
#define PR_BUSINESS_FAX_NUMBER_W              PROP_TAG( PT_UNICODE,   0x3A24)
#define PR_BUSINESS_TELEPHONE_NUMBER_W        PROP_TAG( PT_UNICODE,   0x3A08)
#define PR_CALLBACK_TELEPHONE_NUMBER_W        PROP_TAG( PT_UNICODE,   0x3A02)
#define PR_CAR_TELEPHONE_NUMBER_W             PROP_TAG( PT_UNICODE,   0x3A1E)

#define PR_COMPANY_NAME_W                     PROP_TAG( PT_UNICODE,   0x3A16)
#define PR_YOMI_COMPANY_W                     PROP_TAG( PT_UNICODE,   0x4012)

#define PR_CONTENT_UNREAD                     PROP_TAG( PT_LONG,      0x3603)
#define PR_CREATION_TIME                      PROP_TAG( PT_SYSTIME,   0x3007)
#define PR_DEPARTMENT_NAME_W                  PROP_TAG( PT_UNICODE,   0x3A18)
#define PR_DISPLAY_BCC_W                      PROP_TAG( PT_UNICODE,   0x0E02)
#define PR_DISPLAY_CC_W                       PROP_TAG( PT_UNICODE,   0x0E03)
#define PR_DISPLAY_TO_W                       PROP_TAG( PT_UNICODE,   0x0E04)
#define PR_GENERATION_W                       PROP_TAG( PT_UNICODE,   0x3A05)
#define PR_GIVEN_NAME_W                       PROP_TAG( PT_UNICODE,   0x3A06)
#define PR_YOMI_FIRSTNAME_W                   PROP_TAG( PT_UNICODE,   0x4011)

#define PR_GOVERNMENT_ID_NUMBER_W             PROP_TAG( PT_UNICODE,   0x3A07)
#define PR_HOME2_TELEPHONE_NUMBER_W           PROP_TAG( PT_UNICODE,   0x3A2F)
#define PR_HOME_FAX_NUMBER_W                  PROP_TAG( PT_UNICODE,   0x3A25)
#define PR_HOME_TELEPHONE_NUMBER_W            PROP_TAG( PT_UNICODE,   0x3A09)
#define PR_IMPORTANCE                         PROP_TAG( PT_LONG,      0x0017)
#define PR_KEYWORD_W                          PROP_TAG( PT_UNICODE,   0x3A0B)
#define PR_LAST_MODIFICATION_TIME             PROP_TAG( PT_SYSTIME,   0x3008)
#define PR_MESSAGE_DELIVERY_TIME              PROP_TAG( PT_SYSTIME,   0x0E06)
#define PR_MESSAGE_FLAGS                      PROP_TAG( PT_LONG,      0x0E07)
#define PR_MESSAGE_SIZE                       PROP_TAG( PT_LONG,      0x0E08)
#define PR_MOBILE_TELEPHONE_NUMBER_W          PROP_TAG( PT_UNICODE,   0x3A1C)
#define PR_CELLULAR_TELEPHONE_NUMBER_W        PR_MOBILE_TELEPHONE_NUMBER_W
#define PR_RADIO_TELEPHONE_NUMBER_W           PROP_TAG( PT_UNICODE,   0x3A1D)
#define PR_OFFICE_LOCATION_W                  PROP_TAG( PT_UNICODE,   0x3A19)
#define PR_OFFICE_TELEPHONE_NUMBER_W          PR_BUSINESS_TELEPHONE_NUMBER_W
#define PR_OTHER_TELEPHONE_NUMBER_W           PROP_TAG( PT_UNICODE,   0x3A1F)
#define PR_PRIMARY_FAX_NUMBER_W               PROP_TAG( PT_UNICODE,   0x3A23)
#define PR_PRIMARY_TELEPHONE_NUMBER_W         PROP_TAG( PT_UNICODE,   0x3A1A)
#define PR_PRIORITY                           PROP_TAG( PT_LONG,      0x0026)
#define PR_REPLY_RECIPIENT_NAMES_W            PROP_TAG( PT_UNICODE,   0x0050)
#define PR_REPLY_REQUESTED                    PROP_TAG( PT_BOOLEAN,   0x0C17)
#define PR_REPLY_TIME                         PROP_TAG( PT_SYSTIME,   0x0030)
#define PR_RESPONSE_REQUESTED                 PROP_TAG( PT_BOOLEAN,   0x0063)
#define PR_SECURITY                           PROP_TAG( PT_LONG,      0x0034)
#define PR_SENSITIVITY                        PROP_TAG( PT_LONG,      0x0036)
#define PR_SUBJECT_W                          PROP_TAG( PT_UNICODE,   0x0037)
#define PR_SURNAME_W                          PROP_TAG( PT_UNICODE,   0x3A11)
#define PR_YOMI_LASTNAME_W                    PROP_TAG( PT_UNICODE,   0x4010)

#define PR_TELEX_NUMBER_W                     PROP_TAG( PT_UNICODE,   0x3A2C)
#define PR_TITLE_W                            PROP_TAG( PT_UNICODE,   0x3A17)

#endif  // HHPR_TAG_ONLY

// Here are our property tags.  Note that we use the MAPI tags when they are defined, otherwise we
// use the MAPI dispid's, which are store-specific.  The numbers used here (8xxx) were obtained by
// examining the MAPI database entries created by Ren.  For these we rely on replication to do the
// appropriate conversions.  Note also that we use the _W form of their string properties, as we
// are a unicode system.  Your mileage may vary.

typedef ULONG HHPRTAG;                                                    // this is a property tag

// Please do NOT use PT_BOOLEAN, use CEVT_I2 instead. because this file is shared by both
// pegasus and desktop (which uses MAPI with a different valued PT_BOOLEAN) replication.

#define HHPR_ANNIVERSARY                      PROP_TAG(PT_SYSTIME, 0x4003)
#define HHPR_ASSISTANT_NAME                   PROP_TAG(PT_UNICODE, 0x4002)
#define HHPR_ASSISTANT_TELEPHONE_NUMBER       PROP_TAG(PT_UNICODE, 0x4004)
#define HHPR_BIRTHDAY                         PROP_TAG(PT_SYSTIME, 0x4001)
#define HHPR_BUSINESS_FAX_NUMBER              PR_BUSINESS_FAX_NUMBER_W
#define HHPR_CAR_TELEPHONE_NUMBER             PR_CAR_TELEPHONE_NUMBER_W
#define HHPR_CATEGORY                         PROP_TAG(PT_UNICODE, 0x4005)
#define HHPR_CHILDREN_NAME                    PROP_TAG(PT_UNICODE, 0x4006)
#define HHPR_COMPANY_NAME                     PR_COMPANY_NAME_W
#define HHPR_FILE_AS                          PROP_TAG(PT_UNICODE, 0x4013)
#define HHPR_YOMI_COMPANY                     PR_YOMI_COMPANY_W
#define HHPR_CUSTOM_DISPLAY_FIELDS            PROP_TAG(PT_UNICODE, 0x4317)  //$$BUGBUG -- this should stay 4317, not 8317
// 10 so far
#define HHPR_DEPARTMENT_NAME                  PR_DEPARTMENT_NAME_W
#define HHPR_EMAIL1_EMAIL_ADDRESS             PROP_TAG(PT_UNICODE, 0x4083)
#define HHPR_EMAIL2_EMAIL_ADDRESS             PROP_TAG(PT_UNICODE, 0x4093)
#define HHPR_EMAIL3_EMAIL_ADDRESS             PROP_TAG(PT_UNICODE, 0x40A3)
#define HHPR_GENERATION                       PR_GENERATION_W
#define HHPR_GIVEN_NAME                       PR_GIVEN_NAME_W
#define HHPR_YOMI_FIRSTNAME                   PR_YOMI_FIRSTNAME_W

#define HHPR_HOME2_TELEPHONE_NUMBER           PR_HOME2_TELEPHONE_NUMBER_W
#define HHPR_HOME_ADDRESS_CITY                PROP_TAG(PT_UNICODE, 0x4041)
#define HHPR_HOME_ADDRESS_COUNTRY             PROP_TAG(PT_UNICODE, 0x4044)
#define HHPR_HOME_ADDRESS_POSTAL_CODE         PROP_TAG(PT_UNICODE, 0x4043)
// 20 so far
#define HHPR_HOME_ADDRESS_STATE               PROP_TAG(PT_UNICODE, 0x4042)
#define HHPR_HOME_ADDRESS_STREET              PROP_TAG(PT_UNICODE, 0x4040)
#define HHPR_HOME_FAX_NUMBER                  PR_HOME_FAX_NUMBER_W
#define HHPR_HOME_TELEPHONE_NUMBER            PR_HOME_TELEPHONE_NUMBER_W
#define HHPR_MIDDLE_NAME                      PROP_TAG(PT_UNICODE, 0x4024)
#define HHPR_MOBILE_TELEPHONE_NUMBER          PR_MOBILE_TELEPHONE_NUMBER_W
#define HHPR_NAME_PREFIX                      PROP_TAG(PT_UNICODE, 0x4023)
#define HHPR_NOTES                            PR_BODY_W
#define HHPR_OFFICE_ADDRESS_CITY              PROP_TAG(PT_UNICODE, 0x4046)
#define HHPR_OFFICE_ADDRESS_COUNTRY           PROP_TAG(PT_UNICODE, 0x4049)
// 30 so far
#define HHPR_OFFICE_ADDRESS_POSTAL_CODE       PROP_TAG(PT_UNICODE, 0x4048)
#define HHPR_OFFICE_ADDRESS_STATE             PROP_TAG(PT_UNICODE, 0x4047)
#define HHPR_OFFICE_ADDRESS_STREET            PROP_TAG(PT_UNICODE, 0x4045)
#define HHPR_OFFICE_LOCATION                  PR_OFFICE_LOCATION_W
#define HHPR_OFFICE_TELEPHONE_NUMBER          PR_OFFICE_TELEPHONE_NUMBER_W
#define HHPR_OFFICE2_TELEPHONE_NUMBER         PROP_TAG(PT_UNICODE, 0x4007)
#define HHPR_OTHER_ADDRESS_CITY               PROP_TAG(PT_UNICODE, 0x404B)
#define HHPR_OTHER_ADDRESS_COUNTRY            PROP_TAG(PT_UNICODE, 0x404E)
#define HHPR_OTHER_ADDRESS_POSTAL_CODE        PROP_TAG(PT_UNICODE, 0x404D)
#define HHPR_OTHER_ADDRESS_STATE              PROP_TAG(PT_UNICODE, 0x404C)
// 40 so far
#define HHPR_OTHER_ADDRESS_STREET             PROP_TAG(PT_UNICODE, 0x404A)
#define HHPR_PAGER_NUMBER                     PROP_TAG(PT_UNICODE, 0x4009)
#define HHPR_SPOUSE_NAME                      PROP_TAG(PT_UNICODE, 0x400a)
#define HHPR_SURNAME                          PR_SURNAME_W
#define HHPR_YOMI_LASTNAME                    PR_YOMI_LASTNAME_W
#define HHPR_TITLE                            PR_TITLE_W
#define HHPR_WEB_PAGE                         PROP_TAG(PT_UNICODE, 0x4008)
#define PR_CELLULAR_TELEPHONE_NUMBER_W        PR_MOBILE_TELEPHONE_NUMBER_W

#define HHPR_YOMI_SORT                        PROP_TAG(PT_UNICODE, 0x8318)
#define HHPR_YOMICOMPANY_SORT                 PROP_TAG(PT_UNICODE, 0x8320)

// How many address card properties were there?
#define HHAB_CARD_NUMPROPS          46

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -