|
|
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
В ОРС сервере (COM-сервер) реализован интерфейс IOPCDataCallback с уведомлением клиента о событиях через этот интерфейс, как реализовать обработку событий этого интерфейса на клиенте??? Описывал так Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Я так понимаю нужно IConnectionPointContainer как-то использовать. Может сцылка у кого есть по этому поводу??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 10:04 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
Забыл OnDataChange - один из методов интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 10:05 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
В спецификации по OPC серверу написано The notification mechanism is activated using the IconnectionPoint technology: 1) Get a pointer on the server IConnectionPointContainer interface (through the group ptr), Делаю так Код: plaintext we use the FindConnectionPoint method instead of the usual QueryInterface, Получаю Код: plaintext 3)In order to give it to the server, get a pointer on the Callback interface of this OPC client, 4) Give the client callback pointer to the server connection point and activate the notification mechanism using the Advise method of the IOPCDataCallback ConnectionPoint interface. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 10:28 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
http://www.compdoc.ru/prog/cpp/com/ch7/ch76.shtml ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 10:52 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
Petro123 Спасибо, но чего-то не получается: 1) Код: plaintext 1. 2. 3. 4. При программировании на Visual Basic можно объявить переменные, понимающие тип интерфейса обратного вызова А на VC++ 7 как??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 12:11 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
передаёшь указатель на себя, чтобы Там привели твой интерфейс к нужному m_pConsumer (думаю в документации к источнику события) и вызвали тебя Код: plaintext 1. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 13:08 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
,&dwCookie - твой адрес внутри сервера-издателя если "тебя подписали" ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 13:10 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
Petro123передаёшь указатель на себя Спасибо, только с этим-то я разобрался, но на что этот указатель должен ссылаться??? И мне не нужно вызывать, мне нужно подписаться и обработать этот вызов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 16:18 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
Проще говоря, я не могу понять что от меня хотя в этих строках 3) In order to give it to the server, get a pointer on the Callback interface of this OPC client ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 16:19 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
Какое имя (GUID) интерфейса у тебя должен поддерживать клиент (и методы) я не знаю. IMHO вряд ли здесь есть стандарты, т.к. события и параметры могут быть у каждого сервера какие угодно. Удачи! А у него нет библиотеки tlb с комментариями (может там и найдёшь описалово)? ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 16:49 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
tlb нету. Вот описание интерфейса Код: plaintext 1. 2. 3. 4. Код: 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. На клиенте я знаю как описать (1 топик обработчик), а вот как подключить его что-то не соображу, хотя вроде все по алгоритму выполняю... Может еще один h = pItDescret->QueryInterface(IID_IOPCDataCallback, (IOPCDataCallback**)&pNew); и его отправлять, только как будет связано с процедурой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 17:19 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
А может надо реализовать свой интерфейс, по типу Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 17:36 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
я С++ мало знаю, но на Delphi :) Код: plaintext 1. тебе придёт вызов OnDataChange(....... тока ты её хотя бы пустую пропиши на клиенте. Вроде так. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 18:08 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
если перед QueryInterface в Delphi ничего не пишется, то значит мы берём указатель на интерфейс от "самого себя" (Self). Какую ошибку то пишет? Удачи! ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 18:13 |
|
||
|
Как установить связь с COM сервером и обрабатывать события?
|
|||
|---|---|---|---|
|
#18+
Petro123Какую ошибку то пишет? Короче, от долгого копания в инете наткнулся на это Код: 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. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. Испльзовал этот класс так Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 19:13 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33667063&tid=2031526]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
157ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 453ms |

| 0 / 0 |
