StructDemo_p.c
上传用户:weisheen
上传日期:2022-07-09
资源大小:19390k
文件大小:15k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. /* this ALWAYS GENERATED file contains the proxy stub code */
  2. /* File created by MIDL compiler version 5.01.0164 */
  3. /* at Fri Feb 26 16:43:51 2010
  4.  */
  5. /* Compiler settings for C:VCday11StructDemo03StructDemo.idl:
  6.     Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
  7.     error checks: allocation ref bounds_check enum stub_data 
  8. */
  9. //@@MIDL_FILE_HEADING(  )
  10. #define USE_STUBLESS_PROXY
  11. /* verify that the <rpcproxy.h> version is high enough to compile this file*/
  12. #ifndef __REDQ_RPCPROXY_H_VERSION__
  13. #define __REQUIRED_RPCPROXY_H_VERSION__ 440
  14. #endif
  15. #include "rpcproxy.h"
  16. #ifndef __RPCPROXY_H_VERSION__
  17. #error this stub requires an updated version of <rpcproxy.h>
  18. #endif // __RPCPROXY_H_VERSION__
  19. #include "StructDemo.h"
  20. #define TYPE_FORMAT_STRING_SIZE   89                                
  21. #define PROC_FORMAT_STRING_SIZE   165                               
  22. typedef struct _MIDL_TYPE_FORMAT_STRING
  23.     {
  24.     short          Pad;
  25.     unsigned char  Format[ TYPE_FORMAT_STRING_SIZE ];
  26.     } MIDL_TYPE_FORMAT_STRING;
  27. typedef struct _MIDL_PROC_FORMAT_STRING
  28.     {
  29.     short          Pad;
  30.     unsigned char  Format[ PROC_FORMAT_STRING_SIZE ];
  31.     } MIDL_PROC_FORMAT_STRING;
  32. extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString;
  33. extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString;
  34. /* Standard interface: __MIDL_itf_StructDemo_0000, ver. 0.0,
  35.    GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
  36. /* Object interface: IUnknown, ver. 0.0,
  37.    GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
  38. /* Object interface: IDispatch, ver. 0.0,
  39.    GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
  40. /* Object interface: IMyStruct, ver. 0.0,
  41.    GUID={0x4FB1A9EF,0xDBC7,0x498F,{0x82,0x4D,0x1F,0xEA,0xCA,0x15,0xE5,0xA9}} */
  42. extern const MIDL_STUB_DESC Object_StubDesc;
  43. extern const MIDL_SERVER_INFO IMyStruct_ServerInfo;
  44. #pragma code_seg(".orpc")
  45. extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[1];
  46. static const MIDL_STUB_DESC Object_StubDesc = 
  47.     {
  48.     0,
  49.     NdrOleAllocate,
  50.     NdrOleFree,
  51.     0,
  52.     0,
  53.     0,
  54.     0,
  55.     0,
  56.     __MIDL_TypeFormatString.Format,
  57.     1, /* -error bounds_check flag */
  58.     0x20000, /* Ndr library version */
  59.     0,
  60.     0x50100a4, /* MIDL Version 5.1.164 */
  61.     0,
  62.     UserMarshalRoutines,
  63.     0,  /* notify & notify_flag routine table */
  64.     1,  /* Flags */
  65.     0,  /* Reserved3 */
  66.     0,  /* Reserved4 */
  67.     0   /* Reserved5 */
  68.     };
  69. static const unsigned short IMyStruct_FormatStringOffsetTable[] = 
  70.     {
  71.     (unsigned short) -1,
  72.     (unsigned short) -1,
  73.     (unsigned short) -1,
  74.     (unsigned short) -1,
  75.     0,
  76.     34,
  77.     68,
  78.     108,
  79.     136
  80.     };
  81. static const MIDL_SERVER_INFO IMyStruct_ServerInfo = 
  82.     {
  83.     &Object_StubDesc,
  84.     0,
  85.     __MIDL_ProcFormatString.Format,
  86.     &IMyStruct_FormatStringOffsetTable[-3],
  87.     0,
  88.     0,
  89.     0,
  90.     0
  91.     };
  92. static const MIDL_STUBLESS_PROXY_INFO IMyStruct_ProxyInfo =
  93.     {
  94.     &Object_StubDesc,
  95.     __MIDL_ProcFormatString.Format,
  96.     &IMyStruct_FormatStringOffsetTable[-3],
  97.     0,
  98.     0,
  99.     0
  100.     };
  101. CINTERFACE_PROXY_VTABLE(12) _IMyStructProxyVtbl = 
  102. {
  103.     &IMyStruct_ProxyInfo,
  104.     &IID_IMyStruct,
  105.     IUnknown_QueryInterface_Proxy,
  106.     IUnknown_AddRef_Proxy,
  107.     IUnknown_Release_Proxy ,
  108.     0 /* (void *)-1 /* IDispatch::GetTypeInfoCount */ ,
  109.     0 /* (void *)-1 /* IDispatch::GetTypeInfo */ ,
  110.     0 /* (void *)-1 /* IDispatch::GetIDsOfNames */ ,
  111.     0 /* IDispatch_Invoke_Proxy */ ,
  112.     (void *)-1 /* IMyStruct::GetPersonById */ ,
  113.     (void *)-1 /* IMyStruct::GetAllPerson */ ,
  114.     (void *)-1 /* IMyStruct::SavePerson */ ,
  115.     (void *)-1 /* IMyStruct::get_UID */ ,
  116.     (void *)-1 /* IMyStruct::put_UID */
  117. };
  118. static const PRPC_STUB_FUNCTION IMyStruct_table[] =
  119. {
  120.     STUB_FORWARDING_FUNCTION,
  121.     STUB_FORWARDING_FUNCTION,
  122.     STUB_FORWARDING_FUNCTION,
  123.     STUB_FORWARDING_FUNCTION,
  124.     NdrStubCall2,
  125.     NdrStubCall2,
  126.     NdrStubCall2,
  127.     NdrStubCall2,
  128.     NdrStubCall2
  129. };
  130. CInterfaceStubVtbl _IMyStructStubVtbl =
  131. {
  132.     &IID_IMyStruct,
  133.     &IMyStruct_ServerInfo,
  134.     12,
  135.     &IMyStruct_table[-3],
  136.     CStdStubBuffer_DELEGATING_METHODS
  137. };
  138. #pragma data_seg(".rdata")
  139. static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[1] = 
  140.         {
  141.             
  142.             {
  143.             BSTR_UserSize
  144.             ,BSTR_UserMarshal
  145.             ,BSTR_UserUnmarshal
  146.             ,BSTR_UserFree
  147.             }
  148.         };
  149. #if !defined(__RPC_WIN32__)
  150. #error  Invalid build platform for this stub.
  151. #endif
  152. #if !(TARGET_IS_NT40_OR_LATER)
  153. #error You need a Windows NT 4.0 or later to run this stub because it uses these features:
  154. #error   -Oif or -Oicf, [wire_marshal] or [user_marshal] attribute, more than 32 methods in the interface.
  155. #error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
  156. #error This app will die there with the RPC_X_WRONG_STUB_VERSION error.
  157. #endif
  158. static const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString =
  159.     {
  160.         0,
  161.         {
  162. /* Procedure GetPersonById */
  163. 0x33, /* FC_AUTO_HANDLE */
  164. 0x6c, /* Old Flags:  object, Oi2 */
  165. /*  2 */ NdrFcLong( 0x0 ), /* 0 */
  166. /*  6 */ NdrFcShort( 0x7 ), /* 7 */
  167. #ifndef _ALPHA_
  168. /*  8 */ NdrFcShort( 0x10 ), /* x86, MIPS, PPC Stack size/offset = 16 */
  169. #else
  170. NdrFcShort( 0x20 ), /* Alpha Stack size/offset = 32 */
  171. #endif
  172. /* 10 */ NdrFcShort( 0x8 ), /* 8 */
  173. /* 12 */ NdrFcShort( 0x8 ), /* 8 */
  174. /* 14 */ 0x5, /* Oi2 Flags:  srv must size, has return, */
  175. 0x3, /* 3 */
  176. /* Parameter id */
  177. /* 16 */ NdrFcShort( 0x48 ), /* Flags:  in, base type, */
  178. #ifndef _ALPHA_
  179. /* 18 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */
  180. #else
  181. NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */
  182. #endif
  183. /* 20 */ 0x8, /* FC_LONG */
  184. 0x0, /* 0 */
  185. /* Parameter Result */
  186. /* 22 */ NdrFcShort( 0x2013 ), /* Flags:  must size, must free, out, srv alloc size=8 */
  187. #ifndef _ALPHA_
  188. /* 24 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */
  189. #else
  190. NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */
  191. #endif
  192. /* 26 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
  193. /* Return value */
  194. /* 28 */ NdrFcShort( 0x70 ), /* Flags:  out, return, base type, */
  195. #ifndef _ALPHA_
  196. /* 30 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */
  197. #else
  198. NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */
  199. #endif
  200. /* 32 */ 0x8, /* FC_LONG */
  201. 0x0, /* 0 */
  202. /* Procedure GetAllPerson */
  203. /* 34 */ 0x33, /* FC_AUTO_HANDLE */
  204. 0x6c, /* Old Flags:  object, Oi2 */
  205. /* 36 */ NdrFcLong( 0x0 ), /* 0 */
  206. /* 40 */ NdrFcShort( 0x8 ), /* 8 */
  207. #ifndef _ALPHA_
  208. /* 42 */ NdrFcShort( 0x10 ), /* x86, MIPS, PPC Stack size/offset = 16 */
  209. #else
  210. NdrFcShort( 0x20 ), /* Alpha Stack size/offset = 32 */
  211. #endif
  212. /* 44 */ NdrFcShort( 0x0 ), /* 0 */
  213. /* 46 */ NdrFcShort( 0x10 ), /* 16 */
  214. /* 48 */ 0x5, /* Oi2 Flags:  srv must size, has return, */
  215. 0x3, /* 3 */
  216. /* Parameter number */
  217. /* 50 */ NdrFcShort( 0x2150 ), /* Flags:  out, base type, simple ref, srv alloc size=8 */
  218. #ifndef _ALPHA_
  219. /* 52 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */
  220. #else
  221. NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */
  222. #endif
  223. /* 54 */ 0x8, /* FC_LONG */
  224. 0x0, /* 0 */
  225. /* Parameter Result */
  226. /* 56 */ NdrFcShort( 0x2013 ), /* Flags:  must size, must free, out, srv alloc size=8 */
  227. #ifndef _ALPHA_
  228. /* 58 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */
  229. #else
  230. NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */
  231. #endif
  232. /* 60 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
  233. /* Return value */
  234. /* 62 */ NdrFcShort( 0x70 ), /* Flags:  out, return, base type, */
  235. #ifndef _ALPHA_
  236. /* 64 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */
  237. #else
  238. NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */
  239. #endif
  240. /* 66 */ 0x8, /* FC_LONG */
  241. 0x0, /* 0 */
  242. /* Procedure SavePerson */
  243. /* 68 */ 0x33, /* FC_AUTO_HANDLE */
  244. 0x6c, /* Old Flags:  object, Oi2 */
  245. /* 70 */ NdrFcLong( 0x0 ), /* 0 */
  246. /* 74 */ NdrFcShort( 0x9 ), /* 9 */
  247. #ifndef _ALPHA_
  248. /* 76 */ NdrFcShort( 0x14 ), /* x86, MIPS, PPC Stack size/offset = 20 */
  249. #else
  250. NdrFcShort( 0x28 ), /* Alpha Stack size/offset = 40 */
  251. #endif
  252. /* 78 */ NdrFcShort( 0x8 ), /* 8 */
  253. /* 80 */ NdrFcShort( 0x10 ), /* 16 */
  254. /* 82 */ 0x6, /* Oi2 Flags:  clt must size, has return, */
  255. 0x4, /* 4 */
  256. /* Parameter number */
  257. /* 84 */ NdrFcShort( 0x48 ), /* Flags:  in, base type, */
  258. #ifndef _ALPHA_
  259. /* 86 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */
  260. #else
  261. NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */
  262. #endif
  263. /* 88 */ 0x8, /* FC_LONG */
  264. 0x0, /* 0 */
  265. /* Parameter Result */
  266. /* 90 */ NdrFcShort( 0x10b ), /* Flags:  must size, must free, in, simple ref, */
  267. #ifndef _ALPHA_
  268. /* 92 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */
  269. #else
  270. NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */
  271. #endif
  272. /* 94 */ NdrFcShort( 0x2c ), /* Type Offset=44 */
  273. /* Parameter pResult */
  274. /* 96 */ NdrFcShort( 0x2150 ), /* Flags:  out, base type, simple ref, srv alloc size=8 */
  275. #ifndef _ALPHA_
  276. /* 98 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */
  277. #else
  278. NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */
  279. #endif
  280. /* 100 */ 0x8, /* FC_LONG */
  281. 0x0, /* 0 */
  282. /* Return value */
  283. /* 102 */ NdrFcShort( 0x70 ), /* Flags:  out, return, base type, */
  284. #ifndef _ALPHA_
  285. /* 104 */ NdrFcShort( 0x10 ), /* x86, MIPS, PPC Stack size/offset = 16 */
  286. #else
  287. NdrFcShort( 0x20 ), /* Alpha Stack size/offset = 32 */
  288. #endif
  289. /* 106 */ 0x8, /* FC_LONG */
  290. 0x0, /* 0 */
  291. /* Procedure get_UID */
  292. /* 108 */ 0x33, /* FC_AUTO_HANDLE */
  293. 0x6c, /* Old Flags:  object, Oi2 */
  294. /* 110 */ NdrFcLong( 0x0 ), /* 0 */
  295. /* 114 */ NdrFcShort( 0xa ), /* 10 */
  296. #ifndef _ALPHA_
  297. /* 116 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */
  298. #else
  299. NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */
  300. #endif
  301. /* 118 */ NdrFcShort( 0x0 ), /* 0 */
  302. /* 120 */ NdrFcShort( 0x8 ), /* 8 */
  303. /* 122 */ 0x5, /* Oi2 Flags:  srv must size, has return, */
  304. 0x2, /* 2 */
  305. /* Parameter pVal */
  306. /* 124 */ NdrFcShort( 0x2113 ), /* Flags:  must size, must free, out, simple ref, srv alloc size=8 */
  307. #ifndef _ALPHA_
  308. /* 126 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */
  309. #else
  310. NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */
  311. #endif
  312. /* 128 */ NdrFcShort( 0x22 ), /* Type Offset=34 */
  313. /* Return value */
  314. /* 130 */ NdrFcShort( 0x70 ), /* Flags:  out, return, base type, */
  315. #ifndef _ALPHA_
  316. /* 132 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */
  317. #else
  318. NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */
  319. #endif
  320. /* 134 */ 0x8, /* FC_LONG */
  321. 0x0, /* 0 */
  322. /* Procedure put_UID */
  323. /* 136 */ 0x33, /* FC_AUTO_HANDLE */
  324. 0x6c, /* Old Flags:  object, Oi2 */
  325. /* 138 */ NdrFcLong( 0x0 ), /* 0 */
  326. /* 142 */ NdrFcShort( 0xb ), /* 11 */
  327. #ifndef _ALPHA_
  328. /* 144 */ NdrFcShort( 0xc ), /* x86, MIPS, PPC Stack size/offset = 12 */
  329. #else
  330. NdrFcShort( 0x18 ), /* Alpha Stack size/offset = 24 */
  331. #endif
  332. /* 146 */ NdrFcShort( 0x0 ), /* 0 */
  333. /* 148 */ NdrFcShort( 0x8 ), /* 8 */
  334. /* 150 */ 0x6, /* Oi2 Flags:  clt must size, has return, */
  335. 0x2, /* 2 */
  336. /* Parameter newVal */
  337. /* 152 */ NdrFcShort( 0x8b ), /* Flags:  must size, must free, in, by val, */
  338. #ifndef _ALPHA_
  339. /* 154 */ NdrFcShort( 0x4 ), /* x86, MIPS, PPC Stack size/offset = 4 */
  340. #else
  341. NdrFcShort( 0x8 ), /* Alpha Stack size/offset = 8 */
  342. #endif
  343. /* 156 */ NdrFcShort( 0x4e ), /* Type Offset=78 */
  344. /* Return value */
  345. /* 158 */ NdrFcShort( 0x70 ), /* Flags:  out, return, base type, */
  346. #ifndef _ALPHA_
  347. /* 160 */ NdrFcShort( 0x8 ), /* x86, MIPS, PPC Stack size/offset = 8 */
  348. #else
  349. NdrFcShort( 0x10 ), /* Alpha Stack size/offset = 16 */
  350. #endif
  351. /* 162 */ 0x8, /* FC_LONG */
  352. 0x0, /* 0 */
  353. 0x0
  354.         }
  355.     };
  356. static const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString =
  357.     {
  358.         0,
  359.         {
  360. NdrFcShort( 0x0 ), /* 0 */
  361. /*  2 */
  362. 0x11, 0x14, /* FC_RP [alloced_on_stack] */
  363. /*  4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
  364. /*  6 */
  365. 0x13, 0x0, /* FC_OP */
  366. /*  8 */ NdrFcShort( 0x24 ), /* Offset= 36 (44) */
  367. /* 10 */
  368. 0x13, 0x0, /* FC_OP */
  369. /* 12 */ NdrFcShort( 0xc ), /* Offset= 12 (24) */
  370. /* 14 */
  371. 0x1b, /* FC_CARRAY */
  372. 0x1, /* 1 */
  373. /* 16 */ NdrFcShort( 0x2 ), /* 2 */
  374. /* 18 */ 0x9, /* Corr desc: FC_ULONG */
  375. 0x0, /*  */
  376. /* 20 */ NdrFcShort( 0xfffc ), /* -4 */
  377. /* 22 */ 0x6, /* FC_SHORT */
  378. 0x5b, /* FC_END */
  379. /* 24 */
  380. 0x17, /* FC_CSTRUCT */
  381. 0x3, /* 3 */
  382. /* 26 */ NdrFcShort( 0x8 ), /* 8 */
  383. /* 28 */ NdrFcShort( 0xfffffff2 ), /* Offset= -14 (14) */
  384. /* 30 */ 0x8, /* FC_LONG */
  385. 0x8, /* FC_LONG */
  386. /* 32 */ 0x5c, /* FC_PAD */
  387. 0x5b, /* FC_END */
  388. /* 34 */ 0xb4, /* FC_USER_MARSHAL */
  389. 0x83, /* 131 */
  390. /* 36 */ NdrFcShort( 0x0 ), /* 0 */
  391. /* 38 */ NdrFcShort( 0x4 ), /* 4 */
  392. /* 40 */ NdrFcShort( 0x0 ), /* 0 */
  393. /* 42 */ NdrFcShort( 0xffffffe0 ), /* Offset= -32 (10) */
  394. /* 44 */
  395. 0x1a, /* FC_BOGUS_STRUCT */
  396. 0x3, /* 3 */
  397. /* 46 */ NdrFcShort( 0xc ), /* 12 */
  398. /* 48 */ NdrFcShort( 0x0 ), /* 0 */
  399. /* 50 */ NdrFcShort( 0x0 ), /* Offset= 0 (50) */
  400. /* 52 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
  401. 0x0, /* 0 */
  402. /* 54 */ NdrFcShort( 0xffffffec ), /* Offset= -20 (34) */
  403. /* 56 */ 0x8, /* FC_LONG */
  404. 0x4c, /* FC_EMBEDDED_COMPLEX */
  405. /* 58 */ 0x0, /* 0 */
  406. NdrFcShort( 0xffffffe7 ), /* Offset= -25 (34) */
  407. 0x5b, /* FC_END */
  408. /* 62 */
  409. 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
  410. /* 64 */ 0x8, /* FC_LONG */
  411. 0x5c, /* FC_PAD */
  412. /* 66 */
  413. 0x11, 0x0, /* FC_RP */
  414. /* 68 */ NdrFcShort( 0xffffffe8 ), /* Offset= -24 (44) */
  415. /* 70 */
  416. 0x11, 0x4, /* FC_RP [alloced_on_stack] */
  417. /* 72 */ NdrFcShort( 0xffffffda ), /* Offset= -38 (34) */
  418. /* 74 */
  419. 0x12, 0x0, /* FC_UP */
  420. /* 76 */ NdrFcShort( 0xffffffcc ), /* Offset= -52 (24) */
  421. /* 78 */ 0xb4, /* FC_USER_MARSHAL */
  422. 0x83, /* 131 */
  423. /* 80 */ NdrFcShort( 0x0 ), /* 0 */
  424. /* 82 */ NdrFcShort( 0x4 ), /* 4 */
  425. /* 84 */ NdrFcShort( 0x0 ), /* 0 */
  426. /* 86 */ NdrFcShort( 0xfffffff4 ), /* Offset= -12 (74) */
  427. 0x0
  428.         }
  429.     };
  430. const CInterfaceProxyVtbl * _StructDemo_ProxyVtblList[] = 
  431. {
  432.     ( CInterfaceProxyVtbl *) &_IMyStructProxyVtbl,
  433.     0
  434. };
  435. const CInterfaceStubVtbl * _StructDemo_StubVtblList[] = 
  436. {
  437.     ( CInterfaceStubVtbl *) &_IMyStructStubVtbl,
  438.     0
  439. };
  440. PCInterfaceName const _StructDemo_InterfaceNamesList[] = 
  441. {
  442.     "IMyStruct",
  443.     0
  444. };
  445. const IID *  _StructDemo_BaseIIDList[] = 
  446. {
  447.     &IID_IDispatch,
  448.     0
  449. };
  450. #define _StructDemo_CHECK_IID(n) IID_GENERIC_CHECK_IID( _StructDemo, pIID, n)
  451. int __stdcall _StructDemo_IID_Lookup( const IID * pIID, int * pIndex )
  452. {
  453.     
  454.     if(!_StructDemo_CHECK_IID(0))
  455.         {
  456.         *pIndex = 0;
  457.         return 1;
  458.         }
  459.     return 0;
  460. }
  461. const ExtendedProxyFileInfo StructDemo_ProxyFileInfo = 
  462. {
  463.     (PCInterfaceProxyVtblList *) & _StructDemo_ProxyVtblList,
  464.     (PCInterfaceStubVtblList *) & _StructDemo_StubVtblList,
  465.     (const PCInterfaceName * ) & _StructDemo_InterfaceNamesList,
  466.     (const IID ** ) & _StructDemo_BaseIIDList,
  467.     & _StructDemo_IID_Lookup, 
  468.     1,
  469.     2,
  470.     0, /* table of [async_uuid] interfaces */
  471.     0, /* Filler1 */
  472.     0, /* Filler2 */
  473.     0  /* Filler3 */
  474. };