pizza2.idl

来自「VC++串口通信设。本书详细说明讲解了在VC++环境下编写串口通信得过程。值得一」· IDL 代码 · 共 106 行

IDL
106
字号
// Bring in needed system IDL files
import "wtypes.idl";
import "unknwn.idl";

//
// Misc. enums and typedefs
//
typedef enum
   {
      Pepperoni = 1,
      Sausage,
      GroundBeef,
      GreenOlives,
      ProsciuttiniHam,
      Pastrami,
      GreenPeppers,
      Mushrooms,
      Onions,
      Tomatoes,
      Pesto,
      JalapenoPeppers,
      CheddarCheese,
      FontinaCheese,
      RicottaCheese,
      FetaCheese,
      Pineapple,
      ExtraCheese,
      Bacon,
      Broccoli,
      GenoaSalami,
      Zucchini,
      BlackOlives,
      Anchovies,
      ChickenBreast,    // Double topping
      Shrimp,           // Double topping
      ArtichokeHearts   // Double topping

   } Topping;

typedef enum
   {
      FullPizza,
      HalfPizza,
      QuarterPizza

   } ToppingSize;

typedef enum
   {
      Individual,
      Small,
      Large

   } PizzaSize;

typedef enum
   {
      Visa,
      MasterCard,
      AmericanExpress

   } CreditCard;

typedef struct 
   {

      BSTR bstrCustName;
      BSTR bstrAddress;
      BSTR bstrPhone;

   } DeliveryInfo;


//
//  Interface information for IPizzaOrderTaker
//
[ object, uuid(F4C06194-6420-11d0-8C23-00400539F36B) ]
interface IPizzaOrderTaker : IUnknown
{
   HRESULT ResetPizza    ();
   HRESULT SetPizzaSize  ([in]  PizzaSize     eNewSize);
   HRESULT GetPizzaSize  ([out] PizzaSize*    peCurrSize);
   HRESULT AddTopping    ([in]  Topping       eNewTopping,
                          [in]  ToppingSize   eNewToppingSize);
   HRESULT RemoveTopping ([in]  Topping       eRemTopping);
   HRESULT GetNumToppings([out] ULONG*        pulNumToppings);
   HRESULT GetTopping    ([in]  ULONG         ulListPos,
                          [out] Topping*      peTopping,
                          [out] ToppingSize*  peToppingSize);
   HRESULT GetPizzaPrice ([out] ULONG*        pulPrice);
   HRESULT OrderPizza    ([in]  DeliveryInfo* pDeliveryInfo,
                          [in]  CreditCard    eCreditCardType,
                          [in]  BSTR          bstrCreditCardNum,
                          [out] ULONG*        pulPrice);
};


//
//  Class information for PizzaOrderTaker2
//	
[ uuid(43903313-8857-11D0-8C80-00400539F36B) ]
coclass PizzaOrderTaker2
{
	interface IPizzaOrderTaker;
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?