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.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +46 -67
- data/BUILD_WIN-JA +106 -63
- data/CMakeLists.txt +40 -15
- data/README +219 -75
- data/README-JA +207 -76
- data/README_ORMSRCGEN +118 -0
- data/README_ORMSRCGEN-JA +115 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclc_64_2_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +18 -14
- data/build/common/create_symlink.cmake.in +25 -0
- data/build/common/get_boost_libs.cmake +23 -23
- data/build/common/options.cmake +0 -66
- data/build/common/smart_install.cmake +3 -3
- data/build/common/transactd.rc.in +15 -5
- data/build/common/transactd_cl_common.cmake +37 -18
- data/build/common/transactd_cl_output.cmake +55 -13
- data/build/common/transactd_common.cmake +108 -31
- data/build/swig/php/generate.cmake.in +15 -17
- data/build/swig/php/generate.cmd.in +15 -9
- data/build/swig/php/php.swg +124 -82
- data/build/swig/php/transactd.no_yield.php +4494 -0
- data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
- data/build/swig/php/transactd.no_yield.php.patch +685 -0
- data/build/swig/php/transactd.yield.php +4461 -0
- data/build/swig/php/transactd.yield.php.git.patch +652 -0
- data/build/swig/php/transactd.yield.php.patch +652 -0
- data/build/swig/referencecounter.h +79 -0
- data/build/swig/ruby/ruby.swg +226 -76
- data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
- data/build/swig/ruby/without_gvl.swg +87 -0
- data/build/swig/tdcl.i +659 -170
- data/build/swig/validatablepointer.h +91 -0
- data/build/tdclc/CMakeLists.txt +49 -34
- data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
- data/build/tdclc/tdclc.rc +0 -0
- data/build/tdclcpp/CMakeLists.txt +84 -20
- data/build/tdclcpp/tdclcpp.rc +0 -0
- data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
- data/build/tdclrb/CMakeLists.txt +84 -66
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/build/tdclrb/gem_output.cmake +20 -16
- data/index_ja.html +15 -0
- data/source/bzs/db/IBlobBuffer.h +15 -17
- data/source/bzs/db/blobBuffer.h +186 -140
- data/source/bzs/db/blobStructs.h +37 -37
- data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
- data/source/bzs/db/engine/mysql/bookmark.h +150 -147
- data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
- data/source/bzs/db/engine/mysql/database.h +608 -370
- data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
- data/source/bzs/db/engine/mysql/dbManager.h +115 -104
- data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
- data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
- data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
- data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
- data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
- data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
- data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
- data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
- data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
- data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
- data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
- data/source/bzs/db/protocol/tdap/client/client.h +361 -320
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
- data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
- data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
- data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
- data/source/bzs/db/protocol/tdap/client/database.h +141 -118
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
- data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
- data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
- data/source/bzs/db/protocol/tdap/client/export.h +35 -0
- data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
- data/source/bzs/db/protocol/tdap/client/field.h +393 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
- data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
- data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
- data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
- data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
- data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
- data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
- data/source/bzs/db/protocol/tdap/client/request.h +227 -170
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
- data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
- data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
- data/source/bzs/db/protocol/tdap/client/table.h +413 -87
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
- data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
- data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
- data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
- data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
- data/source/bzs/db/transactd/appBuilderImple.h +21 -20
- data/source/bzs/db/transactd/appModule.cpp +350 -98
- data/source/bzs/db/transactd/appModule.h +31 -37
- data/source/bzs/db/transactd/connManager.cpp +138 -135
- data/source/bzs/db/transactd/connManager.h +28 -21
- data/source/bzs/db/transactd/connectionRecord.h +39 -39
- data/source/bzs/db/transactd/transactd.cpp +217 -203
- data/source/bzs/env/boost_bcb_link.h +131 -0
- data/source/bzs/env/compiler.h +136 -79
- data/source/bzs/env/crosscompile.cpp +57 -57
- data/source/bzs/env/crosscompile.h +130 -115
- data/source/bzs/env/fileopen.h +7 -8
- data/source/bzs/env/mbcswchrLinux.cpp +4 -9
- data/source/bzs/env/mbcswchrLinux.h +37 -34
- data/source/bzs/env/tcharMinGW.h +59 -0
- data/source/bzs/env/tstring.h +90 -95
- data/source/bzs/example/changeSchema.cpp +22 -23
- data/source/bzs/example/changeSchema_c.cpp +22 -24
- data/source/bzs/example/connection_pool_c.cpp +49 -104
- data/source/bzs/example/createDatabase.cpp +40 -47
- data/source/bzs/example/createDatabase_c.cpp +38 -43
- data/source/bzs/example/deleteRecords.cpp +10 -15
- data/source/bzs/example/deleteRecords_c.cpp +10 -14
- data/source/bzs/example/dropDatabase.cpp +3 -9
- data/source/bzs/example/dropDatabase_c.cpp +5 -6
- data/source/bzs/example/insertRecords.cpp +37 -29
- data/source/bzs/example/insertRecords_c.cpp +19 -25
- data/source/bzs/example/ormap_c.cpp +621 -0
- data/source/bzs/example/queryData.cpp +371 -0
- data/source/bzs/example/queryData.h +16 -0
- data/source/bzs/example/query_c.cpp +109 -0
- data/source/bzs/example/readRecords.cpp +27 -27
- data/source/bzs/example/readRecords_c.cpp +25 -23
- data/source/bzs/example/updateRecords.cpp +16 -21
- data/source/bzs/example/updateRecords_c.cpp +8 -12
- data/source/bzs/example/update_with_transaction.cpp +21 -24
- data/source/bzs/example/update_with_transaction_c.cpp +12 -15
- data/source/bzs/example/useORMRecord.cpp +177 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
- data/source/bzs/netsvc/client/tcpClient.h +541 -489
- data/source/bzs/netsvc/server/IAppModule.h +119 -32
- data/source/bzs/netsvc/server/iserver.h +21 -23
- data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
- data/source/bzs/netsvc/server/serverCpt.h +41 -43
- data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
- data/source/bzs/netsvc/server/serverPipe.h +44 -45
- data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
- data/source/bzs/netsvc/server/serverTpool.h +38 -43
- data/source/bzs/rtl/benchmark.cpp +91 -31
- data/source/bzs/rtl/benchmark.h +76 -22
- data/source/bzs/rtl/datetime.cpp +231 -233
- data/source/bzs/rtl/datetime.h +16 -16
- data/source/bzs/rtl/debuglog.cpp +48 -51
- data/source/bzs/rtl/debuglog.h +55 -44
- data/source/bzs/rtl/exception.h +55 -48
- data/source/bzs/rtl/stl_uty.cpp +27 -28
- data/source/bzs/rtl/stl_uty.h +28 -29
- data/source/bzs/rtl/stringBuffers.cpp +8 -6
- data/source/bzs/rtl/stringBuffers.h +16 -9
- data/source/bzs/rtl/strtrim.cpp +90 -91
- data/source/bzs/rtl/strtrim.h +14 -16
- data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
- data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
- data/source/bzs/test/tdclphp/bench.php +357 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
- data/source/bzs/test/tdclrb/prepare.rb +15 -12
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
- data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
- data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
- data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
- data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
- data/source/bzs/test/transactdBench/workerBase.h +88 -0
- data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
- data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
- data/source/global/ormsrcgen/confParam.h +80 -0
- data/source/global/ormsrcgen/fieldName.cpp +77 -0
- data/source/global/ormsrcgen/fieldName.h +43 -0
- data/source/global/ormsrcgen/main.cpp +196 -0
- data/source/global/ormsrcgen/srcgen.cpp +763 -0
- data/source/global/ormsrcgen/srcgen.h +72 -0
- data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
- data/source/global/ormsrcgen/template/template.cnf +38 -0
- data/source/global/querystmts/querystmts.cpp +237 -0
- data/source/global/tdclatl/ConnectParams.cpp +77 -0
- data/source/global/tdclatl/ConnectParams.h +70 -0
- data/source/global/tdclatl/Database.cpp +132 -128
- data/source/global/tdclatl/Database.h +60 -49
- data/source/global/tdclatl/DbDef.cpp +68 -64
- data/source/global/tdclatl/DbDef.h +36 -36
- data/source/global/tdclatl/Field.cpp +12 -17
- data/source/global/tdclatl/Field.h +15 -12
- data/source/global/tdclatl/FieldDef.cpp +75 -36
- data/source/global/tdclatl/FieldDef.h +38 -19
- data/source/global/tdclatl/FieldDefs.cpp +74 -0
- data/source/global/tdclatl/FieldDefs.h +56 -0
- data/source/global/tdclatl/FieldNames.cpp +99 -0
- data/source/global/tdclatl/FieldNames.h +66 -0
- data/source/global/tdclatl/Flags.cpp +75 -37
- data/source/global/tdclatl/Flags.h +13 -12
- data/source/global/tdclatl/GroupQuery.cpp +119 -0
- data/source/global/tdclatl/GroupQuery.h +65 -0
- data/source/global/tdclatl/KeyDef.cpp +15 -14
- data/source/global/tdclatl/KeyDef.h +20 -17
- data/source/global/tdclatl/KeySegment.cpp +13 -12
- data/source/global/tdclatl/PooledDbManager.cpp +223 -0
- data/source/global/tdclatl/PooledDbManager.h +76 -0
- data/source/global/tdclatl/QueryBase.cpp +206 -127
- data/source/global/tdclatl/QueryBase.h +55 -59
- data/source/global/tdclatl/Record.cpp +214 -0
- data/source/global/tdclatl/Record.h +96 -0
- data/source/global/tdclatl/Recordset.cpp +278 -0
- data/source/global/tdclatl/Recordset.h +83 -0
- data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
- data/source/global/tdclatl/RecordsetQuery.h +126 -0
- data/source/global/tdclatl/Table.cpp +57 -60
- data/source/global/tdclatl/Table.h +32 -29
- data/source/global/tdclatl/TableDef.cpp +63 -62
- data/source/global/tdclatl/TableDef.h +20 -22
- data/source/global/tdclatl/TdVersion.cpp +3 -3
- data/source/global/tdclatl/TdVersion.h +15 -11
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
- data/source/global/tdclatl/activeTable.cpp +355 -0
- data/source/global/tdclatl/activeTable.h +79 -0
- data/source/global/tdclatl/dllmain.cpp +4 -3
- data/source/global/tdclatl/dllmain.h +7 -6
- data/source/global/tdclatl/keySegment.h +22 -18
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.h +6 -4
- data/source/global/tdclatl/targetver.h +0 -1
- data/source/global/tdclatl/tdclatl.cpp +10 -5
- data/source/global/tdclatl/tdclatl.idl +530 -14
- data/source/linux/charsetConvert.h +78 -79
- data/source/linux/linuxTypes.h +9 -12
- data/source/linux/tchar.h +168 -166
- data/transactd.gemspec +24 -16
- metadata +98 -12
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/tdclc/tdclc_32.cbproj +0 -173
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
- data/build/tdclrb/GEM_VERSION +0 -3
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
- 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"
|
|
@@ -23,37 +23,53 @@ STDMETHODIMP CFlags::get_Bits(short Index, VARIANT_BOOL* Value)
|
|
|
23
23
|
{
|
|
24
24
|
switch (Index)
|
|
25
25
|
{
|
|
26
|
-
case 0:
|
|
26
|
+
case 0:
|
|
27
|
+
*Value = m_flags->bit0;
|
|
27
28
|
break;
|
|
28
|
-
case 1:
|
|
29
|
+
case 1:
|
|
30
|
+
*Value = m_flags->bit1;
|
|
29
31
|
break;
|
|
30
|
-
case 2:
|
|
32
|
+
case 2:
|
|
33
|
+
*Value = m_flags->bit2;
|
|
31
34
|
break;
|
|
32
|
-
case 3:
|
|
35
|
+
case 3:
|
|
36
|
+
*Value = m_flags->bit3;
|
|
33
37
|
break;
|
|
34
|
-
case 4:
|
|
38
|
+
case 4:
|
|
39
|
+
*Value = m_flags->bit4;
|
|
35
40
|
break;
|
|
36
|
-
case 5:
|
|
41
|
+
case 5:
|
|
42
|
+
*Value = m_flags->bit5;
|
|
37
43
|
break;
|
|
38
|
-
case 6:
|
|
44
|
+
case 6:
|
|
45
|
+
*Value = m_flags->bit6;
|
|
39
46
|
break;
|
|
40
|
-
case 7:
|
|
47
|
+
case 7:
|
|
48
|
+
*Value = m_flags->bit7;
|
|
41
49
|
break;
|
|
42
|
-
case 8:
|
|
50
|
+
case 8:
|
|
51
|
+
*Value = m_flags->bit8;
|
|
43
52
|
break;
|
|
44
|
-
case 9:
|
|
53
|
+
case 9:
|
|
54
|
+
*Value = m_flags->bit9;
|
|
45
55
|
break;
|
|
46
|
-
case 10:
|
|
56
|
+
case 10:
|
|
57
|
+
*Value = m_flags->bitA;
|
|
47
58
|
break;
|
|
48
|
-
case 11:
|
|
59
|
+
case 11:
|
|
60
|
+
*Value = m_flags->bitB;
|
|
49
61
|
break;
|
|
50
|
-
case 12:
|
|
62
|
+
case 12:
|
|
63
|
+
*Value = m_flags->bitC;
|
|
51
64
|
break;
|
|
52
|
-
case 13:
|
|
65
|
+
case 13:
|
|
66
|
+
*Value = m_flags->bitD;
|
|
53
67
|
break;
|
|
54
|
-
case 14:
|
|
68
|
+
case 14:
|
|
69
|
+
*Value = m_flags->bitE;
|
|
55
70
|
break;
|
|
56
|
-
case 15:
|
|
71
|
+
case 15:
|
|
72
|
+
*Value = m_flags->bitF;
|
|
57
73
|
break;
|
|
58
74
|
}
|
|
59
75
|
return S_OK;
|
|
@@ -63,37 +79,53 @@ STDMETHODIMP CFlags::put_Bits(short Index, VARIANT_BOOL Value)
|
|
|
63
79
|
{
|
|
64
80
|
switch (Index)
|
|
65
81
|
{
|
|
66
|
-
case 0:
|
|
82
|
+
case 0:
|
|
83
|
+
m_flags->bit0 = Value;
|
|
67
84
|
break;
|
|
68
|
-
case 1:
|
|
85
|
+
case 1:
|
|
86
|
+
m_flags->bit1 = Value;
|
|
69
87
|
break;
|
|
70
|
-
case 2:
|
|
88
|
+
case 2:
|
|
89
|
+
m_flags->bit2 = Value;
|
|
71
90
|
break;
|
|
72
|
-
case 3:
|
|
91
|
+
case 3:
|
|
92
|
+
m_flags->bit3 = Value;
|
|
73
93
|
break;
|
|
74
|
-
case 4:
|
|
94
|
+
case 4:
|
|
95
|
+
m_flags->bit4 = Value;
|
|
75
96
|
break;
|
|
76
|
-
case 5:
|
|
97
|
+
case 5:
|
|
98
|
+
m_flags->bit5 = Value;
|
|
77
99
|
break;
|
|
78
|
-
case 6:
|
|
100
|
+
case 6:
|
|
101
|
+
m_flags->bit6 = Value;
|
|
79
102
|
break;
|
|
80
|
-
case 7:
|
|
103
|
+
case 7:
|
|
104
|
+
m_flags->bit7 = Value;
|
|
81
105
|
break;
|
|
82
|
-
case 8:
|
|
106
|
+
case 8:
|
|
107
|
+
m_flags->bit8 = Value;
|
|
83
108
|
break;
|
|
84
|
-
case 9:
|
|
109
|
+
case 9:
|
|
110
|
+
m_flags->bit9 = Value;
|
|
85
111
|
break;
|
|
86
|
-
case 10:
|
|
112
|
+
case 10:
|
|
113
|
+
m_flags->bitA = Value;
|
|
87
114
|
break;
|
|
88
|
-
case 11:
|
|
115
|
+
case 11:
|
|
116
|
+
m_flags->bitB = Value;
|
|
89
117
|
break;
|
|
90
|
-
case 12:
|
|
118
|
+
case 12:
|
|
119
|
+
m_flags->bitC = Value;
|
|
91
120
|
break;
|
|
92
|
-
case 13:
|
|
121
|
+
case 13:
|
|
122
|
+
m_flags->bitD = Value;
|
|
93
123
|
break;
|
|
94
|
-
case 14:
|
|
124
|
+
case 14:
|
|
125
|
+
m_flags->bitE = Value;
|
|
95
126
|
break;
|
|
96
|
-
case 15:
|
|
127
|
+
case 15:
|
|
128
|
+
m_flags->bitF = Value;
|
|
97
129
|
break;
|
|
98
130
|
}
|
|
99
131
|
|
|
@@ -102,10 +134,16 @@ STDMETHODIMP CFlags::put_Bits(short Index, VARIANT_BOOL Value)
|
|
|
102
134
|
|
|
103
135
|
STDMETHODIMP CFlags::All(unsigned short* Value)
|
|
104
136
|
{
|
|
105
|
-
*Value = m_flags
|
|
137
|
+
*Value = m_flags->all;
|
|
106
138
|
return S_OK;
|
|
107
139
|
}
|
|
108
140
|
|
|
109
|
-
STDMETHODIMP CFlags::SetBit(short Index, VARIANT_BOOL Value)
|
|
141
|
+
STDMETHODIMP CFlags::SetBit(short Index, VARIANT_BOOL Value)
|
|
142
|
+
{
|
|
143
|
+
return put_Bits(Index, Value);
|
|
144
|
+
}
|
|
110
145
|
|
|
111
|
-
STDMETHODIMP CFlags::GetBit(short Index, VARIANT_BOOL* Value)
|
|
146
|
+
STDMETHODIMP CFlags::GetBit(short Index, VARIANT_BOOL* Value)
|
|
147
|
+
{
|
|
148
|
+
return get_Bits(Index, Value);
|
|
149
|
+
}
|
|
@@ -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,26 +24,28 @@
|
|
|
24
24
|
|
|
25
25
|
using namespace ATL;
|
|
26
26
|
|
|
27
|
-
class ATL_NO_VTABLE CFlags
|
|
28
|
-
public
|
|
27
|
+
class ATL_NO_VTABLE CFlags
|
|
28
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
29
|
+
public CComCoClass<CFlags, &CLSID_Flags>,
|
|
30
|
+
public IDispatchImpl<IFlags, &IID_IFlags, &LIBID_transactd,
|
|
31
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
29
32
|
{
|
|
30
33
|
public:
|
|
31
34
|
CFlags() {}
|
|
32
|
-
bzs::db::protocol::tdap::FLAGS m_flags;
|
|
35
|
+
bzs::db::protocol::tdap::FLAGS* m_flags;
|
|
33
36
|
|
|
34
|
-
BEGIN_COM_MAP(CFlags)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
BEGIN_COM_MAP(CFlags)
|
|
38
|
+
COM_INTERFACE_ENTRY(IFlags)
|
|
39
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
40
|
+
END_COM_MAP()
|
|
38
41
|
|
|
39
42
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
40
43
|
|
|
41
|
-
HRESULT FinalConstruct() {return S_OK;}
|
|
44
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
42
45
|
|
|
43
46
|
void FinalRelease() {}
|
|
44
47
|
|
|
45
48
|
public:
|
|
46
|
-
|
|
47
49
|
STDMETHOD(get_Bits)(short Index, VARIANT_BOOL* Value);
|
|
48
50
|
STDMETHOD(put_Bits)(short Index, VARIANT_BOOL Value);
|
|
49
51
|
|
|
@@ -51,5 +53,4 @@ public:
|
|
|
51
53
|
|
|
52
54
|
STDMETHOD(GetBit)(short Index, VARIANT_BOOL* Value);
|
|
53
55
|
STDMETHOD(SetBit)(short Index, VARIANT_BOOL Value);
|
|
54
|
-
|
|
55
56
|
};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/*=================================================================
|
|
2
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
3
|
+
|
|
4
|
+
This program is free software; you can redistribute it and/or
|
|
5
|
+
modify it under the terms of the GNU General Public License
|
|
6
|
+
as published by the Free Software Foundation; either version 2
|
|
7
|
+
of the License, or (at your option) any later version.
|
|
8
|
+
|
|
9
|
+
This program is distributed in the hope that it will be useful,
|
|
10
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
GNU General Public License for more details.
|
|
13
|
+
|
|
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
|
|
17
|
+
02111-1307, USA.
|
|
18
|
+
=================================================================*/
|
|
19
|
+
#include "stdafx.h"
|
|
20
|
+
#include "GroupQuery.h"
|
|
21
|
+
#include "QueryBase.h"
|
|
22
|
+
#include "RecordsetQuery.h"
|
|
23
|
+
#include "FieldNames.h"
|
|
24
|
+
|
|
25
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
26
|
+
|
|
27
|
+
void CGroupQuery::setResult(IGroupQuery** retVal)
|
|
28
|
+
{
|
|
29
|
+
this->QueryInterface(IID_IGroupQuery, (void**)retVal);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
STDMETHODIMP CGroupQuery::KeyField(BSTR Name0, BSTR Name1, BSTR Name2,
|
|
33
|
+
BSTR Name3, BSTR Name4, BSTR Name5,
|
|
34
|
+
BSTR Name6, BSTR Name7, BSTR Name8,
|
|
35
|
+
BSTR Name9, BSTR Name10,
|
|
36
|
+
IGroupQuery** retVal)
|
|
37
|
+
{
|
|
38
|
+
if (Name0 && Name0[0])
|
|
39
|
+
{
|
|
40
|
+
if (!Name1 || !Name1[0])
|
|
41
|
+
m_gq.keyField(Name0);
|
|
42
|
+
else if (!Name2 || !Name2[0])
|
|
43
|
+
m_gq.keyField(Name0, Name1);
|
|
44
|
+
else if (!Name3 || !Name3[0])
|
|
45
|
+
m_gq.keyField(Name0, Name1, Name2);
|
|
46
|
+
else if (!Name4 || !Name4[0])
|
|
47
|
+
m_gq.keyField(Name0, Name1, Name2, Name3);
|
|
48
|
+
else if (!Name5 || !Name5[0])
|
|
49
|
+
m_gq.keyField(Name0, Name1, Name2, Name3, Name4);
|
|
50
|
+
else if (!Name6 || !Name6[0])
|
|
51
|
+
m_gq.keyField(Name0, Name1, Name2, Name3, Name4, Name5);
|
|
52
|
+
else if (!Name7 || !Name7[0])
|
|
53
|
+
m_gq.keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6);
|
|
54
|
+
else if (!Name8 || !Name8[0])
|
|
55
|
+
m_gq.keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
56
|
+
Name7);
|
|
57
|
+
else if (!Name9 || !Name9[0])
|
|
58
|
+
m_gq.keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
59
|
+
Name7, Name8);
|
|
60
|
+
else if (!Name10 || !Name10[0])
|
|
61
|
+
m_gq.keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
62
|
+
Name7, Name8, Name9);
|
|
63
|
+
else
|
|
64
|
+
m_gq.keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
65
|
+
Name7, Name8, Name9, Name10);
|
|
66
|
+
}
|
|
67
|
+
setResult(retVal);
|
|
68
|
+
return S_OK;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
STDMETHODIMP CGroupQuery::AddFunction(eGroupFunc func, IFieldNames* targetNames,
|
|
72
|
+
BSTR resultName, VARIANT iq,
|
|
73
|
+
IGroupQuery** retVal)
|
|
74
|
+
{
|
|
75
|
+
|
|
76
|
+
CFieldNames* fn = dynamic_cast<CFieldNames*>(targetNames);
|
|
77
|
+
if (!fn)
|
|
78
|
+
return Error("Invalid targetNames", IID_IGroupQuery);
|
|
79
|
+
|
|
80
|
+
boost::shared_ptr<groupFuncBase> f;
|
|
81
|
+
fieldNames* fns;
|
|
82
|
+
fns = fn->m_fnsPtr;
|
|
83
|
+
|
|
84
|
+
if (func == fsum)
|
|
85
|
+
f.reset(new sum(*fns, resultName));
|
|
86
|
+
else if (func == fmin)
|
|
87
|
+
f.reset(new min(*fns, resultName));
|
|
88
|
+
else if (func == fmax)
|
|
89
|
+
f.reset(new max(*fns, resultName));
|
|
90
|
+
else if (func == favg)
|
|
91
|
+
f.reset(new avg(*fns, resultName));
|
|
92
|
+
else if (func == fcount)
|
|
93
|
+
{
|
|
94
|
+
if (resultName[0])
|
|
95
|
+
f.reset(new count(resultName));
|
|
96
|
+
else
|
|
97
|
+
f.reset(new count(fns->getValue(0)));
|
|
98
|
+
}
|
|
99
|
+
if (iq.vt == VT_DISPATCH)
|
|
100
|
+
{
|
|
101
|
+
CRecordsetQuery* q = dynamic_cast<CRecordsetQuery*>(iq.pdispVal);
|
|
102
|
+
if (q)
|
|
103
|
+
*f = (q->m_qb);
|
|
104
|
+
}
|
|
105
|
+
else
|
|
106
|
+
f->reset();
|
|
107
|
+
m_funcs.push_back(f);
|
|
108
|
+
m_gq.addFunction(f.get());
|
|
109
|
+
|
|
110
|
+
setResult(retVal);
|
|
111
|
+
return S_OK;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
STDMETHODIMP CGroupQuery::Reset(IGroupQuery** retVal)
|
|
115
|
+
{
|
|
116
|
+
m_gq.reset();
|
|
117
|
+
setResult(retVal);
|
|
118
|
+
return S_OK;
|
|
119
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
/*=================================================================
|
|
3
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
4
|
+
|
|
5
|
+
This program is free software; you can redistribute it and/or
|
|
6
|
+
modify it under the terms of the GNU General Public License
|
|
7
|
+
as published by the Free Software Foundation; either version 2
|
|
8
|
+
of the License, or (at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU General Public License for more details.
|
|
14
|
+
|
|
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
|
|
18
|
+
02111-1307, USA.
|
|
19
|
+
=================================================================*/
|
|
20
|
+
#include "resource.h"
|
|
21
|
+
|
|
22
|
+
#include "tdclatl_i.h"
|
|
23
|
+
#include <bzs/db/protocol/tdap/client/groupQuery.h>
|
|
24
|
+
|
|
25
|
+
using namespace ATL;
|
|
26
|
+
|
|
27
|
+
class ATL_NO_VTABLE CGroupQuery
|
|
28
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
29
|
+
public CComCoClass<CGroupQuery, &CLSID_GroupQuery>,
|
|
30
|
+
public IDispatchImpl<IGroupQuery, &IID_IGroupQuery, &LIBID_transactd,
|
|
31
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
32
|
+
{
|
|
33
|
+
void setResult(IGroupQuery** retVal);
|
|
34
|
+
std::vector<boost::shared_ptr<
|
|
35
|
+
bzs::db::protocol::tdap::client::groupFuncBase> > m_funcs;
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
bzs::db::protocol::tdap::client::groupQuery m_gq;
|
|
39
|
+
CGroupQuery() {}
|
|
40
|
+
|
|
41
|
+
DECLARE_REGISTRY_RESOURCEID(IDR_GROUPQUERY)
|
|
42
|
+
|
|
43
|
+
BEGIN_COM_MAP(CGroupQuery)
|
|
44
|
+
COM_INTERFACE_ENTRY(IGroupQuery)
|
|
45
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
46
|
+
END_COM_MAP()
|
|
47
|
+
|
|
48
|
+
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
49
|
+
|
|
50
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
51
|
+
|
|
52
|
+
void FinalRelease(){};
|
|
53
|
+
|
|
54
|
+
public:
|
|
55
|
+
STDMETHOD(KeyField)(BSTR Name, BSTR Name1, BSTR Name2, BSTR Name3,
|
|
56
|
+
BSTR Name4, BSTR Name5, BSTR Name6, BSTR Name7,
|
|
57
|
+
BSTR Name8, BSTR Name9, BSTR Name10,
|
|
58
|
+
IGroupQuery** retVal);
|
|
59
|
+
STDMETHOD(AddFunction)(eGroupFunc func, IFieldNames* targetNames,
|
|
60
|
+
BSTR resultName, VARIANT q, IGroupQuery** retVal);
|
|
61
|
+
|
|
62
|
+
STDMETHOD(Reset)(IGroupQuery** retVal);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
OBJECT_ENTRY_AUTO(__uuidof(GroupQuery), CGroupQuery)
|
|
@@ -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"
|
|
@@ -34,18 +34,19 @@ STDMETHODIMP CKeyDef::put_SegmentCount(unsigned char Value)
|
|
|
34
34
|
|
|
35
35
|
STDMETHODIMP CKeyDef::Segments(short Index, IKeySegment** Value)
|
|
36
36
|
{
|
|
37
|
-
CComObject<CKeySegment
|
|
37
|
+
CComObject<CKeySegment>* piObj;
|
|
38
38
|
CComObject<CKeySegment>::CreateInstance(&piObj);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
if (piObj)
|
|
40
|
+
{
|
|
41
|
+
piObj->m_tabledefPtr = m_tabledefPtr;
|
|
42
|
+
piObj->m_keyIndex = m_index;
|
|
43
|
+
piObj->m_index = Index;
|
|
44
|
+
IKeySegment* sg;
|
|
45
|
+
piObj->QueryInterface(IID_IKeySegment, (void**)&sg);
|
|
46
|
+
_ASSERTE(sg);
|
|
47
|
+
*Value = piObj;
|
|
48
|
+
}
|
|
49
|
+
else
|
|
50
|
+
*Value = 0;
|
|
50
51
|
return S_OK;
|
|
51
52
|
}
|
|
@@ -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,32 +24,35 @@
|
|
|
24
24
|
#include <bzs/db/protocol/tdap/client/dbDef.h>
|
|
25
25
|
using namespace ATL;
|
|
26
26
|
|
|
27
|
-
class ATL_NO_VTABLE CKeyDef
|
|
28
|
-
public
|
|
29
|
-
|
|
27
|
+
class ATL_NO_VTABLE CKeyDef
|
|
28
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
29
|
+
public CComCoClass<CKeyDef, &CLSID_KeyDef>,
|
|
30
|
+
public IDispatchImpl<IKeyDef, &IID_IKeyDef, &LIBID_transactd,
|
|
31
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
30
32
|
{
|
|
31
|
-
|
|
33
|
+
bzs::db::protocol::tdap::keydef* keydef()
|
|
34
|
+
{
|
|
35
|
+
return &(*m_tabledefPtr)->keyDefs[m_index];
|
|
36
|
+
}
|
|
37
|
+
|
|
32
38
|
public:
|
|
33
|
-
CKeyDef():m_tabledefPtr(NULL)
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
CKeyDef() : m_tabledefPtr(NULL) {}
|
|
40
|
+
bzs::db::protocol::tdap::tabledef** m_tabledefPtr;
|
|
41
|
+
short m_index;
|
|
36
42
|
|
|
37
|
-
BEGIN_COM_MAP(CKeyDef)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
BEGIN_COM_MAP(CKeyDef)
|
|
44
|
+
COM_INTERFACE_ENTRY(IKeyDef)
|
|
45
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
46
|
+
END_COM_MAP()
|
|
41
47
|
|
|
42
48
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
43
49
|
|
|
44
|
-
HRESULT FinalConstruct() {return S_OK;}
|
|
50
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
45
51
|
|
|
46
52
|
void FinalRelease() {}
|
|
47
53
|
|
|
48
54
|
public:
|
|
49
|
-
|
|
50
|
-
|
|
51
55
|
STDMETHOD(get_SegmentCount)(unsigned char* Value);
|
|
52
56
|
STDMETHOD(Segments)(short Index, IKeySegment** Value);
|
|
53
57
|
STDMETHOD(put_SegmentCount)(unsigned char Value);
|
|
54
|
-
|
|
55
58
|
};
|
|
@@ -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"
|
|
@@ -28,17 +28,18 @@ STDMETHODIMP CKeySegment::get_FieldNum(unsigned char* Value)
|
|
|
28
28
|
|
|
29
29
|
STDMETHODIMP CKeySegment::get_Flags(IFlags** Value)
|
|
30
30
|
{
|
|
31
|
-
CComObject<CFlags
|
|
31
|
+
CComObject<CFlags>* piObj;
|
|
32
32
|
CComObject<CFlags>::CreateInstance(&piObj);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
if (piObj)
|
|
34
|
+
{
|
|
35
|
+
piObj->m_flags = &(segment()->flags);
|
|
36
|
+
IFlags* fl;
|
|
37
|
+
piObj->QueryInterface(IID_IFlags, (void**)&fl);
|
|
38
|
+
_ASSERTE(fl);
|
|
39
|
+
*Value = piObj;
|
|
40
|
+
}
|
|
41
|
+
else
|
|
42
|
+
*Value = 0;
|
|
42
43
|
return S_OK;
|
|
43
44
|
}
|
|
44
45
|
|