📄 pizza1.idl
字号:
// 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 PizzaOrderTaker1
//
[ uuid(47DD0D53-641F-11d0-8C23-00400539F36B) ]
coclass PizzaOrderTaker1
{
interface IPizzaOrderTaker;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -