From 33b09d457f4cd0b55582002c877f9a4fbe35d46d Mon Sep 17 00:00:00 2001
From: Robert Shearman <rob@codeweavers.com>
Date: Thu, 9 Jun 2005 09:45:26 +0000
Subject: [PATCH] Add more struct types for TLB generation.

---
 tools/widl/typelib.c    | 8 ++++++--
 tools/widl/write_msft.c | 5 +++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/tools/widl/typelib.c b/tools/widl/typelib.c
index 63d86c9aceb..384fc4bf262 100644
--- a/tools/widl/typelib.c
+++ b/tools/widl/typelib.c
@@ -144,17 +144,21 @@ unsigned short get_type_vt(type_t *t)
     if(match(t->name, "IDispatch"))
       return VT_DISPATCH;
     return VT_USERDEFINED;
-        
+
   case RPC_FC_ENUM16:
   case RPC_FC_STRUCT:
   case RPC_FC_PSTRUCT:
+  case RPC_FC_CSTRUCT:
+  case RPC_FC_CPSTRUCT:
+  case RPC_FC_CVSTRUCT:
+  case RPC_FC_BOGUS_STRUCT:
     return VT_USERDEFINED;
   case 0:
     if(t->attrs)
         return VT_USERDEFINED;
     return 0;
   default:
-    error("get_type_vt: unknown-type: %d\n", t->type);
+    error("get_type_vt: unknown type: 0x%02x\n", t->type);
   }
   return 0;
 }
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
index 70e4b904d40..faea83d1f02 100644
--- a/tools/widl/write_msft.c
+++ b/tools/widl/write_msft.c
@@ -879,6 +879,11 @@ static int encode_type(
             chat("encode_type: trying to ref not added type\n");
             switch(type->type) {
             case RPC_FC_STRUCT:
+            case RPC_FC_PSTRUCT:
+            case RPC_FC_CSTRUCT:
+            case RPC_FC_CPSTRUCT:
+            case RPC_FC_CVSTRUCT:
+            case RPC_FC_BOGUS_STRUCT:
                 add_structure_typeinfo(typelib, type);
                 break;
             case RPC_FC_IP: