Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Получение нестандартных полей (телефон,факс) из Windows Contacts -диалог Select Recipients
|
|||
|---|---|---|---|
|
#18+
Ну, собственно задача вызвать диалог стандартной виндовой адресной книги "Выбор получателей", вернуть набор этих получателей (в общем случае подразделяются на To,CC,BCC). Про каждого получателя надо знать имя, e-mail, но еще надо б телефон, факс (домашний,рабочий) и т.п. Начало рассуждений и картинки здесь: Доступ к адресной книге (контакты Windows) Я таки нашел как это делается: IAddrBook::Address Method И даже сварганил в итоге рабочий код, кот. полностью привожу ниже (на красоту кода не претендую, т.к. пишу на VB(6,.Net) но как-то так): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. Вопрос в чем: lppAdrList->aEntries[i].cValues всегда возвращает число 12 (количество возвращаемых полей в "контакте") PR_DISPLAY_NAME_A,PR_EMAIL_ADDRESS_A,PR_RECIPIENT_TYPE(т.е.To,CC,BCC) -возвращает без проблем, на MAPI не завязано - уже неплохо а вот PR_HOME_TELEPHONE_NUMBER_A, PR_HOME_FAX_NUMBER_A и им подобные - никак И неудивительно - в "контакте" не 12 полей, а гораздо больше. Так вот как мне получить "второстепенные" телефоны, факсы и прочее. М.б. кто когда-то копал эту кухню и знает как это сделать? Примеров в сети на эту тему что-то почти нету. Еще вопрос забегая вперед. Т.к. там интерфейсы а не API а у меня приложение VB.Net то воспроизвести это в лоб не прибегая к C/C++ видимо не смогу, поэтому придется видимо писать C-dll+API. Ну, минимальный опыт есть. В каком виде мне возвращать массив наборов recipients (может быть один, может несколько, может сотня - что выбрал в диалоге) {Имя;E-mail;To/CC/BCC;Телефон(?);Факс(?);...(?)} Чтоб потом его удобно достать из .Net? Количество элементов + массив структур неопределенной длины ByRef IntPtr? Еще б хорошо в Юникоде все оформить, но пока не получается. Сделал пока exe в 2005VC++EE -отработано, 2013-я рантаймов на других компах требует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 07:56 |
|
||
|
Получение нестандартных полей (телефон,факс) из Windows Contacts -диалог Select Recipients
|
|||
|---|---|---|---|
|
#18+
автора вот PR_HOME_TELEPHONE_NUMBER_A, PR_HOME_FAX_NUMBER_A и им подобные - никак Так вот как мне получить "второстепенные" телефоны, факсы и прочее. Накопал. Надо брать поле PR_ENTRYID и делать lpAdrBook->OpenEntry Вернется интерфейс IMailUser *lpMailUser Ему надо делать lpMailUser->GetProps Оттуда уже выкапывается PR_HOME_TELEPHONE_NUMBER, PR_HOME_FAX_NUMBER, PR_BUSINESS_TELEPHONE_NUMBER, PR_BUSINESS_FAX_NUMBER и любые другие поля (при их наличии). Ниже рабочий код в первом приближении. Осталось разобраться с Юникодом (Display Name в ANSI плохая идея). Ну и наверно засунуть все это в Dll чтоб пользовать API. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 19:47 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2018653]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 286ms |
| total: | 448ms |

| 0 / 0 |
