1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_ucb.hxx" 26 27 /************************************************************************** 28 TODO 29 ************************************************************************** 30 31 ************************************************************************** 32 33 Props/Commands: 34 35 root folder folder link link 36 (new) (new) 37 ---------------------------------------------------------------- 38 ContentType x x x x x 39 IsDocument x x x x x 40 IsFolder x x x x x 41 Title x x x x x 42 TargetURL x x 43 CreatableContentsInfo x x x x x 44 45 getCommandInfo x x x x x 46 getPropertySetInfo x x x x x 47 getPropertyValues x x x x x 48 setPropertyValues x x x x x 49 createNewContent x x 50 insert x x 51 delete x x 52 open x x 53 transfer x x 54 55 *************************************************************************/ 56 57 #include <com/sun/star/beans/Property.hpp> 58 #include <com/sun/star/beans/PropertyAttribute.hpp> 59 #include <com/sun/star/beans/PropertyValue.hpp> 60 #include <com/sun/star/ucb/CommandInfo.hpp> 61 #include <com/sun/star/ucb/OpenCommandArgument2.hpp> 62 #include <com/sun/star/ucb/TransferInfo.hpp> 63 #include <com/sun/star/uno/Sequence.hxx> 64 #include "hierarchycontent.hxx" 65 66 using namespace com::sun::star; 67 using namespace hierarchy_ucp; 68 69 //========================================================================= 70 // 71 // HierarchyContent implementation. 72 // 73 //========================================================================= 74 75 #define MAKEPROPSEQUENCE( a ) \ 76 uno::Sequence< beans::Property >( a, sizeof( a ) / sizeof( a[ 0 ] ) ) 77 78 #define MAKECMDSEQUENCE( a ) \ 79 uno::Sequence< ucb::CommandInfo >( a, sizeof( a ) / sizeof( a[ 0 ] ) ) 80 81 //========================================================================= 82 // 83 // IMPORTENT: If any property data ( name / type / ... ) are changed, then 84 // HierarchyContent::getPropertyValues(...) must be adapted too! 85 // 86 //========================================================================= 87 88 // virtual 89 uno::Sequence< beans::Property > HierarchyContent::getProperties( 90 const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ ) 91 { 92 osl::Guard< osl::Mutex > aGuard( m_aMutex ); 93 94 if ( m_eKind == LINK ) 95 { 96 //================================================================= 97 // 98 // Link: Supported properties 99 // 100 //================================================================= 101 102 if ( isReadOnly() ) 103 { 104 static beans::Property aLinkPropertyInfoTable[] = 105 { 106 /////////////////////////////////////////////////////////// 107 // Required properties 108 /////////////////////////////////////////////////////////// 109 beans::Property( 110 rtl::OUString( 111 RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ), 112 -1, 113 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 114 beans::PropertyAttribute::BOUND 115 | beans::PropertyAttribute::READONLY 116 ), 117 beans::Property( 118 rtl::OUString( 119 RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ), 120 -1, 121 getCppuBooleanType(), 122 beans::PropertyAttribute::BOUND 123 | beans::PropertyAttribute::READONLY 124 ), 125 beans::Property( 126 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ), 127 -1, 128 getCppuBooleanType(), 129 beans::PropertyAttribute::BOUND 130 | beans::PropertyAttribute::READONLY 131 ), 132 beans::Property( 133 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ), 134 -1, 135 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 136 beans::PropertyAttribute::BOUND 137 | beans::PropertyAttribute::READONLY 138 ), 139 /////////////////////////////////////////////////////////// 140 // Optional standard properties 141 /////////////////////////////////////////////////////////// 142 beans::Property( 143 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" ) ), 144 -1, 145 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 146 beans::PropertyAttribute::BOUND 147 | beans::PropertyAttribute::READONLY 148 ), 149 beans::Property( 150 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 151 "CreatableContentsInfo" ) ), 152 -1, 153 getCppuType( static_cast< 154 const uno::Sequence< ucb::ContentInfo > * >( 0 ) ), 155 beans::PropertyAttribute::BOUND 156 | beans::PropertyAttribute::READONLY ) 157 /////////////////////////////////////////////////////////// 158 // New properties 159 /////////////////////////////////////////////////////////// 160 }; 161 return MAKEPROPSEQUENCE( aLinkPropertyInfoTable ); 162 } 163 else 164 { 165 static beans::Property aLinkPropertyInfoTable[] = 166 { 167 /////////////////////////////////////////////////////////// 168 // Required properties 169 /////////////////////////////////////////////////////////// 170 beans::Property( 171 rtl::OUString( 172 RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ), 173 -1, 174 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 175 beans::PropertyAttribute::BOUND 176 | beans::PropertyAttribute::READONLY 177 ), 178 beans::Property( 179 rtl::OUString( 180 RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ), 181 -1, 182 getCppuBooleanType(), 183 beans::PropertyAttribute::BOUND 184 | beans::PropertyAttribute::READONLY 185 ), 186 beans::Property( 187 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ), 188 -1, 189 getCppuBooleanType(), 190 beans::PropertyAttribute::BOUND 191 | beans::PropertyAttribute::READONLY 192 ), 193 beans::Property( 194 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ), 195 -1, 196 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 197 beans::PropertyAttribute::BOUND 198 ), 199 /////////////////////////////////////////////////////////// 200 // Optional standard properties 201 /////////////////////////////////////////////////////////// 202 beans::Property( 203 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" ) ), 204 -1, 205 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 206 beans::PropertyAttribute::BOUND 207 ), 208 beans::Property( 209 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 210 "CreatableContentsInfo" ) ), 211 -1, 212 getCppuType( static_cast< 213 const uno::Sequence< ucb::ContentInfo > * >( 0 ) ), 214 beans::PropertyAttribute::BOUND 215 | beans::PropertyAttribute::READONLY ) 216 /////////////////////////////////////////////////////////// 217 // New properties 218 /////////////////////////////////////////////////////////// 219 }; 220 return MAKEPROPSEQUENCE( aLinkPropertyInfoTable ); 221 } 222 } 223 else if ( m_eKind == FOLDER ) 224 { 225 //================================================================= 226 // 227 // Folder: Supported properties 228 // 229 //================================================================= 230 231 if ( isReadOnly() ) 232 { 233 static beans::Property aFolderPropertyInfoTable[] = 234 { 235 /////////////////////////////////////////////////////////// 236 // Required properties 237 /////////////////////////////////////////////////////////// 238 beans::Property( 239 rtl::OUString( 240 RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ), 241 -1, 242 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 243 beans::PropertyAttribute::BOUND 244 | beans::PropertyAttribute::READONLY 245 ), 246 beans::Property( 247 rtl::OUString( 248 RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ), 249 -1, 250 getCppuBooleanType(), 251 beans::PropertyAttribute::BOUND 252 | beans::PropertyAttribute::READONLY 253 ), 254 beans::Property( 255 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ), 256 -1, 257 getCppuBooleanType(), 258 beans::PropertyAttribute::BOUND 259 | beans::PropertyAttribute::READONLY 260 ), 261 beans::Property( 262 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ), 263 -1, 264 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 265 beans::PropertyAttribute::BOUND 266 | beans::PropertyAttribute::READONLY 267 ), 268 /////////////////////////////////////////////////////////// 269 // Optional standard properties 270 /////////////////////////////////////////////////////////// 271 beans::Property( 272 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 273 "CreatableContentsInfo" ) ), 274 -1, 275 getCppuType( static_cast< 276 const uno::Sequence< ucb::ContentInfo > * >( 0 ) ), 277 beans::PropertyAttribute::BOUND 278 | beans::PropertyAttribute::READONLY ) 279 /////////////////////////////////////////////////////////// 280 // New properties 281 /////////////////////////////////////////////////////////// 282 }; 283 return MAKEPROPSEQUENCE( aFolderPropertyInfoTable ); 284 } 285 else 286 { 287 static beans::Property aFolderPropertyInfoTable[] = 288 { 289 /////////////////////////////////////////////////////////// 290 // Required properties 291 /////////////////////////////////////////////////////////// 292 beans::Property( 293 rtl::OUString( 294 RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ), 295 -1, 296 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 297 beans::PropertyAttribute::BOUND 298 | beans::PropertyAttribute::READONLY 299 ), 300 beans::Property( 301 rtl::OUString( 302 RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ), 303 -1, 304 getCppuBooleanType(), 305 beans::PropertyAttribute::BOUND 306 | beans::PropertyAttribute::READONLY 307 ), 308 beans::Property( 309 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ), 310 -1, 311 getCppuBooleanType(), 312 beans::PropertyAttribute::BOUND 313 | beans::PropertyAttribute::READONLY 314 ), 315 beans::Property( 316 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ), 317 -1, 318 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 319 beans::PropertyAttribute::BOUND 320 ), 321 /////////////////////////////////////////////////////////// 322 // Optional standard properties 323 /////////////////////////////////////////////////////////// 324 beans::Property( 325 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 326 "CreatableContentsInfo" ) ), 327 -1, 328 getCppuType( static_cast< 329 const uno::Sequence< ucb::ContentInfo > * >( 0 ) ), 330 beans::PropertyAttribute::BOUND 331 | beans::PropertyAttribute::READONLY ) 332 /////////////////////////////////////////////////////////// 333 // New properties 334 /////////////////////////////////////////////////////////// 335 }; 336 return MAKEPROPSEQUENCE( aFolderPropertyInfoTable ); 337 } 338 } 339 else 340 { 341 //================================================================= 342 // 343 // Root Folder: Supported properties 344 // 345 //================================================================= 346 347 // Currently no difference between reonly /read-write 348 // -> all props ar read-only 349 350 static beans::Property aRootFolderPropertyInfoTable[] = 351 { 352 /////////////////////////////////////////////////////////////// 353 // Required properties 354 /////////////////////////////////////////////////////////////// 355 beans::Property( 356 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ContentType" ) ), 357 -1, 358 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 359 beans::PropertyAttribute::BOUND 360 | beans::PropertyAttribute::READONLY 361 ), 362 beans::Property( 363 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsDocument" ) ), 364 -1, 365 getCppuBooleanType(), 366 beans::PropertyAttribute::BOUND 367 | beans::PropertyAttribute::READONLY 368 ), 369 beans::Property( 370 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsFolder" ) ), 371 -1, 372 getCppuBooleanType(), 373 beans::PropertyAttribute::BOUND 374 | beans::PropertyAttribute::READONLY 375 ), 376 beans::Property( 377 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ), 378 -1, 379 getCppuType( static_cast< const rtl::OUString * >( 0 ) ), 380 beans::PropertyAttribute::BOUND 381 | beans::PropertyAttribute::READONLY 382 ), 383 /////////////////////////////////////////////////////////////// 384 // Optional standard properties 385 /////////////////////////////////////////////////////////////// 386 beans::Property( 387 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 388 "CreatableContentsInfo" ) ), 389 -1, 390 getCppuType( static_cast< 391 const uno::Sequence< ucb::ContentInfo > * >( 0 ) ), 392 beans::PropertyAttribute::BOUND 393 | beans::PropertyAttribute::READONLY ) 394 /////////////////////////////////////////////////////////////// 395 // New properties 396 /////////////////////////////////////////////////////////////// 397 }; 398 return MAKEPROPSEQUENCE( aRootFolderPropertyInfoTable ); 399 } 400 } 401 402 //========================================================================= 403 // virtual 404 uno::Sequence< ucb::CommandInfo > HierarchyContent::getCommands( 405 const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ ) 406 { 407 osl::Guard< osl::Mutex > aGuard( m_aMutex ); 408 409 if ( m_eKind == LINK ) 410 { 411 //================================================================= 412 // 413 // Link: Supported commands 414 // 415 //================================================================= 416 417 if ( isReadOnly() ) 418 { 419 static const ucb::CommandInfo aLinkCommandInfoTable[] = 420 { 421 /////////////////////////////////////////////////////////// 422 // Required commands 423 /////////////////////////////////////////////////////////// 424 ucb::CommandInfo( 425 rtl::OUString( 426 RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), 427 -1, 428 getCppuVoidType() 429 ), 430 ucb::CommandInfo( 431 rtl::OUString( 432 RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), 433 -1, 434 getCppuVoidType() 435 ), 436 ucb::CommandInfo( 437 rtl::OUString( 438 RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), 439 -1, 440 getCppuType( 441 static_cast< uno::Sequence< beans::Property > * >( 0 ) ) 442 ), 443 ucb::CommandInfo( 444 rtl::OUString( 445 RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), 446 -1, 447 getCppuType( 448 static_cast< 449 uno::Sequence< beans::PropertyValue > * >( 0 ) ) 450 ) 451 /////////////////////////////////////////////////////////// 452 // Optional standard commands 453 /////////////////////////////////////////////////////////// 454 455 /////////////////////////////////////////////////////////// 456 // New commands 457 /////////////////////////////////////////////////////////// 458 }; 459 return MAKECMDSEQUENCE( aLinkCommandInfoTable ); 460 } 461 else 462 { 463 static const ucb::CommandInfo aLinkCommandInfoTable[] = 464 { 465 /////////////////////////////////////////////////////////// 466 // Required commands 467 /////////////////////////////////////////////////////////// 468 ucb::CommandInfo( 469 rtl::OUString( 470 RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), 471 -1, 472 getCppuVoidType() 473 ), 474 ucb::CommandInfo( 475 rtl::OUString( 476 RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), 477 -1, 478 getCppuVoidType() 479 ), 480 ucb::CommandInfo( 481 rtl::OUString( 482 RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), 483 -1, 484 getCppuType( 485 static_cast< uno::Sequence< beans::Property > * >( 0 ) ) 486 ), 487 ucb::CommandInfo( 488 rtl::OUString( 489 RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), 490 -1, 491 getCppuType( 492 static_cast< 493 uno::Sequence< beans::PropertyValue > * >( 0 ) ) 494 ), 495 /////////////////////////////////////////////////////////// 496 // Optional standard commands 497 /////////////////////////////////////////////////////////// 498 ucb::CommandInfo( 499 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ), 500 -1, 501 getCppuBooleanType() 502 ), 503 ucb::CommandInfo( 504 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ), 505 -1, 506 getCppuVoidType() 507 ) 508 /////////////////////////////////////////////////////////// 509 // New commands 510 /////////////////////////////////////////////////////////// 511 }; 512 return MAKECMDSEQUENCE( aLinkCommandInfoTable ); 513 } 514 } 515 else if ( m_eKind == FOLDER ) 516 { 517 //================================================================= 518 // 519 // Folder: Supported commands 520 // 521 //================================================================= 522 523 if ( isReadOnly() ) 524 { 525 static const ucb::CommandInfo aFolderCommandInfoTable[] = 526 { 527 /////////////////////////////////////////////////////////// 528 // Required commands 529 /////////////////////////////////////////////////////////// 530 ucb::CommandInfo( 531 rtl::OUString( 532 RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), 533 -1, 534 getCppuVoidType() 535 ), 536 ucb::CommandInfo( 537 rtl::OUString( 538 RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), 539 -1, 540 getCppuVoidType() 541 ), 542 ucb::CommandInfo( 543 rtl::OUString( 544 RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), 545 -1, 546 getCppuType( 547 static_cast< uno::Sequence< beans::Property > * >( 0 ) ) 548 ), 549 ucb::CommandInfo( 550 rtl::OUString( 551 RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), 552 -1, 553 getCppuType( 554 static_cast< 555 uno::Sequence< beans::PropertyValue > * >( 0 ) ) 556 ), 557 /////////////////////////////////////////////////////////// 558 // Optional standard commands 559 /////////////////////////////////////////////////////////// 560 ucb::CommandInfo( 561 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ), 562 -1, 563 getCppuType( 564 static_cast< ucb::OpenCommandArgument2 * >( 0 ) ) 565 ) 566 /////////////////////////////////////////////////////////// 567 // New commands 568 /////////////////////////////////////////////////////////// 569 }; 570 return MAKECMDSEQUENCE( aFolderCommandInfoTable ); 571 } 572 else 573 { 574 static const ucb::CommandInfo aFolderCommandInfoTable[] = 575 { 576 /////////////////////////////////////////////////////////// 577 // Required commands 578 /////////////////////////////////////////////////////////// 579 ucb::CommandInfo( 580 rtl::OUString( 581 RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), 582 -1, 583 getCppuVoidType() 584 ), 585 ucb::CommandInfo( 586 rtl::OUString( 587 RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), 588 -1, 589 getCppuVoidType() 590 ), 591 ucb::CommandInfo( 592 rtl::OUString( 593 RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), 594 -1, 595 getCppuType( 596 static_cast< uno::Sequence< beans::Property > * >( 0 ) ) 597 ), 598 ucb::CommandInfo( 599 rtl::OUString( 600 RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), 601 -1, 602 getCppuType( 603 static_cast< 604 uno::Sequence< beans::PropertyValue > * >( 0 ) ) 605 ), 606 /////////////////////////////////////////////////////////// 607 // Optional standard commands 608 /////////////////////////////////////////////////////////// 609 ucb::CommandInfo( 610 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "delete" ) ), 611 -1, 612 getCppuBooleanType() 613 ), 614 ucb::CommandInfo( 615 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ), 616 -1, 617 getCppuVoidType() 618 ), 619 ucb::CommandInfo( 620 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ), 621 -1, 622 getCppuType( 623 static_cast< ucb::OpenCommandArgument2 * >( 0 ) ) 624 ), 625 ucb::CommandInfo( 626 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ), 627 -1, 628 getCppuType( static_cast< ucb::TransferInfo * >( 0 ) ) 629 ), 630 ucb::CommandInfo( 631 rtl::OUString( 632 RTL_CONSTASCII_USTRINGPARAM( "createNewContent" ) ), 633 -1, 634 getCppuType( static_cast< ucb::ContentInfo * >( 0 ) ) 635 ) 636 /////////////////////////////////////////////////////////// 637 // New commands 638 /////////////////////////////////////////////////////////// 639 }; 640 return MAKECMDSEQUENCE( aFolderCommandInfoTable ); 641 } 642 } 643 else 644 { 645 //================================================================= 646 // 647 // Root Folder: Supported commands 648 // 649 //================================================================= 650 651 if ( isReadOnly() ) 652 { 653 static const ucb::CommandInfo aRootFolderCommandInfoTable[] = 654 { 655 /////////////////////////////////////////////////////////// 656 // Required commands 657 /////////////////////////////////////////////////////////// 658 ucb::CommandInfo( 659 rtl::OUString( 660 RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), 661 -1, 662 getCppuVoidType() 663 ), 664 ucb::CommandInfo( 665 rtl::OUString( 666 RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), 667 -1, 668 getCppuVoidType() 669 ), 670 ucb::CommandInfo( 671 rtl::OUString( 672 RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), 673 -1, 674 getCppuType( 675 static_cast< uno::Sequence< beans::Property > * >( 0 ) ) 676 ), 677 ucb::CommandInfo( 678 rtl::OUString( 679 RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), 680 -1, 681 getCppuType( 682 static_cast< 683 uno::Sequence< beans::PropertyValue > * >( 0 ) ) 684 ), 685 /////////////////////////////////////////////////////////// 686 // Optional standard commands 687 /////////////////////////////////////////////////////////// 688 ucb::CommandInfo( 689 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ), 690 -1, 691 getCppuType( 692 static_cast< ucb::OpenCommandArgument2 * >( 0 ) ) 693 ) 694 /////////////////////////////////////////////////////////// 695 // New commands 696 /////////////////////////////////////////////////////////// 697 }; 698 return MAKECMDSEQUENCE( aRootFolderCommandInfoTable ); 699 } 700 else 701 { 702 static const ucb::CommandInfo aRootFolderCommandInfoTable[] = 703 { 704 /////////////////////////////////////////////////////////// 705 // Required commands 706 /////////////////////////////////////////////////////////// 707 ucb::CommandInfo( 708 rtl::OUString( 709 RTL_CONSTASCII_USTRINGPARAM( "getCommandInfo" ) ), 710 -1, 711 getCppuVoidType() 712 ), 713 ucb::CommandInfo( 714 rtl::OUString( 715 RTL_CONSTASCII_USTRINGPARAM( "getPropertySetInfo" ) ), 716 -1, 717 getCppuVoidType() 718 ), 719 ucb::CommandInfo( 720 rtl::OUString( 721 RTL_CONSTASCII_USTRINGPARAM( "getPropertyValues" ) ), 722 -1, 723 getCppuType( 724 static_cast< uno::Sequence< beans::Property > * >( 0 ) ) 725 ), 726 ucb::CommandInfo( 727 rtl::OUString( 728 RTL_CONSTASCII_USTRINGPARAM( "setPropertyValues" ) ), 729 -1, 730 getCppuType( 731 static_cast< 732 uno::Sequence< beans::PropertyValue > * >( 0 ) ) 733 ), 734 /////////////////////////////////////////////////////////// 735 // Optional standard commands 736 /////////////////////////////////////////////////////////// 737 ucb::CommandInfo( 738 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "open" ) ), 739 -1, 740 getCppuType( 741 static_cast< ucb::OpenCommandArgument2 * >( 0 ) ) 742 ), 743 ucb::CommandInfo( 744 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "transfer" ) ), 745 -1, 746 getCppuType( static_cast< ucb::TransferInfo * >( 0 ) ) 747 ), 748 ucb::CommandInfo( 749 rtl::OUString( 750 RTL_CONSTASCII_USTRINGPARAM( "createNewContent" ) ), 751 -1, 752 getCppuType( static_cast< ucb::ContentInfo * >( 0 ) ) 753 ) 754 /////////////////////////////////////////////////////////// 755 // New commands 756 /////////////////////////////////////////////////////////// 757 }; 758 return MAKECMDSEQUENCE( aRootFolderCommandInfoTable ); 759 } 760 } 761 } 762