transactd 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA +46 -67
  3. data/BUILD_WIN-JA +106 -63
  4. data/CMakeLists.txt +40 -15
  5. data/README +219 -75
  6. data/README-JA +207 -76
  7. data/README_ORMSRCGEN +118 -0
  8. data/README_ORMSRCGEN-JA +115 -0
  9. data/bin/common/tdclc_32_2_0.dll +0 -0
  10. data/bin/common/tdclc_64_2_0.dll +0 -0
  11. data/build/common/check_for_link_iconv.cmake +18 -14
  12. data/build/common/create_symlink.cmake.in +25 -0
  13. data/build/common/get_boost_libs.cmake +23 -23
  14. data/build/common/options.cmake +0 -66
  15. data/build/common/smart_install.cmake +3 -3
  16. data/build/common/transactd.rc.in +15 -5
  17. data/build/common/transactd_cl_common.cmake +37 -18
  18. data/build/common/transactd_cl_output.cmake +55 -13
  19. data/build/common/transactd_common.cmake +108 -31
  20. data/build/swig/php/generate.cmake.in +15 -17
  21. data/build/swig/php/generate.cmd.in +15 -9
  22. data/build/swig/php/php.swg +124 -82
  23. data/build/swig/php/transactd.no_yield.php +4494 -0
  24. data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
  25. data/build/swig/php/transactd.no_yield.php.patch +685 -0
  26. data/build/swig/php/transactd.yield.php +4461 -0
  27. data/build/swig/php/transactd.yield.php.git.patch +652 -0
  28. data/build/swig/php/transactd.yield.php.patch +652 -0
  29. data/build/swig/referencecounter.h +79 -0
  30. data/build/swig/ruby/ruby.swg +226 -76
  31. data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
  32. data/build/swig/ruby/without_gvl.swg +87 -0
  33. data/build/swig/tdcl.i +659 -170
  34. data/build/swig/validatablepointer.h +91 -0
  35. data/build/tdclc/CMakeLists.txt +49 -34
  36. data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
  37. data/build/tdclc/tdclc.rc +0 -0
  38. data/build/tdclcpp/CMakeLists.txt +84 -20
  39. data/build/tdclcpp/tdclcpp.rc +0 -0
  40. data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
  41. data/build/tdclrb/CMakeLists.txt +84 -66
  42. data/build/tdclrb/bldgem/extconf.rb +28 -3
  43. data/build/tdclrb/gem/helper.rb +11 -1
  44. data/build/tdclrb/gem_output.cmake +20 -16
  45. data/index_ja.html +15 -0
  46. data/source/bzs/db/IBlobBuffer.h +15 -17
  47. data/source/bzs/db/blobBuffer.h +186 -140
  48. data/source/bzs/db/blobStructs.h +37 -37
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
  50. data/source/bzs/db/engine/mysql/bookmark.h +150 -147
  51. data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
  52. data/source/bzs/db/engine/mysql/database.h +608 -370
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
  54. data/source/bzs/db/engine/mysql/dbManager.h +115 -104
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
  56. data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
  63. data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
  64. data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
  68. data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
  69. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
  70. data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
  71. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
  72. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
  73. data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
  74. data/source/bzs/db/protocol/tdap/client/client.h +361 -320
  75. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
  76. data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
  77. data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
  78. data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
  79. data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
  80. data/source/bzs/db/protocol/tdap/client/database.h +141 -118
  81. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
  82. data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
  83. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
  84. data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
  85. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
  86. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
  87. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
  88. data/source/bzs/db/protocol/tdap/client/export.h +35 -0
  89. data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
  90. data/source/bzs/db/protocol/tdap/client/field.h +393 -0
  91. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
  92. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
  93. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
  94. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
  95. data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
  96. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
  97. data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
  98. data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
  99. data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
  100. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
  101. data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
  102. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
  103. data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
  104. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
  105. data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
  106. data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
  107. data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
  108. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
  109. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
  110. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
  111. data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
  112. data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
  113. data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
  114. data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
  115. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
  116. data/source/bzs/db/protocol/tdap/client/request.h +227 -170
  117. data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
  118. data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
  119. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
  120. data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
  121. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
  122. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
  123. data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
  124. data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
  125. data/source/bzs/db/protocol/tdap/client/table.h +413 -87
  126. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
  127. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
  128. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
  129. data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
  130. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
  131. data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
  132. data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
  133. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
  134. data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
  135. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
  136. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
  137. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
  138. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
  139. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
  140. data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
  141. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
  142. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
  143. data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
  144. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
  145. data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
  146. data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
  147. data/source/bzs/db/transactd/appBuilderImple.h +21 -20
  148. data/source/bzs/db/transactd/appModule.cpp +350 -98
  149. data/source/bzs/db/transactd/appModule.h +31 -37
  150. data/source/bzs/db/transactd/connManager.cpp +138 -135
  151. data/source/bzs/db/transactd/connManager.h +28 -21
  152. data/source/bzs/db/transactd/connectionRecord.h +39 -39
  153. data/source/bzs/db/transactd/transactd.cpp +217 -203
  154. data/source/bzs/env/boost_bcb_link.h +131 -0
  155. data/source/bzs/env/compiler.h +136 -79
  156. data/source/bzs/env/crosscompile.cpp +57 -57
  157. data/source/bzs/env/crosscompile.h +130 -115
  158. data/source/bzs/env/fileopen.h +7 -8
  159. data/source/bzs/env/mbcswchrLinux.cpp +4 -9
  160. data/source/bzs/env/mbcswchrLinux.h +37 -34
  161. data/source/bzs/env/tcharMinGW.h +59 -0
  162. data/source/bzs/env/tstring.h +90 -95
  163. data/source/bzs/example/changeSchema.cpp +22 -23
  164. data/source/bzs/example/changeSchema_c.cpp +22 -24
  165. data/source/bzs/example/connection_pool_c.cpp +49 -104
  166. data/source/bzs/example/createDatabase.cpp +40 -47
  167. data/source/bzs/example/createDatabase_c.cpp +38 -43
  168. data/source/bzs/example/deleteRecords.cpp +10 -15
  169. data/source/bzs/example/deleteRecords_c.cpp +10 -14
  170. data/source/bzs/example/dropDatabase.cpp +3 -9
  171. data/source/bzs/example/dropDatabase_c.cpp +5 -6
  172. data/source/bzs/example/insertRecords.cpp +37 -29
  173. data/source/bzs/example/insertRecords_c.cpp +19 -25
  174. data/source/bzs/example/ormap_c.cpp +621 -0
  175. data/source/bzs/example/queryData.cpp +371 -0
  176. data/source/bzs/example/queryData.h +16 -0
  177. data/source/bzs/example/query_c.cpp +109 -0
  178. data/source/bzs/example/readRecords.cpp +27 -27
  179. data/source/bzs/example/readRecords_c.cpp +25 -23
  180. data/source/bzs/example/updateRecords.cpp +16 -21
  181. data/source/bzs/example/updateRecords_c.cpp +8 -12
  182. data/source/bzs/example/update_with_transaction.cpp +21 -24
  183. data/source/bzs/example/update_with_transaction_c.cpp +12 -15
  184. data/source/bzs/example/useORMRecord.cpp +177 -0
  185. data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
  186. data/source/bzs/netsvc/client/tcpClient.h +541 -489
  187. data/source/bzs/netsvc/server/IAppModule.h +119 -32
  188. data/source/bzs/netsvc/server/iserver.h +21 -23
  189. data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
  190. data/source/bzs/netsvc/server/serverCpt.h +41 -43
  191. data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
  192. data/source/bzs/netsvc/server/serverPipe.h +44 -45
  193. data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
  194. data/source/bzs/netsvc/server/serverTpool.h +38 -43
  195. data/source/bzs/rtl/benchmark.cpp +91 -31
  196. data/source/bzs/rtl/benchmark.h +76 -22
  197. data/source/bzs/rtl/datetime.cpp +231 -233
  198. data/source/bzs/rtl/datetime.h +16 -16
  199. data/source/bzs/rtl/debuglog.cpp +48 -51
  200. data/source/bzs/rtl/debuglog.h +55 -44
  201. data/source/bzs/rtl/exception.h +55 -48
  202. data/source/bzs/rtl/stl_uty.cpp +27 -28
  203. data/source/bzs/rtl/stl_uty.h +28 -29
  204. data/source/bzs/rtl/stringBuffers.cpp +8 -6
  205. data/source/bzs/rtl/stringBuffers.h +16 -9
  206. data/source/bzs/rtl/strtrim.cpp +90 -91
  207. data/source/bzs/rtl/strtrim.h +14 -16
  208. data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
  209. data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
  210. data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
  211. data/source/bzs/test/tdclphp/bench.php +357 -0
  212. data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
  213. data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
  214. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
  215. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
  216. data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
  217. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
  218. data/source/bzs/test/tdclrb/prepare.rb +15 -12
  219. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
  220. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
  221. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
  222. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
  223. data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
  224. data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
  225. data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
  226. data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
  227. data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
  228. data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
  229. data/source/bzs/test/transactdBench/workerBase.h +88 -0
  230. data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
  231. data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
  232. data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
  233. data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
  234. data/source/global/ormsrcgen/confParam.h +80 -0
  235. data/source/global/ormsrcgen/fieldName.cpp +77 -0
  236. data/source/global/ormsrcgen/fieldName.h +43 -0
  237. data/source/global/ormsrcgen/main.cpp +196 -0
  238. data/source/global/ormsrcgen/srcgen.cpp +763 -0
  239. data/source/global/ormsrcgen/srcgen.h +72 -0
  240. data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
  241. data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
  242. data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
  243. data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
  244. data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
  245. data/source/global/ormsrcgen/template/template.cnf +38 -0
  246. data/source/global/querystmts/querystmts.cpp +237 -0
  247. data/source/global/tdclatl/ConnectParams.cpp +77 -0
  248. data/source/global/tdclatl/ConnectParams.h +70 -0
  249. data/source/global/tdclatl/Database.cpp +132 -128
  250. data/source/global/tdclatl/Database.h +60 -49
  251. data/source/global/tdclatl/DbDef.cpp +68 -64
  252. data/source/global/tdclatl/DbDef.h +36 -36
  253. data/source/global/tdclatl/Field.cpp +12 -17
  254. data/source/global/tdclatl/Field.h +15 -12
  255. data/source/global/tdclatl/FieldDef.cpp +75 -36
  256. data/source/global/tdclatl/FieldDef.h +38 -19
  257. data/source/global/tdclatl/FieldDefs.cpp +74 -0
  258. data/source/global/tdclatl/FieldDefs.h +56 -0
  259. data/source/global/tdclatl/FieldNames.cpp +99 -0
  260. data/source/global/tdclatl/FieldNames.h +66 -0
  261. data/source/global/tdclatl/Flags.cpp +75 -37
  262. data/source/global/tdclatl/Flags.h +13 -12
  263. data/source/global/tdclatl/GroupQuery.cpp +119 -0
  264. data/source/global/tdclatl/GroupQuery.h +65 -0
  265. data/source/global/tdclatl/KeyDef.cpp +15 -14
  266. data/source/global/tdclatl/KeyDef.h +20 -17
  267. data/source/global/tdclatl/KeySegment.cpp +13 -12
  268. data/source/global/tdclatl/PooledDbManager.cpp +223 -0
  269. data/source/global/tdclatl/PooledDbManager.h +76 -0
  270. data/source/global/tdclatl/QueryBase.cpp +206 -127
  271. data/source/global/tdclatl/QueryBase.h +55 -59
  272. data/source/global/tdclatl/Record.cpp +214 -0
  273. data/source/global/tdclatl/Record.h +96 -0
  274. data/source/global/tdclatl/Recordset.cpp +278 -0
  275. data/source/global/tdclatl/Recordset.h +83 -0
  276. data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
  277. data/source/global/tdclatl/RecordsetQuery.h +126 -0
  278. data/source/global/tdclatl/Table.cpp +57 -60
  279. data/source/global/tdclatl/Table.h +32 -29
  280. data/source/global/tdclatl/TableDef.cpp +63 -62
  281. data/source/global/tdclatl/TableDef.h +20 -22
  282. data/source/global/tdclatl/TdVersion.cpp +3 -3
  283. data/source/global/tdclatl/TdVersion.h +15 -11
  284. data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
  285. data/source/global/tdclatl/activeTable.cpp +355 -0
  286. data/source/global/tdclatl/activeTable.h +79 -0
  287. data/source/global/tdclatl/dllmain.cpp +4 -3
  288. data/source/global/tdclatl/dllmain.h +7 -6
  289. data/source/global/tdclatl/keySegment.h +22 -18
  290. data/source/global/tdclatl/resource.h +0 -0
  291. data/source/global/tdclatl/stdafx.h +6 -4
  292. data/source/global/tdclatl/targetver.h +0 -1
  293. data/source/global/tdclatl/tdclatl.cpp +10 -5
  294. data/source/global/tdclatl/tdclatl.idl +530 -14
  295. data/source/linux/charsetConvert.h +78 -79
  296. data/source/linux/linuxTypes.h +9 -12
  297. data/source/linux/tchar.h +168 -166
  298. data/transactd.gemspec +24 -16
  299. metadata +98 -12
  300. data/bin/common/tdclc_32_1_2.dll +0 -0
  301. data/bin/common/tdclc_64_1_2.dll +0 -0
  302. data/build/tdclc/tdclc_32.cbproj +0 -173
  303. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
  304. data/build/tdclrb/GEM_VERSION +0 -3
  305. data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
  306. data/source/bzs/example/useORM.cpp +0 -585
@@ -12,8 +12,8 @@
12
12
  GNU General Public License for more details.
13
13
 
14
14
  You should have received a copy of the GNU General Public License
15
- along with this program; if not, write to the Free Software
16
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
17
  02111-1307, USA.
18
18
  =================================================================*/
19
19
  #include "stdafx.h"
@@ -27,19 +27,20 @@ STDMETHODIMP CTableDef::get_FieldDef(short Index, IFieldDef** Value)
27
27
  if (Index >= (*m_tabledefPtr)->fieldCount)
28
28
  return Error("Invalid index.", IID_ITableDef);
29
29
 
30
- CComObject<CFieldDef> *piObj;
30
+ CComObject<CFieldDef>* piObj;
31
31
  CComObject<CFieldDef>::CreateInstance(&piObj);
32
- if (piObj)
33
- {
34
- piObj->m_tabledefPtr = m_tabledefPtr;
35
- piObj->m_index = Index;
36
- IFieldDef* fd;
37
- piObj->QueryInterface(IID_IFieldDef, (void**)&fd);
38
- _ASSERTE(fd);
39
- *Value = piObj;
40
- }else
41
- *Value = 0;
42
- return S_OK;
32
+ if (piObj)
33
+ {
34
+ piObj->m_tabledefPtr = m_tabledefPtr;
35
+ piObj->m_index = Index;
36
+ IFieldDef* fd;
37
+ piObj->QueryInterface(IID_IFieldDef, (void**)&fd);
38
+ _ASSERTE(fd);
39
+ *Value = piObj;
40
+ }
41
+ else
42
+ *Value = 0;
43
+ return S_OK;
43
44
  }
44
45
 
45
46
  STDMETHODIMP CTableDef::get_KeyDef(short Index, IKeyDef** Value)
@@ -47,18 +48,19 @@ STDMETHODIMP CTableDef::get_KeyDef(short Index, IKeyDef** Value)
47
48
  if (Index >= (*m_tabledefPtr)->keyCount)
48
49
  return Error("Invalid index.", IID_ITableDef);
49
50
 
50
- CComObject<CKeyDef> *piObj;
51
+ CComObject<CKeyDef>* piObj;
51
52
  CComObject<CKeyDef>::CreateInstance(&piObj);
52
- if (piObj)
53
- {
54
- piObj->m_tabledefPtr = m_tabledefPtr;
55
- piObj->m_index = Index;
56
- IKeyDef* kb;
57
- piObj->QueryInterface(IID_IKeyDef, (void**)&kb);
58
- _ASSERTE(kb);
59
- *Value = piObj;
60
- }else
61
- *Value = 0;
53
+ if (piObj)
54
+ {
55
+ piObj->m_tabledefPtr = m_tabledefPtr;
56
+ piObj->m_index = Index;
57
+ IKeyDef* kb;
58
+ piObj->QueryInterface(IID_IKeyDef, (void**)&kb);
59
+ _ASSERTE(kb);
60
+ *Value = piObj;
61
+ }
62
+ else
63
+ *Value = 0;
62
64
  return S_OK;
63
65
  }
64
66
 
@@ -130,17 +132,18 @@ STDMETHODIMP CTableDef::put_TableName(BSTR Value)
130
132
 
131
133
  STDMETHODIMP CTableDef::get_Flags(IFlags** Value)
132
134
  {
133
- CComObject<CFlags> *piObj;
135
+ CComObject<CFlags>* piObj;
134
136
  CComObject<CFlags>::CreateInstance(&piObj);
135
- if (piObj)
136
- {
137
- piObj->m_flags = (*m_tabledefPtr)->flags;
138
- IFlags* fl;
139
- piObj->QueryInterface(IID_IFlags, (void**)&fl);
140
- _ASSERTE(fl);
141
- *Value = piObj;
142
- }else
143
- *Value = 0;
137
+ if (piObj)
138
+ {
139
+ piObj->m_flags = &((*m_tabledefPtr)->flags);
140
+ IFlags* fl;
141
+ piObj->QueryInterface(IID_IFlags, (void**)&fl);
142
+ _ASSERTE(fl);
143
+ *Value = piObj;
144
+ }
145
+ else
146
+ *Value = 0;
144
147
  return S_OK;
145
148
  }
146
149
 
@@ -150,37 +153,37 @@ STDMETHODIMP CTableDef::put_Flags(IFlags* Value)
150
153
  return S_OK;
151
154
  }
152
155
 
153
- STDMETHODIMP CTableDef::get_PrimaryKeyNum( unsigned char* Value)
156
+ STDMETHODIMP CTableDef::get_PrimaryKeyNum(unsigned char* Value)
154
157
  {
155
158
  *Value = (*m_tabledefPtr)->primaryKeyNum;
156
159
  return S_OK;
157
160
  }
158
161
 
159
- STDMETHODIMP CTableDef::put_PrimaryKeyNum( unsigned char Value)
162
+ STDMETHODIMP CTableDef::put_PrimaryKeyNum(unsigned char Value)
160
163
  {
161
164
  (*m_tabledefPtr)->primaryKeyNum = Value;
162
165
  return S_OK;
163
166
  }
164
167
 
165
- STDMETHODIMP CTableDef::get_ParentKeyNum( unsigned char* Value)
168
+ STDMETHODIMP CTableDef::get_ParentKeyNum(unsigned char* Value)
166
169
  {
167
170
  *Value = (*m_tabledefPtr)->parentKeyNum;
168
171
  return S_OK;
169
172
  }
170
173
 
171
- STDMETHODIMP CTableDef::put_ParentKeyNum( unsigned char Value)
174
+ STDMETHODIMP CTableDef::put_ParentKeyNum(unsigned char Value)
172
175
  {
173
176
  (*m_tabledefPtr)->parentKeyNum = Value;
174
177
  return S_OK;
175
178
  }
176
179
 
177
- STDMETHODIMP CTableDef::get_ReplicaKeyNum( unsigned char* Value)
180
+ STDMETHODIMP CTableDef::get_ReplicaKeyNum(unsigned char* Value)
178
181
  {
179
182
  *Value = (*m_tabledefPtr)->replicaKeyNum;
180
183
  return S_OK;
181
184
  }
182
185
 
183
- STDMETHODIMP CTableDef::put_ReplicaKeyNum( unsigned char Value)
186
+ STDMETHODIMP CTableDef::put_ReplicaKeyNum(unsigned char Value)
184
187
  {
185
188
  (*m_tabledefPtr)->replicaKeyNum = Value;
186
189
  return S_OK;
@@ -188,17 +191,18 @@ STDMETHODIMP CTableDef::put_ReplicaKeyNum( unsigned char Value)
188
191
 
189
192
  STDMETHODIMP CTableDef::get_OptionFlags(IFlags** Value)
190
193
  {
191
- CComObject<CFlags> *piObj;
194
+ CComObject<CFlags>* piObj;
192
195
  CComObject<CFlags>::CreateInstance(&piObj);
193
- if (piObj)
194
- {
195
- piObj->m_flags = (*m_tabledefPtr)->optionFlags;
196
- IFlags* fl;
197
- piObj->QueryInterface(IID_IFlags, (void**)&fl);
198
- _ASSERTE(fl);
199
- *Value = piObj;
200
- }else
201
- *Value = 0;
196
+ if (piObj)
197
+ {
198
+ piObj->m_flags = &((*m_tabledefPtr)->optionFlags);
199
+ IFlags* fl;
200
+ piObj->QueryInterface(IID_IFlags, (void**)&fl);
201
+ _ASSERTE(fl);
202
+ *Value = piObj;
203
+ }
204
+ else
205
+ *Value = 0;
202
206
 
203
207
  return S_OK;
204
208
  }
@@ -247,45 +251,42 @@ STDMETHODIMP CTableDef::put_Charsetindex(eCharset Value)
247
251
 
248
252
  STDMETHODIMP CTableDef::get_FixedRecordLen(unsigned short* Value)
249
253
  {
250
- *Value = (*m_tabledefPtr)->fixedRecordLen;
254
+ *Value = (*m_tabledefPtr)->fixedRecordLen;
251
255
  return S_OK;
252
256
  }
253
257
 
254
258
  STDMETHODIMP CTableDef::put_FixedRecordLen(unsigned short Value)
255
259
  {
256
- (*m_tabledefPtr)->fixedRecordLen = Value;
260
+ (*m_tabledefPtr)->fixedRecordLen = Value;
257
261
  return S_OK;
258
262
  }
259
263
 
260
264
  STDMETHODIMP CTableDef::get_MaxRecordLen(unsigned short* Value)
261
265
  {
262
- *Value = (*m_tabledefPtr)->maxRecordLen;
266
+ *Value = (*m_tabledefPtr)->maxRecordLen;
263
267
  return S_OK;
264
268
  }
265
269
 
266
270
  STDMETHODIMP CTableDef::put_MaxRecordLen(unsigned short Value)
267
271
  {
268
- (*m_tabledefPtr)->maxRecordLen = Value;
272
+ (*m_tabledefPtr)->maxRecordLen = Value;
269
273
  return S_OK;
270
274
  }
271
275
 
272
276
  STDMETHODIMP CTableDef::get_SchemaCodePage(unsigned int* Value)
273
277
  {
274
- *Value = (*m_tabledefPtr)->schemaCodePage;
278
+ *Value = (*m_tabledefPtr)->schemaCodePage;
275
279
  return S_OK;
276
280
  }
277
281
 
278
282
  STDMETHODIMP CTableDef::put_SchemaCodePage(unsigned int Value)
279
283
  {
280
- (*m_tabledefPtr)->schemaCodePage = Value;
284
+ (*m_tabledefPtr)->schemaCodePage = Value;
281
285
  return S_OK;
282
286
  }
283
287
 
284
288
  STDMETHODIMP CTableDef::get_Version(unsigned short* Value)
285
289
  {
286
- *Value = (*m_tabledefPtr)->version;
287
- return S_OK;
290
+ *Value = (*m_tabledefPtr)->version;
291
+ return S_OK;
288
292
  }
289
-
290
-
291
-
@@ -13,8 +13,8 @@
13
13
  GNU General Public License for more details.
14
14
 
15
15
  You should have received a copy of the GNU General Public License
16
- along with this program; if not, write to the Free Software
17
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18
18
  02111-1307, USA.
19
19
  =================================================================*/
20
20
  #include "resource.h"
@@ -24,29 +24,28 @@
24
24
  #include <bzs/db/protocol/tdap/client/dbDef.h>
25
25
  using namespace ATL;
26
26
 
27
- class ATL_NO_VTABLE CTableDef : public CComObjectRootEx<CComSingleThreadModel>,
28
- public CComCoClass<CTableDef, &CLSID_TableDef>,
29
- public IDispatchImpl<ITableDef, &IID_ITableDef, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>
27
+ class ATL_NO_VTABLE CTableDef
28
+ : public CComObjectRootEx<CComSingleThreadModel>,
29
+ public CComCoClass<CTableDef, &CLSID_TableDef>,
30
+ public IDispatchImpl<ITableDef, &IID_ITableDef, &LIBID_transactd,
31
+ /* wMajor = */ 1, /* wMinor = */ 0>
30
32
  {
31
33
  public:
32
- CTableDef(): m_tabledefPtr(NULL) {}
34
+ CTableDef() : m_tabledefPtr(NULL) {}
33
35
  bzs::db::protocol::tdap::tabledef** m_tabledefPtr;
34
36
 
35
-
36
- BEGIN_COM_MAP(CTableDef)
37
- COM_INTERFACE_ENTRY(ITableDef)
38
- COM_INTERFACE_ENTRY(IDispatch)
39
- END_COM_MAP()
37
+ BEGIN_COM_MAP(CTableDef)
38
+ COM_INTERFACE_ENTRY(ITableDef)
39
+ COM_INTERFACE_ENTRY(IDispatch)
40
+ END_COM_MAP()
40
41
 
41
42
  DECLARE_PROTECT_FINAL_CONSTRUCT()
42
43
 
43
- HRESULT FinalConstruct() {return S_OK;}
44
+ HRESULT FinalConstruct() { return S_OK; }
44
45
 
45
46
  void FinalRelease() {}
46
47
 
47
48
  public:
48
-
49
-
50
49
  STDMETHOD(get_FieldDef)(short Index, IFieldDef** Value);
51
50
  STDMETHOD(get_KeyDef)(short Index, IKeyDef** Value);
52
51
  STDMETHOD(get_FieldCount)(short* Value);
@@ -56,8 +55,8 @@ public:
56
55
  STDMETHOD(get_FileName)(BSTR* Value);
57
56
  STDMETHOD(get_TableName)(BSTR* Value);
58
57
  STDMETHOD(get_Flags)(IFlags** Value);
59
- STDMETHOD(get_ParentKeyNum)( unsigned char* Value);
60
- STDMETHOD(get_ReplicaKeyNum)( unsigned char* Value);
58
+ STDMETHOD(get_ParentKeyNum)(unsigned char* Value);
59
+ STDMETHOD(get_ReplicaKeyNum)(unsigned char* Value);
61
60
  STDMETHOD(get_OptionFlags)(IFlags** Value);
62
61
  STDMETHOD(get_IconIndex)(unsigned char* Value);
63
62
  STDMETHOD(get_Id)(short* Value);
@@ -67,20 +66,19 @@ public:
67
66
  STDMETHOD(put_Id)(short Value);
68
67
  STDMETHOD(put_OptionFlags)(IFlags* Value);
69
68
  STDMETHOD(put_PageSize)(short Value);
70
- STDMETHOD(put_ParentKeyNum)( unsigned char Value);
69
+ STDMETHOD(put_ParentKeyNum)(unsigned char Value);
71
70
  STDMETHOD(put_PreAlloc)(short Value);
72
- STDMETHOD(put_ReplicaKeyNum)( unsigned char Value);
71
+ STDMETHOD(put_ReplicaKeyNum)(unsigned char Value);
73
72
  STDMETHOD(put_TableName)(BSTR Value);
74
73
  STDMETHOD(get_Charsetindex)(eCharset* Value);
75
74
  STDMETHOD(put_Charsetindex)(eCharset Value);
76
- STDMETHOD(get_PrimaryKeyNum)( unsigned char* Value);
77
- STDMETHOD(put_PrimaryKeyNum)( unsigned char Value);
75
+ STDMETHOD(get_PrimaryKeyNum)(unsigned char* Value);
76
+ STDMETHOD(put_PrimaryKeyNum)(unsigned char Value);
78
77
  STDMETHOD(get_FixedRecordLen)(unsigned short* Value);
79
78
  STDMETHOD(put_FixedRecordLen)(unsigned short Value);
80
79
  STDMETHOD(get_MaxRecordLen)(unsigned short* Value);
81
80
  STDMETHOD(put_MaxRecordLen)(unsigned short Value);
82
81
  STDMETHOD(get_SchemaCodePage)(unsigned int* Value);
83
82
  STDMETHOD(put_SchemaCodePage)(unsigned int Value);
84
- STDMETHOD(get_Version)(unsigned short* Value);
85
-
83
+ STDMETHOD(get_Version)(unsigned short* Value);
86
84
  };
@@ -12,8 +12,8 @@
12
12
  GNU General Public License for more details.
13
13
 
14
14
  You should have received a copy of the GNU General Public License
15
- along with this program; if not, write to the Free Software
16
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
17
  02111-1307, USA.
18
18
  =================================================================*/
19
19
  #include "StdAfx.h"
@@ -67,7 +67,7 @@ STDMETHODIMP CTdVersion::ModuleTypeString(BSTR* Value)
67
67
  STDMETHODIMP CTdVersion::ModuleVersionShortString(BSTR* Value)
68
68
  {
69
69
 
70
- wchar_t tmp[512] ={NULL};
70
+ wchar_t tmp[512] = { NULL };
71
71
  m_ver.moduleVersionShortString(tmp);
72
72
  *Value = ::SysAllocString(tmp);
73
73
  return S_OK;
@@ -13,8 +13,8 @@
13
13
  GNU General Public License for more details.
14
14
 
15
15
  You should have received a copy of the GNU General Public License
16
- along with this program; if not, write to the Free Software
17
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18
18
  02111-1307, USA.
19
19
  =================================================================*/
20
20
  #include "resource.h"
@@ -23,24 +23,29 @@
23
23
 
24
24
  using namespace ATL;
25
25
 
26
- class ATL_NO_VTABLE CTdVersion : public CComObjectRootEx<CComSingleThreadModel>,
27
- public CComCoClass<CTdVersion, &CLSID_TdVersion>,
28
- public IDispatchImpl<ITdVersion, &IID_ITdVersion, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>
26
+ class ATL_NO_VTABLE CTdVersion
27
+ : public CComObjectRootEx<CComSingleThreadModel>,
28
+ public CComCoClass<CTdVersion, &CLSID_TdVersion>,
29
+ public IDispatchImpl<ITdVersion, &IID_ITdVersion, &LIBID_transactd,
30
+ /* wMajor = */ 1, /* wMinor = */ 0>
29
31
  {
30
32
 
31
33
  public:
32
- CTdVersion() {memset(&m_ver, 0, sizeof(m_ver));}
34
+ CTdVersion() { memset(&m_ver, 0, sizeof(m_ver)); }
33
35
  bzs::db::protocol::tdap::btrVersion m_ver;
34
- BEGIN_COM_MAP(CTdVersion) COM_INTERFACE_ENTRY(ITdVersion) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP()
36
+ BEGIN_COM_MAP(CTdVersion) COM_INTERFACE_ENTRY(ITdVersion)
37
+ COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP()
35
38
 
36
- DECLARE_PROTECT_FINAL_CONSTRUCT()
39
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
37
40
 
38
- HRESULT FinalConstruct() {return S_OK;}
41
+ HRESULT FinalConstruct()
42
+ {
43
+ return S_OK;
44
+ }
39
45
 
40
46
  void FinalRelease() {}
41
47
 
42
48
  public:
43
-
44
49
  STDMETHOD(get_MajorVersion)(short* Value);
45
50
  STDMETHOD(put_MajorVersion)(short Value);
46
51
  STDMETHOD(get_MinorVersion)(short* Value);
@@ -50,5 +55,4 @@ public:
50
55
 
51
56
  STDMETHOD(ModuleTypeString)(BSTR* Value);
52
57
  STDMETHOD(ModuleVersionShortString)(BSTR* Value);
53
-
54
58
  };
@@ -13,101 +13,108 @@
13
13
  GNU General Public License for more details.
14
14
 
15
15
  You should have received a copy of the GNU General Public License
16
- along with this program; if not, write to the Free Software
17
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18
18
  02111-1307, USA.
19
19
  =================================================================*/
20
20
 
21
- template<class T>
22
- class CProxy_IDatabaseEvents :
23
- public ATL::IConnectionPointImpl<T, &__uuidof(_IDatabaseEvents)>
21
+ template <class T>
22
+ class CProxy_IDatabaseEvents
23
+ : public ATL::IConnectionPointImpl<T, &__uuidof(_IDatabaseEvents)>
24
24
  {
25
25
  public:
26
- HRESULT Fire_OnCopyData(IDatabase * db, int recordCount, int count, VARIANT_BOOL * cancel)
27
- {
28
- HRESULT hr = S_OK;
29
- T * pThis = static_cast<T *>(this);
30
- int cConnections = m_vec.GetSize();
31
-
32
- for (int iConnection = 0; iConnection < cConnections; iConnection++)
33
- {
34
- pThis->Lock();
35
- CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection);
36
- pThis->Unlock();
37
-
38
- IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p);
39
-
40
- if (pConnection)
41
- {
42
- CComVariant avarParams[4];
43
- avarParams[3] = db;
44
- avarParams[2] = recordCount;
45
- avarParams[1] = count;
46
- avarParams[0].byref = cancel;
47
- avarParams[0].vt = VT_BOOL|VT_BYREF;
48
- CComVariant varResult;
49
-
50
- DISPPARAMS params = { avarParams, NULL, 4, 0 };
51
- hr = pConnection->Invoke(1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &params, &varResult, NULL, NULL);
52
- }
53
- }
54
- return hr;
55
- }
56
- HRESULT Fire_OnDeleteRecord(IDatabase * db, ITable * tb, VARIANT_BOOL * Value)
57
- {
58
- HRESULT hr = S_OK;
59
- T * pThis = static_cast<T *>(this);
60
- int cConnections = m_vec.GetSize();
61
-
62
- for (int iConnection = 0; iConnection < cConnections; iConnection++)
63
- {
64
- pThis->Lock();
65
- CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection);
66
- pThis->Unlock();
67
-
68
- IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p);
69
-
70
- if (pConnection)
71
- {
72
- CComVariant avarParams[3];
73
- avarParams[2] = db;
74
- avarParams[1] = tb;
75
- avarParams[0].byref = Value;
76
- avarParams[0].vt = VT_BOOL|VT_BYREF;
77
- CComVariant varResult;
78
-
79
- DISPPARAMS params = { avarParams, NULL, 3, 0 };
80
- hr = pConnection->Invoke(2, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &params, &varResult, NULL, NULL);
81
- }
82
- }
83
- return hr;
84
- }
85
- HRESULT Fire_OnSchemaMgrFn(IDatabase * db, short* Value)
86
- {
87
- HRESULT hr = S_OK;
88
- T * pThis = static_cast<T *>(this);
89
- int cConnections = m_vec.GetSize();
90
-
91
- for (int iConnection = 0; iConnection < cConnections; iConnection++)
92
- {
93
- pThis->Lock();
94
- CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection);
95
- pThis->Unlock();
96
-
97
- IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p);
98
-
99
- if (pConnection)
100
- {
101
- CComVariant avarParams[2];
102
- avarParams[1] = db;
103
- avarParams[0].byref = Value;
104
- avarParams[0].vt = VT_I2|VT_BYREF;
105
- CComVariant varResult;
106
-
107
- DISPPARAMS params = { avarParams, NULL, 2, 0 };
108
- hr = pConnection->Invoke(3, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &params, &varResult, NULL, NULL);
109
- }
110
- }
111
- return hr;
112
- }
26
+ HRESULT Fire_OnCopyData(IDatabase* db, int recordCount, int count,
27
+ VARIANT_BOOL* cancel)
28
+ {
29
+ HRESULT hr = S_OK;
30
+ T* pThis = static_cast<T*>(this);
31
+ int cConnections = m_vec.GetSize();
32
+
33
+ for (int iConnection = 0; iConnection < cConnections; iConnection++)
34
+ {
35
+ pThis->Lock();
36
+ CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection);
37
+ pThis->Unlock();
38
+
39
+ IDispatch* pConnection = static_cast<IDispatch*>(punkConnection.p);
40
+
41
+ if (pConnection)
42
+ {
43
+ CComVariant avarParams[4];
44
+ avarParams[3] = db;
45
+ avarParams[2] = recordCount;
46
+ avarParams[1] = count;
47
+ avarParams[0].byref = cancel;
48
+ avarParams[0].vt = VT_BOOL | VT_BYREF;
49
+ CComVariant varResult;
50
+
51
+ DISPPARAMS params = { avarParams, NULL, 4, 0 };
52
+ hr = pConnection->Invoke(1, IID_NULL, LOCALE_USER_DEFAULT,
53
+ DISPATCH_METHOD, &params, &varResult,
54
+ NULL, NULL);
55
+ }
56
+ }
57
+ return hr;
58
+ }
59
+ HRESULT Fire_OnDeleteRecord(IDatabase* db, ITable* tb, VARIANT_BOOL* Value)
60
+ {
61
+ HRESULT hr = S_OK;
62
+ T* pThis = static_cast<T*>(this);
63
+ int cConnections = m_vec.GetSize();
64
+
65
+ for (int iConnection = 0; iConnection < cConnections; iConnection++)
66
+ {
67
+ pThis->Lock();
68
+ CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection);
69
+ pThis->Unlock();
70
+
71
+ IDispatch* pConnection = static_cast<IDispatch*>(punkConnection.p);
72
+
73
+ if (pConnection)
74
+ {
75
+ CComVariant avarParams[3];
76
+ avarParams[2] = db;
77
+ avarParams[1] = tb;
78
+ avarParams[0].byref = Value;
79
+ avarParams[0].vt = VT_BOOL | VT_BYREF;
80
+ CComVariant varResult;
81
+
82
+ DISPPARAMS params = { avarParams, NULL, 3, 0 };
83
+ hr = pConnection->Invoke(2, IID_NULL, LOCALE_USER_DEFAULT,
84
+ DISPATCH_METHOD, &params, &varResult,
85
+ NULL, NULL);
86
+ }
87
+ }
88
+ return hr;
89
+ }
90
+ HRESULT Fire_OnSchemaMgrFn(IDatabase* db, short* Value)
91
+ {
92
+ HRESULT hr = S_OK;
93
+ T* pThis = static_cast<T*>(this);
94
+ int cConnections = m_vec.GetSize();
95
+
96
+ for (int iConnection = 0; iConnection < cConnections; iConnection++)
97
+ {
98
+ pThis->Lock();
99
+ CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection);
100
+ pThis->Unlock();
101
+
102
+ IDispatch* pConnection = static_cast<IDispatch*>(punkConnection.p);
103
+
104
+ if (pConnection)
105
+ {
106
+ CComVariant avarParams[2];
107
+ avarParams[1] = db;
108
+ avarParams[0].byref = Value;
109
+ avarParams[0].vt = VT_I2 | VT_BYREF;
110
+ CComVariant varResult;
111
+
112
+ DISPPARAMS params = { avarParams, NULL, 2, 0 };
113
+ hr = pConnection->Invoke(3, IID_NULL, LOCALE_USER_DEFAULT,
114
+ DISPATCH_METHOD, &params, &varResult,
115
+ NULL, NULL);
116
+ }
117
+ }
118
+ return hr;
119
+ }
113
120
  };