Changeset 1626 for trunk/include/win/wine/obj_base.h
- Timestamp:
- Nov 5, 1999, 9:38:46 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/win/wine/obj_base.h
r1546 r1626 1 /* $Id: obj_base.h,v 1.1 3 1999-11-02 19:06:43 sandervlExp $ */1 /* $Id: obj_base.h,v 1.14 1999-11-05 20:38:46 davidr Exp $ */ 2 2 /* 3 3 * This file defines the macros and types necessary to define COM interfaces, … … 325 325 326 326 #define ICOM_VTABLE(iface) iface##Vtbl 327 #define ICOM_VFIELD(iface) ICOM_VTABLE(iface)* lpVtbl 328 #define ICOM_VTBL(iface) (iface)->lpVtbl 327 329 328 330 … … 336 338 #define ICOM_METHOD(ret,xfn) \ 337 339 public: virtual ret (CALLBACK xfn)(void) = 0; 338 339 340 #define ICOM_METHOD1(ret,xfn,ta,na) \ 340 341 public: virtual ret (CALLBACK xfn)(ta a) = 0; 341 342 342 #define ICOM_METHOD2(ret,xfn,ta,na,tb,nb) \ 343 343 public: virtual ret (CALLBACK xfn)(ta a,tb b) = 0; 344 345 344 #define ICOM_METHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \ 346 345 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c) = 0; 347 348 346 #define ICOM_METHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \ 349 347 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d) = 0; 350 351 348 #define ICOM_METHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 352 349 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) = 0; 353 354 350 #define ICOM_METHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 355 351 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) = 0; 356 357 352 #define ICOM_METHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 358 353 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) = 0; 359 360 354 #define ICOM_METHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 361 355 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) = 0; 362 363 356 #define ICOM_METHOD9(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni) \ 364 357 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i) = 0; 365 366 358 #define ICOM_METHOD10(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni,tj,nj) \ 367 359 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j) = 0; … … 370 362 #define ICOM_CMETHOD(ret,xfn) \ 371 363 public: virtual ret (CALLBACK xfn)(void) const = 0; 372 373 364 #define ICOM_CMETHOD1(ret,xfn,ta,na) \ 374 365 public: virtual ret (CALLBACK xfn)(ta a) const = 0; 375 376 366 #define ICOM_CMETHOD2(ret,xfn,ta,na,tb,nb) \ 377 367 public: virtual ret (CALLBACK xfn)(ta a,tb b) const = 0; 378 379 368 #define ICOM_CMETHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \ 380 369 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c) const = 0; 381 382 370 #define ICOM_CMETHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \ 383 371 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d) const = 0; 384 385 372 #define ICOM_CMETHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 386 373 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const = 0; 387 388 374 #define ICOM_CMETHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 389 375 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const = 0; 390 391 376 #define ICOM_CMETHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 392 377 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const = 0; 393 394 378 #define ICOM_CMETHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 395 379 public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const = 0; … … 398 382 #define ICOM_VMETHOD(xfn) \ 399 383 public: virtual void (CALLBACK xfn)(void) = 0; 400 401 384 #define ICOM_VMETHOD1(xfn,ta,na) \ 402 385 public: virtual void (CALLBACK xfn)(ta a) = 0; 403 404 386 #define ICOM_VMETHOD2(xfn,ta,na,tb,nb) \ 405 387 public: virtual void (CALLBACK xfn)(ta a,tb b) = 0; 406 407 388 #define ICOM_VMETHOD3(xfn,ta,na,tb,nb,tc,nc) \ 408 389 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c) = 0; 409 410 390 #define ICOM_VMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \ 411 391 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d) = 0; 412 413 392 #define ICOM_VMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 414 393 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) = 0; 415 416 394 #define ICOM_VMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 417 395 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) = 0; 418 419 396 #define ICOM_VMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 420 397 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) = 0; 421 422 398 #define ICOM_VMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 423 399 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) = 0; … … 426 402 #define ICOM_CVMETHOD(xfn) \ 427 403 public: virtual void (CALLBACK xfn)(void) const = 0; 428 429 404 #define ICOM_CVMETHOD1(xfn,ta,na) \ 430 405 public: virtual void (CALLBACK xfn)(ta a) const = 0; 431 432 406 #define ICOM_CVMETHOD2(xfn,ta,na,tb,nb) \ 433 407 public: virtual void (CALLBACK xfn)(ta a,tb b) const = 0; 434 435 408 #define ICOM_CVMETHOD3(xfn,ta,na,tb,nb,tc,nc) \ 436 409 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c) const = 0; 437 438 410 #define ICOM_CVMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \ 439 411 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d) const = 0; 440 441 412 #define ICOM_CVMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 442 413 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const = 0; 443 444 414 #define ICOM_CVMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 445 415 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const = 0; 446 447 416 #define ICOM_CVMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 448 417 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const = 0; 449 450 418 #define ICOM_CVMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 451 419 public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const = 0; … … 467 435 #endif /* ICOM_USE_COM_INTERFACE_ATTRIBUTE */ 468 436 469 #define ICOM_CALL(xfn, p) this_is_a_syntax_error470 #define ICOM_CALL1(xfn, p,a) this_is_a_syntax_error471 #define ICOM_CALL2(xfn, p,a,b) this_is_a_syntax_error472 #define ICOM_CALL3(xfn, p,a,b,c) this_is_a_syntax_error473 #define ICOM_CALL4(xfn, p,a,b,c,d) this_is_a_syntax_error474 #define ICOM_CALL5(xfn, p,a,b,c,d,e) this_is_a_syntax_error475 #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) this_is_a_syntax_error476 #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) this_is_a_syntax_error477 #define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) this_is_a_syntax_error437 #define ICOM_CALL(xfn, p) (p)->xfn() 438 #define ICOM_CALL1(xfn, p,a) (p)->xfn(a) 439 #define ICOM_CALL2(xfn, p,a,b) (p)->xfn(a,b) 440 #define ICOM_CALL3(xfn, p,a,b,c) (p)->xfn(a,b,c) 441 #define ICOM_CALL4(xfn, p,a,b,c,d) (p)->xfn(a,b,c,d) 442 #define ICOM_CALL5(xfn, p,a,b,c,d,e) (p)->xfn(a,b,c,d,e) 443 #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) (p)->xfn(a,b,c,d,e,f) 444 #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) (p)->xfn(a,b,c,d,e,f,g) 445 #define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) (p)->xfn(a,b,c,d,e,f,g,h) 478 446 479 447 … … 482 450 483 451 452 #ifdef __WINE__ 453 484 454 #define ICOM_METHOD(ret,xfn) \ 485 455 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me); 486 487 456 #define ICOM_METHOD1(ret,xfn,ta,na) \ 488 457 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a); 489 490 458 #define ICOM_METHOD2(ret,xfn,ta,na,tb,nb) \ 491 459 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b); 492 493 460 #define ICOM_METHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \ 494 461 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c); 495 496 462 #define ICOM_METHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \ 497 463 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 498 499 464 #define ICOM_METHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 500 465 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 501 502 466 #define ICOM_METHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 503 467 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 504 505 468 #define ICOM_METHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 506 469 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 507 508 470 #define ICOM_METHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 509 471 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 510 511 472 #define ICOM_METHOD9(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni) \ 512 473 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i); 513 514 474 #define ICOM_METHOD10(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni,tj,nj) \ 515 475 ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j); 516 476 517 518 477 #define ICOM_CMETHOD(ret,xfn) \ 519 478 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me); 520 521 479 #define ICOM_CMETHOD1(ret,xfn,ta,na) \ 522 480 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a); 523 524 481 #define ICOM_CMETHOD2(ret,xfn,ta,na,tb,nb) \ 525 482 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b); 526 527 483 #define ICOM_CMETHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \ 528 484 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c); 529 530 485 #define ICOM_CMETHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \ 531 486 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 532 533 487 #define ICOM_CMETHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 534 488 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 535 536 489 #define ICOM_CMETHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 537 490 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 538 539 491 #define ICOM_CMETHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 540 492 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 541 542 493 #define ICOM_CMETHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 543 494 ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 544 495 545 546 496 #define ICOM_VMETHOD(xfn) \ 547 497 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me); 548 549 498 #define ICOM_VMETHOD1(xfn,ta,na) \ 550 499 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a); 551 552 500 #define ICOM_VMETHOD2(xfn,ta,na,tb,nb) \ 553 501 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b); 554 555 502 #define ICOM_VMETHOD3(xfn,ta,na,tb,nb,tc,nc) \ 556 503 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c); 557 558 504 #define ICOM_VMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \ 559 505 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 560 561 506 #define ICOM_VMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 562 507 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 563 564 508 #define ICOM_VMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 565 509 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 566 567 510 #define ICOM_VMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 568 511 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 569 570 512 #define ICOM_VMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,nh) \ 571 513 void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 572 514 573 574 515 #define ICOM_CVMETHOD(xfn) \ 575 516 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me); 576 577 517 #define ICOM_CVMETHOD1(xfn,ta,na) \ 578 518 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a); 579 580 519 #define ICOM_CVMETHOD2(xfn,ta,na,tb,nb) \ 581 520 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b); 582 583 521 #define ICOM_CVMETHOD3(xfn,ta,na,tb,nb,tc,nc) \ 584 522 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c); 585 586 523 #define ICOM_CVMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \ 587 524 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 588 589 525 #define ICOM_CVMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 590 526 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 591 592 527 #define ICOM_CVMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 593 528 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 594 595 529 #define ICOM_CVMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 596 530 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 597 598 531 #define ICOM_CVMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 599 532 void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 600 533 534 #define ICOM_CALL(xfn, p) ICOM_VTBL(p)->fn##xfn(p) 535 #define ICOM_CALL1(xfn, p,a) ICOM_VTBL(p)->fn##xfn(p,a) 536 #define ICOM_CALL2(xfn, p,a,b) ICOM_VTBL(p)->fn##xfn(p,a,b) 537 #define ICOM_CALL3(xfn, p,a,b,c) ICOM_VTBL(p)->fn##xfn(p,a,b,c) 538 #define ICOM_CALL4(xfn, p,a,b,c,d) ICOM_VTBL(p)->fn##xfn(p,a,b,c,d) 539 #define ICOM_CALL5(xfn, p,a,b,c,d,e) ICOM_VTBL(p)->fn##xfn(p,a,b,c,d,e) 540 #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) ICOM_VTBL(p)->fn##xfn(p,a,b,c,d,e,f) 541 #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) ICOM_VTBL(p)->fn##xfn(p,a,b,c,d,e,f,g) 542 #define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) ICOM_VTBL(p)->fn##xfn(p,a,b,c,d,e,f,g,h) 543 #define ICOM_CALL9(xfn, p,a,b,c,d,e,f,g,h,i) ICOM_VTBL(p)->fn##xfn(p,a,b,c,d,e,f,g,h,i) 544 #define ICOM_CALL10(xfn, p,a,b,c,d,e,f,g,h,i,j) ICOM_VTBL(p)->fn##xfn(p,a,b,c,d,e,f,g,h,i,j) 545 546 #else 547 548 /* WINELIB case */ 549 550 #define ICOM_METHOD(ret,xfn) \ 551 ret (CALLBACK *xfn)(ICOM_INTERFACE* me); 552 #define ICOM_METHOD1(ret,xfn,ta,na) \ 553 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a); 554 #define ICOM_METHOD2(ret,xfn,ta,na,tb,nb) \ 555 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b); 556 #define ICOM_METHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \ 557 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c); 558 #define ICOM_METHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \ 559 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 560 #define ICOM_METHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 561 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 562 #define ICOM_METHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 563 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 564 #define ICOM_METHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 565 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 566 #define ICOM_METHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 567 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 568 #define ICOM_METHOD9(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni) \ 569 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i); 570 #define ICOM_METHOD10(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni,tj,nj) \ 571 ret (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j); 572 573 #define ICOM_CMETHOD(ret,xfn) \ 574 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me); 575 #define ICOM_CMETHOD1(ret,xfn,ta,na) \ 576 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a); 577 #define ICOM_CMETHOD2(ret,xfn,ta,na,tb,nb) \ 578 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b); 579 #define ICOM_CMETHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \ 580 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c); 581 #define ICOM_CMETHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \ 582 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 583 #define ICOM_CMETHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 584 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 585 #define ICOM_CMETHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 586 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 587 #define ICOM_CMETHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 588 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 589 #define ICOM_CMETHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 590 ret (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 591 592 #define ICOM_VMETHOD(xfn) \ 593 void (CALLBACK *xfn)(ICOM_INTERFACE* me); 594 #define ICOM_VMETHOD1(xfn,ta,na) \ 595 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a); 596 #define ICOM_VMETHOD2(xfn,ta,na,tb,nb) \ 597 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b); 598 #define ICOM_VMETHOD3(xfn,ta,na,tb,nb,tc,nc) \ 599 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c); 600 #define ICOM_VMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \ 601 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 602 #define ICOM_VMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 603 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 604 #define ICOM_VMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 605 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 606 #define ICOM_VMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 607 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 608 #define ICOM_VMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,nh) \ 609 void (CALLBACK *xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 610 611 #define ICOM_CVMETHOD(xfn) \ 612 void (CALLBACK *xfn)(const ICOM_INTERFACE* me); 613 #define ICOM_CVMETHOD1(xfn,ta,na) \ 614 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a); 615 #define ICOM_CVMETHOD2(xfn,ta,na,tb,nb) \ 616 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b); 617 #define ICOM_CVMETHOD3(xfn,ta,na,tb,nb,tc,nc) \ 618 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c); 619 #define ICOM_CVMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \ 620 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d); 621 #define ICOM_CVMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \ 622 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); 623 #define ICOM_CVMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \ 624 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); 625 #define ICOM_CVMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \ 626 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); 627 #define ICOM_CVMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ 628 void (CALLBACK *xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); 629 630 #define ICOM_CALL(xfn, p) ICOM_VTBL(p)->xfn(p) 631 #define ICOM_CALL1(xfn, p,a) ICOM_VTBL(p)->xfn(p,a) 632 #define ICOM_CALL2(xfn, p,a,b) ICOM_VTBL(p)->xfn(p,a,b) 633 #define ICOM_CALL3(xfn, p,a,b,c) ICOM_VTBL(p)->xfn(p,a,b,c) 634 #define ICOM_CALL4(xfn, p,a,b,c,d) ICOM_VTBL(p)->xfn(p,a,b,c,d) 635 #define ICOM_CALL5(xfn, p,a,b,c,d,e) ICOM_VTBL(p)->xfn(p,a,b,c,d,e) 636 #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) ICOM_VTBL(p)->xfn(p,a,b,c,d,e,f) 637 #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) ICOM_VTBL(p)->xfn(p,a,b,c,d,e,f,g) 638 #define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) ICOM_VTBL(p)->xfn(p,a,b,c,d,e,f,g,h) 639 #define ICOM_CALL9(xfn, p,a,b,c,d,e,f,g,h,i) ICOM_VTBL(p)->xfn(p,a,b,c,d,e,f,g,h,i) 640 #define ICOM_CALL10(xfn, p,a,b,c,d,e,f,g,h,i,j) ICOM_VTBL(p)->xfn(p,a,b,c,d,e,f,g,h,i,j) 641 642 #endif /* __WINE__ */ 601 643 602 644 #ifdef ICOM_MSVTABLE_COMPAT … … 604 646 typedef struct ICOM_VTABLE(iface) ICOM_VTABLE(iface); \ 605 647 struct iface { \ 606 const ICOM_V TABLE(iface)* lpvtbl; \648 const ICOM_VFIELD(iface); \ 607 649 }; \ 608 650 struct ICOM_VTABLE(iface) { \ … … 618 660 typedef struct ICOM_VTABLE(iface) ICOM_VTABLE(iface); \ 619 661 struct iface { \ 620 const ICOM_V TABLE(iface)* lpvtbl; \662 const ICOM_VFIELD(iface); \ 621 663 }; \ 622 664 struct ICOM_VTABLE(iface) { \ … … 626 668 #define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 627 669 #endif /* ICOM_MSVTABLE_COMPAT */ 628 629 630 #define ICOM_CALL(xfn, p) (p)->lpvtbl->fn##xfn(p)631 #define ICOM_CALL1(xfn, p,a) (p)->lpvtbl->fn##xfn(p,a)632 #define ICOM_CALL2(xfn, p,a,b) (p)->lpvtbl->fn##xfn(p,a,b)633 #define ICOM_CALL3(xfn, p,a,b,c) (p)->lpvtbl->fn##xfn(p,a,b,c)634 #define ICOM_CALL4(xfn, p,a,b,c,d) (p)->lpvtbl->fn##xfn(p,a,b,c,d)635 #define ICOM_CALL5(xfn, p,a,b,c,d,e) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e)636 #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f)637 #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g)638 #define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g,h)639 #define ICOM_CALL9(xfn, p,a,b,c,d,e,f,g,h,i) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g,h,i)640 #define ICOM_CALL10(xfn, p,a,b,c,d,e,f,g,h,i,j) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g,h,i,j)641 670 642 671 … … 672 701 typedef struct ICOM_VTABLE(IUnknown) ICOM_VTABLE(IUnknown); 673 702 struct IUnknown { 674 ICOM_V TABLE(IUnknown)* lpvtbl;703 ICOM_VFIELD(IUnknown); 675 704 #if defined(ICOM_USE_COM_INTERFACE_ATTRIBUTE) && !defined(ICOM_CINTERFACE) 676 } __attribute__ ((com_interface)); 705 } __attribute__ ((com_interface)); 677 706 #else 678 707 }; … … 696 725 #undef ICOM_INTERFACE 697 726 698 #ifdef ICOM_CINTERFACE699 727 /*** IUnknown methods ***/ 700 728 #define IUnknown_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) 701 729 #define IUnknown_AddRef(p) ICOM_CALL (AddRef,p) 702 730 #define IUnknown_Release(p) ICOM_CALL (Release,p) 703 #endif704 731 705 732 /***************************************************************************** … … 716 743 #undef ICOM_INTERFACE 717 744 718 #ifdef ICOM_CINTERFACE719 745 /*** IUnknown methods ***/ 720 746 #define IClassFactory_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) … … 724 750 #define IClassFactory_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c) 725 751 #define IClassFactory_LockServer(p,a) ICOM_CALL1(LockServer,p,a) 726 #endif727 752 728 753 … … 744 769 #undef ICOM_INTERFACE 745 770 746 #ifdef ICOM_CINTERFACE747 771 /*** IUnknown methods ***/ 748 772 #define IMalloc16_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) … … 756 780 #define IMalloc16_DidAlloc(p,a) ICOM_CALL1(DidAlloc,p,a) 757 781 #define IMalloc16_HeapMinimize(p) ICOM_CALL (HeapMinimize,p) 758 #endif759 782 760 783 … … 773 796 #undef ICOM_INTERFACE 774 797 775 #ifdef ICOM_CINTERFACE776 798 /*** IUnknown methods ***/ 777 799 #define IMalloc_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) … … 785 807 #define IMalloc_DidAlloc(p,a) ICOM_CALL1(DidAlloc,p,a) 786 808 #define IMalloc_HeapMinimize(p) ICOM_CALL (HeapMinimize,p) 787 #endif788 809 789 810
Note:
See TracChangeset
for help on using the changeset viewer.