/*** Autogenerated by WIDL 10.4 from include/windows.data.json.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __windows_data_json_h__
#define __windows_data_json_h__

/* Forward declarations */

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonArray_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonArray_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonArray __x_ABI_CWindows_CData_CJson_CIJsonArray;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonArray ABI::Windows::Data::Json::IJsonArray
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonArray;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonObject_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonObject_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonObject __x_ABI_CWindows_CData_CJson_CIJsonObject;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonObject ABI::Windows::Data::Json::IJsonObject
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonObject;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonValue_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonValue_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonValue __x_ABI_CWindows_CData_CJson_CIJsonValue;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonValue ABI::Windows::Data::Json::IJsonValue
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonValue;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonValueStatics __x_ABI_CWindows_CData_CJson_CIJsonValueStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics ABI::Windows::Data::Json::IJsonValueStatics
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonValueStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CJsonArray_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CJsonArray_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                class JsonArray;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CData_CJson_CJsonArray __x_ABI_CWindows_CData_CJson_CJsonArray;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CData_CJson_CJsonArray_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CData_CJson_CJsonObject_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CJsonObject_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                class JsonObject;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CData_CJson_CJsonObject __x_ABI_CWindows_CData_CJson_CJsonObject;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CData_CJson_CJsonObject_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CData_CJson_CJsonValue_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CJsonValue_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                class JsonValue;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CData_CJson_CJsonValue __x_ABI_CWindows_CData_CJson_CJsonValue;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CData_CJson_CJsonValue_FWD_DEFINED__ */

#ifndef ____FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterable_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterable_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CData__CJson__CIJsonValue __FIIterable_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterator_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterator_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CData__CJson__CIJsonValue __FIIterator_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* >
#endif /* __cplusplus */
#endif

#ifndef ____FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IMapView<HSTRING,ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IMap<HSTRING,ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIVectorView_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CData__CJson__CIJsonValue __FIVectorView_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIVector_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIVector_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIVector_1_Windows__CData__CJson__CIJsonValue __FIVector_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIVector_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IVector<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <inspectable.h>
#include <asyncinfo.h>
#include <eventtoken.h>
#include <windowscontracts.h>
#include <windows.foundation.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __cplusplus
typedef enum __x_ABI_CWindows_CData_CJson_CJsonValueType __x_ABI_CWindows_CData_CJson_CJsonValueType;
#endif /* __cplusplus */

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonArray_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonArray_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonArray __x_ABI_CWindows_CData_CJson_CIJsonArray;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonArray ABI::Windows::Data::Json::IJsonArray
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonArray;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonArrayStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonArrayStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonArrayStatics __x_ABI_CWindows_CData_CJson_CIJsonArrayStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonArrayStatics ABI::Windows::Data::Json::IJsonArrayStatics
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonArrayStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonObject_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonObject_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonObject __x_ABI_CWindows_CData_CJson_CIJsonObject;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonObject ABI::Windows::Data::Json::IJsonObject
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonObject;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonObjectStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonObjectStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonObjectStatics __x_ABI_CWindows_CData_CJson_CIJsonObjectStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonObjectStatics ABI::Windows::Data::Json::IJsonObjectStatics
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonObjectStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonObjectWithDefaultValues_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonObjectWithDefaultValues_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonObjectWithDefaultValues __x_ABI_CWindows_CData_CJson_CIJsonObjectWithDefaultValues;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonObjectWithDefaultValues ABI::Windows::Data::Json::IJsonObjectWithDefaultValues
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonObjectWithDefaultValues;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonValue_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonValue_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonValue __x_ABI_CWindows_CData_CJson_CIJsonValue;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonValue ABI::Windows::Data::Json::IJsonValue
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonValue;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonValueStatics __x_ABI_CWindows_CData_CJson_CIJsonValueStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics ABI::Windows::Data::Json::IJsonValueStatics
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonValueStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CData_CJson_CIJsonValueStatics2 __x_ABI_CWindows_CData_CJson_CIJsonValueStatics2;
#ifdef __cplusplus
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics2 ABI::Windows::Data::Json::IJsonValueStatics2
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                interface IJsonValueStatics2;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterable_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterable_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CData__CJson__CIJsonValue __FIIterable_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterator_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterator_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CData__CJson__CIJsonValue __FIIterator_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* >
#endif /* __cplusplus */
#endif

#ifndef ____FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IMapView<HSTRING,ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IMap<HSTRING,ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIVectorView_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CData__CJson__CIJsonValue __FIVectorView_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#ifndef ____FIVector_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
#define ____FIVector_1_Windows__CData__CJson__CIJsonValue_FWD_DEFINED__
typedef interface __FIVector_1_Windows__CData__CJson__CIJsonValue __FIVector_1_Windows__CData__CJson__CIJsonValue;
#ifdef __cplusplus
#define __FIVector_1_Windows__CData__CJson__CIJsonValue ABI::Windows::Foundation::Collections::IVector<ABI::Windows::Data::Json::IJsonValue* >
#endif /* __cplusplus */
#endif

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                enum JsonValueType {
                    JsonValueType_Null = 0,
                    JsonValueType_Boolean = 1,
                    JsonValueType_Number = 2,
                    JsonValueType_String = 3,
                    JsonValueType_Array = 4,
                    JsonValueType_Object = 5
                };
            }
        }
    }
}
extern "C" {
#else
enum __x_ABI_CWindows_CData_CJson_CJsonValueType {
    JsonValueType_Null = 0,
    JsonValueType_Boolean = 1,
    JsonValueType_Number = 2,
    JsonValueType_String = 3,
    JsonValueType_Array = 4,
    JsonValueType_Object = 5
};
#ifdef WIDL_using_Windows_Data_Json
#define JsonValueType __x_ABI_CWindows_CData_CJson_CJsonValueType
#endif /* WIDL_using_Windows_Data_Json */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
/*****************************************************************************
 * IJsonArray interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonArray_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonArray_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CData_CJson_CIJsonArray, 0x08c1ddb6, 0x0cbd, 0x4a9a, 0xb5,0xd3, 0x2f,0x85,0x2d,0xc3,0x7e,0x81);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                MIDL_INTERFACE("08c1ddb6-0cbd-4a9a-b5d3-2f852dc37e81")
                IJsonArray : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE GetObjectAt(
                        UINT32 index,
                        ABI::Windows::Data::Json::IJsonObject **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetArrayAt(
                        UINT32 index,
                        ABI::Windows::Data::Json::IJsonArray **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetStringAt(
                        UINT32 index,
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetNumberAt(
                        UINT32 index,
                        DOUBLE *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetBooleanAt(
                        UINT32 index,
                        boolean *value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CData_CJson_CIJsonArray, 0x08c1ddb6, 0x0cbd, 0x4a9a, 0xb5,0xd3, 0x2f,0x85,0x2d,0xc3,0x7e,0x81)
#endif
#else
typedef struct __x_ABI_CWindows_CData_CJson_CIJsonArrayVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        TrustLevel *trustLevel);

    /*** IJsonArray methods ***/
    HRESULT (STDMETHODCALLTYPE *GetObjectAt)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        UINT32 index,
        __x_ABI_CWindows_CData_CJson_CIJsonObject **value);

    HRESULT (STDMETHODCALLTYPE *GetArrayAt)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        UINT32 index,
        __x_ABI_CWindows_CData_CJson_CIJsonArray **value);

    HRESULT (STDMETHODCALLTYPE *GetStringAt)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        UINT32 index,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *GetNumberAt)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        UINT32 index,
        DOUBLE *value);

    HRESULT (STDMETHODCALLTYPE *GetBooleanAt)(
        __x_ABI_CWindows_CData_CJson_CIJsonArray *This,
        UINT32 index,
        boolean *value);

    END_INTERFACE
} __x_ABI_CWindows_CData_CJson_CIJsonArrayVtbl;

interface __x_ABI_CWindows_CData_CJson_CIJsonArray {
    CONST_VTBL __x_ABI_CWindows_CData_CJson_CIJsonArrayVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IJsonArray methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetObjectAt(This,index,value) (This)->lpVtbl->GetObjectAt(This,index,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetArrayAt(This,index,value) (This)->lpVtbl->GetArrayAt(This,index,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetStringAt(This,index,value) (This)->lpVtbl->GetStringAt(This,index,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetNumberAt(This,index,value) (This)->lpVtbl->GetNumberAt(This,index,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonArray_GetBooleanAt(This,index,value) (This)->lpVtbl->GetBooleanAt(This,index,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_QueryInterface(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonArray_AddRef(__x_ABI_CWindows_CData_CJson_CIJsonArray* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonArray_Release(__x_ABI_CWindows_CData_CJson_CIJsonArray* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetIids(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetRuntimeClassName(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetTrustLevel(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IJsonArray methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetObjectAt(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,UINT32 index,__x_ABI_CWindows_CData_CJson_CIJsonObject **value) {
    return This->lpVtbl->GetObjectAt(This,index,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetArrayAt(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,UINT32 index,__x_ABI_CWindows_CData_CJson_CIJsonArray **value) {
    return This->lpVtbl->GetArrayAt(This,index,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetStringAt(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,UINT32 index,HSTRING *value) {
    return This->lpVtbl->GetStringAt(This,index,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetNumberAt(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,UINT32 index,DOUBLE *value) {
    return This->lpVtbl->GetNumberAt(This,index,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonArray_GetBooleanAt(__x_ABI_CWindows_CData_CJson_CIJsonArray* This,UINT32 index,boolean *value) {
    return This->lpVtbl->GetBooleanAt(This,index,value);
}
#endif
#ifdef WIDL_using_Windows_Data_Json
#define IID_IJsonArray IID___x_ABI_CWindows_CData_CJson_CIJsonArray
#define IJsonArrayVtbl __x_ABI_CWindows_CData_CJson_CIJsonArrayVtbl
#define IJsonArray __x_ABI_CWindows_CData_CJson_CIJsonArray
#define IJsonArray_QueryInterface __x_ABI_CWindows_CData_CJson_CIJsonArray_QueryInterface
#define IJsonArray_AddRef __x_ABI_CWindows_CData_CJson_CIJsonArray_AddRef
#define IJsonArray_Release __x_ABI_CWindows_CData_CJson_CIJsonArray_Release
#define IJsonArray_GetIids __x_ABI_CWindows_CData_CJson_CIJsonArray_GetIids
#define IJsonArray_GetRuntimeClassName __x_ABI_CWindows_CData_CJson_CIJsonArray_GetRuntimeClassName
#define IJsonArray_GetTrustLevel __x_ABI_CWindows_CData_CJson_CIJsonArray_GetTrustLevel
#define IJsonArray_GetObjectAt __x_ABI_CWindows_CData_CJson_CIJsonArray_GetObjectAt
#define IJsonArray_GetArrayAt __x_ABI_CWindows_CData_CJson_CIJsonArray_GetArrayAt
#define IJsonArray_GetStringAt __x_ABI_CWindows_CData_CJson_CIJsonArray_GetStringAt
#define IJsonArray_GetNumberAt __x_ABI_CWindows_CData_CJson_CIJsonArray_GetNumberAt
#define IJsonArray_GetBooleanAt __x_ABI_CWindows_CData_CJson_CIJsonArray_GetBooleanAt
#endif /* WIDL_using_Windows_Data_Json */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CData_CJson_CIJsonArray_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*****************************************************************************
 * IJsonObject interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonObject_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonObject_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CData_CJson_CIJsonObject, 0x064e24dd, 0x29c2, 0x4f83, 0x9a,0xc1, 0x9e,0xe1,0x15,0x78,0xbe,0xb3);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                MIDL_INTERFACE("064e24dd-29c2-4f83-9ac1-9ee11578beb3")
                IJsonObject : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE GetNamedValue(
                        HSTRING name,
                        ABI::Windows::Data::Json::IJsonValue **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE SetNamedValue(
                        HSTRING name,
                        ABI::Windows::Data::Json::IJsonValue *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetNamedObject(
                        HSTRING name,
                        ABI::Windows::Data::Json::IJsonObject **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetNamedArray(
                        HSTRING name,
                        ABI::Windows::Data::Json::IJsonArray **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetNamedString(
                        HSTRING name,
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetNamedNumber(
                        HSTRING name,
                        DOUBLE *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetNamedBoolean(
                        HSTRING name,
                        boolean *value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CData_CJson_CIJsonObject, 0x064e24dd, 0x29c2, 0x4f83, 0x9a,0xc1, 0x9e,0xe1,0x15,0x78,0xbe,0xb3)
#endif
#else
typedef struct __x_ABI_CWindows_CData_CJson_CIJsonObjectVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        TrustLevel *trustLevel);

    /*** IJsonObject methods ***/
    HRESULT (STDMETHODCALLTYPE *GetNamedValue)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING name,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *SetNamedValue)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING name,
        __x_ABI_CWindows_CData_CJson_CIJsonValue *value);

    HRESULT (STDMETHODCALLTYPE *GetNamedObject)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING name,
        __x_ABI_CWindows_CData_CJson_CIJsonObject **value);

    HRESULT (STDMETHODCALLTYPE *GetNamedArray)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING name,
        __x_ABI_CWindows_CData_CJson_CIJsonArray **value);

    HRESULT (STDMETHODCALLTYPE *GetNamedString)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING name,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *GetNamedNumber)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING name,
        DOUBLE *value);

    HRESULT (STDMETHODCALLTYPE *GetNamedBoolean)(
        __x_ABI_CWindows_CData_CJson_CIJsonObject *This,
        HSTRING name,
        boolean *value);

    END_INTERFACE
} __x_ABI_CWindows_CData_CJson_CIJsonObjectVtbl;

interface __x_ABI_CWindows_CData_CJson_CIJsonObject {
    CONST_VTBL __x_ABI_CWindows_CData_CJson_CIJsonObjectVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IJsonObject methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedValue(This,name,value) (This)->lpVtbl->GetNamedValue(This,name,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_SetNamedValue(This,name,value) (This)->lpVtbl->SetNamedValue(This,name,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedObject(This,name,value) (This)->lpVtbl->GetNamedObject(This,name,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedArray(This,name,value) (This)->lpVtbl->GetNamedArray(This,name,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedString(This,name,value) (This)->lpVtbl->GetNamedString(This,name,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedNumber(This,name,value) (This)->lpVtbl->GetNamedNumber(This,name,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedBoolean(This,name,value) (This)->lpVtbl->GetNamedBoolean(This,name,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_QueryInterface(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonObject_AddRef(__x_ABI_CWindows_CData_CJson_CIJsonObject* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonObject_Release(__x_ABI_CWindows_CData_CJson_CIJsonObject* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetIids(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetRuntimeClassName(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetTrustLevel(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IJsonObject methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedValue(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING name,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->GetNamedValue(This,name,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_SetNamedValue(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING name,__x_ABI_CWindows_CData_CJson_CIJsonValue *value) {
    return This->lpVtbl->SetNamedValue(This,name,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedObject(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING name,__x_ABI_CWindows_CData_CJson_CIJsonObject **value) {
    return This->lpVtbl->GetNamedObject(This,name,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedArray(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING name,__x_ABI_CWindows_CData_CJson_CIJsonArray **value) {
    return This->lpVtbl->GetNamedArray(This,name,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedString(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING name,HSTRING *value) {
    return This->lpVtbl->GetNamedString(This,name,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedNumber(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING name,DOUBLE *value) {
    return This->lpVtbl->GetNamedNumber(This,name,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedBoolean(__x_ABI_CWindows_CData_CJson_CIJsonObject* This,HSTRING name,boolean *value) {
    return This->lpVtbl->GetNamedBoolean(This,name,value);
}
#endif
#ifdef WIDL_using_Windows_Data_Json
#define IID_IJsonObject IID___x_ABI_CWindows_CData_CJson_CIJsonObject
#define IJsonObjectVtbl __x_ABI_CWindows_CData_CJson_CIJsonObjectVtbl
#define IJsonObject __x_ABI_CWindows_CData_CJson_CIJsonObject
#define IJsonObject_QueryInterface __x_ABI_CWindows_CData_CJson_CIJsonObject_QueryInterface
#define IJsonObject_AddRef __x_ABI_CWindows_CData_CJson_CIJsonObject_AddRef
#define IJsonObject_Release __x_ABI_CWindows_CData_CJson_CIJsonObject_Release
#define IJsonObject_GetIids __x_ABI_CWindows_CData_CJson_CIJsonObject_GetIids
#define IJsonObject_GetRuntimeClassName __x_ABI_CWindows_CData_CJson_CIJsonObject_GetRuntimeClassName
#define IJsonObject_GetTrustLevel __x_ABI_CWindows_CData_CJson_CIJsonObject_GetTrustLevel
#define IJsonObject_GetNamedValue __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedValue
#define IJsonObject_SetNamedValue __x_ABI_CWindows_CData_CJson_CIJsonObject_SetNamedValue
#define IJsonObject_GetNamedObject __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedObject
#define IJsonObject_GetNamedArray __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedArray
#define IJsonObject_GetNamedString __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedString
#define IJsonObject_GetNamedNumber __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedNumber
#define IJsonObject_GetNamedBoolean __x_ABI_CWindows_CData_CJson_CIJsonObject_GetNamedBoolean
#endif /* WIDL_using_Windows_Data_Json */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CData_CJson_CIJsonObject_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*****************************************************************************
 * IJsonValue interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonValue_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CData_CJson_CIJsonValue, 0xa3219ecb, 0xf0b3, 0x4dcd, 0xbe,0xee, 0x19,0xd4,0x8c,0xd3,0xed,0x1e);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                MIDL_INTERFACE("a3219ecb-f0b3-4dcd-beee-19d48cd3ed1e")
                IJsonValue : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_ValueType(
                        ABI::Windows::Data::Json::JsonValueType *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE Stringify(
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetString(
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetNumber(
                        DOUBLE *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetBoolean(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetArray(
                        ABI::Windows::Data::Json::IJsonArray **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetObject(
                        ABI::Windows::Data::Json::IJsonObject **value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CData_CJson_CIJsonValue, 0xa3219ecb, 0xf0b3, 0x4dcd, 0xbe,0xee, 0x19,0xd4,0x8c,0xd3,0xed,0x1e)
#endif
#else
typedef struct __x_ABI_CWindows_CData_CJson_CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IJsonValue methods ***/
    HRESULT (STDMETHODCALLTYPE *get_ValueType)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CJsonValueType *value);

    HRESULT (STDMETHODCALLTYPE *Stringify)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *GetString)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *GetNumber)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        DOUBLE *value);

    HRESULT (STDMETHODCALLTYPE *GetBoolean)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *GetArray)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CIJsonArray **value);

    HRESULT (STDMETHODCALLTYPE *GetObject)(
        __x_ABI_CWindows_CData_CJson_CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CIJsonObject **value);

    END_INTERFACE
} __x_ABI_CWindows_CData_CJson_CIJsonValueVtbl;

interface __x_ABI_CWindows_CData_CJson_CIJsonValue {
    CONST_VTBL __x_ABI_CWindows_CData_CJson_CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IJsonValue methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_get_ValueType(This,value) (This)->lpVtbl->get_ValueType(This,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_Stringify(This,value) (This)->lpVtbl->Stringify(This,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetString(This,value) (This)->lpVtbl->GetString(This,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetNumber(This,value) (This)->lpVtbl->GetNumber(This,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetBoolean(This,value) (This)->lpVtbl->GetBoolean(This,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetArray(This,value) (This)->lpVtbl->GetArray(This,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValue_GetObject(This,value) (This)->lpVtbl->GetObject(This,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_QueryInterface(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonValue_AddRef(__x_ABI_CWindows_CData_CJson_CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonValue_Release(__x_ABI_CWindows_CData_CJson_CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetIids(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetRuntimeClassName(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetTrustLevel(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IJsonValue methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_get_ValueType(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CJsonValueType *value) {
    return This->lpVtbl->get_ValueType(This,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_Stringify(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,HSTRING *value) {
    return This->lpVtbl->Stringify(This,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetString(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,HSTRING *value) {
    return This->lpVtbl->GetString(This,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetNumber(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,DOUBLE *value) {
    return This->lpVtbl->GetNumber(This,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetBoolean(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,boolean *value) {
    return This->lpVtbl->GetBoolean(This,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetArray(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CIJsonArray **value) {
    return This->lpVtbl->GetArray(This,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValue_GetObject(__x_ABI_CWindows_CData_CJson_CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CIJsonObject **value) {
    return This->lpVtbl->GetObject(This,value);
}
#endif
#ifdef WIDL_using_Windows_Data_Json
#define IID_IJsonValue IID___x_ABI_CWindows_CData_CJson_CIJsonValue
#define IJsonValueVtbl __x_ABI_CWindows_CData_CJson_CIJsonValueVtbl
#define IJsonValue __x_ABI_CWindows_CData_CJson_CIJsonValue
#define IJsonValue_QueryInterface __x_ABI_CWindows_CData_CJson_CIJsonValue_QueryInterface
#define IJsonValue_AddRef __x_ABI_CWindows_CData_CJson_CIJsonValue_AddRef
#define IJsonValue_Release __x_ABI_CWindows_CData_CJson_CIJsonValue_Release
#define IJsonValue_GetIids __x_ABI_CWindows_CData_CJson_CIJsonValue_GetIids
#define IJsonValue_GetRuntimeClassName __x_ABI_CWindows_CData_CJson_CIJsonValue_GetRuntimeClassName
#define IJsonValue_GetTrustLevel __x_ABI_CWindows_CData_CJson_CIJsonValue_GetTrustLevel
#define IJsonValue_get_ValueType __x_ABI_CWindows_CData_CJson_CIJsonValue_get_ValueType
#define IJsonValue_Stringify __x_ABI_CWindows_CData_CJson_CIJsonValue_Stringify
#define IJsonValue_GetString __x_ABI_CWindows_CData_CJson_CIJsonValue_GetString
#define IJsonValue_GetNumber __x_ABI_CWindows_CData_CJson_CIJsonValue_GetNumber
#define IJsonValue_GetBoolean __x_ABI_CWindows_CData_CJson_CIJsonValue_GetBoolean
#define IJsonValue_GetArray __x_ABI_CWindows_CData_CJson_CIJsonValue_GetArray
#define IJsonValue_GetObject __x_ABI_CWindows_CData_CJson_CIJsonValue_GetObject
#endif /* WIDL_using_Windows_Data_Json */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CData_CJson_CIJsonValue_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*****************************************************************************
 * IJsonValueStatics interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CData_CJson_CIJsonValueStatics, 0x5f6b544a, 0x2f53, 0x48e1, 0x91,0xa3, 0xf7,0x8b,0x50,0xa6,0x34,0x5c);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Data {
            namespace Json {
                MIDL_INTERFACE("5f6b544a-2f53-48e1-91a3-f78b50a6345c")
                IJsonValueStatics : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE Parse(
                        HSTRING input,
                        ABI::Windows::Data::Json::IJsonValue **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE TryParse(
                        HSTRING input,
                        ABI::Windows::Data::Json::IJsonValue **result,
                        boolean *succeeded) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreateBooleanValue(
                        boolean input,
                        ABI::Windows::Data::Json::IJsonValue **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreateNumberValue(
                        DOUBLE input,
                        ABI::Windows::Data::Json::IJsonValue **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreateStringValue(
                        HSTRING input,
                        ABI::Windows::Data::Json::IJsonValue **value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics, 0x5f6b544a, 0x2f53, 0x48e1, 0x91,0xa3, 0xf7,0x8b,0x50,0xa6,0x34,0x5c)
#endif
#else
typedef struct __x_ABI_CWindows_CData_CJson_CIJsonValueStaticsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        TrustLevel *trustLevel);

    /*** IJsonValueStatics methods ***/
    HRESULT (STDMETHODCALLTYPE *Parse)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        HSTRING input,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *TryParse)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        HSTRING input,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **result,
        boolean *succeeded);

    HRESULT (STDMETHODCALLTYPE *CreateBooleanValue)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        boolean input,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *CreateNumberValue)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        DOUBLE input,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *CreateStringValue)(
        __x_ABI_CWindows_CData_CJson_CIJsonValueStatics *This,
        HSTRING input,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    END_INTERFACE
} __x_ABI_CWindows_CData_CJson_CIJsonValueStaticsVtbl;

interface __x_ABI_CWindows_CData_CJson_CIJsonValueStatics {
    CONST_VTBL __x_ABI_CWindows_CData_CJson_CIJsonValueStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IJsonValueStatics methods ***/
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_Parse(This,input,value) (This)->lpVtbl->Parse(This,input,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_TryParse(This,input,result,succeeded) (This)->lpVtbl->TryParse(This,input,result,succeeded)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateBooleanValue(This,input,value) (This)->lpVtbl->CreateBooleanValue(This,input,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateNumberValue(This,input,value) (This)->lpVtbl->CreateNumberValue(This,input,value)
#define __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateStringValue(This,input,value) (This)->lpVtbl->CreateStringValue(This,input,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_QueryInterface(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_AddRef(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_Release(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetIids(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetRuntimeClassName(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetTrustLevel(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IJsonValueStatics methods ***/
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_Parse(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,HSTRING input,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->Parse(This,input,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_TryParse(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,HSTRING input,__x_ABI_CWindows_CData_CJson_CIJsonValue **result,boolean *succeeded) {
    return This->lpVtbl->TryParse(This,input,result,succeeded);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateBooleanValue(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,boolean input,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->CreateBooleanValue(This,input,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateNumberValue(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,DOUBLE input,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->CreateNumberValue(This,input,value);
}
static inline HRESULT __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateStringValue(__x_ABI_CWindows_CData_CJson_CIJsonValueStatics* This,HSTRING input,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->CreateStringValue(This,input,value);
}
#endif
#ifdef WIDL_using_Windows_Data_Json
#define IID_IJsonValueStatics IID___x_ABI_CWindows_CData_CJson_CIJsonValueStatics
#define IJsonValueStaticsVtbl __x_ABI_CWindows_CData_CJson_CIJsonValueStaticsVtbl
#define IJsonValueStatics __x_ABI_CWindows_CData_CJson_CIJsonValueStatics
#define IJsonValueStatics_QueryInterface __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_QueryInterface
#define IJsonValueStatics_AddRef __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_AddRef
#define IJsonValueStatics_Release __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_Release
#define IJsonValueStatics_GetIids __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetIids
#define IJsonValueStatics_GetRuntimeClassName __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetRuntimeClassName
#define IJsonValueStatics_GetTrustLevel __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_GetTrustLevel
#define IJsonValueStatics_Parse __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_Parse
#define IJsonValueStatics_TryParse __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_TryParse
#define IJsonValueStatics_CreateBooleanValue __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateBooleanValue
#define IJsonValueStatics_CreateNumberValue __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateNumberValue
#define IJsonValueStatics_CreateStringValue __x_ABI_CWindows_CData_CJson_CIJsonValueStatics_CreateStringValue
#endif /* WIDL_using_Windows_Data_Json */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CData_CJson_CIJsonValueStatics_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*
 * Class Windows.Data.Json.JsonArray
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Data_Json_JsonArray_DEFINED
#define RUNTIMECLASS_Windows_Data_Json_JsonArray_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Data_Json_JsonArray[] = {'W','i','n','d','o','w','s','.','D','a','t','a','.','J','s','o','n','.','J','s','o','n','A','r','r','a','y',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Data_Json_JsonArray[] = L"Windows.Data.Json.JsonArray";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Data_Json_JsonArray[] = {'W','i','n','d','o','w','s','.','D','a','t','a','.','J','s','o','n','.','J','s','o','n','A','r','r','a','y',0};
#endif
#endif /* RUNTIMECLASS_Windows_Data_Json_JsonArray_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*
 * Class Windows.Data.Json.JsonObject
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Data_Json_JsonObject_DEFINED
#define RUNTIMECLASS_Windows_Data_Json_JsonObject_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Data_Json_JsonObject[] = {'W','i','n','d','o','w','s','.','D','a','t','a','.','J','s','o','n','.','J','s','o','n','O','b','j','e','c','t',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Data_Json_JsonObject[] = L"Windows.Data.Json.JsonObject";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Data_Json_JsonObject[] = {'W','i','n','d','o','w','s','.','D','a','t','a','.','J','s','o','n','.','J','s','o','n','O','b','j','e','c','t',0};
#endif
#endif /* RUNTIMECLASS_Windows_Data_Json_JsonObject_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*
 * Class Windows.Data.Json.JsonValue
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Data_Json_JsonValue_DEFINED
#define RUNTIMECLASS_Windows_Data_Json_JsonValue_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Data_Json_JsonValue[] = {'W','i','n','d','o','w','s','.','D','a','t','a','.','J','s','o','n','.','J','s','o','n','V','a','l','u','e',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Data_Json_JsonValue[] = L"Windows.Data.Json.JsonValue";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Data_Json_JsonValue[] = {'W','i','n','d','o','w','s','.','D','a','t','a','.','J','s','o','n','.','J','s','o','n','V','a','l','u','e',0};
#endif
#endif /* RUNTIMECLASS_Windows_Data_Json_JsonValue_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*****************************************************************************
 * IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* > interface
 */
#ifndef ____FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0x4deecc89, 0xb0b8, 0x5ee8, 0xa5,0x1d, 0x1c,0x25,0xad,0x9a,0x5b,0x01);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("4deecc89-b0b8-5ee8-a51d-1c25ad9a5b01")
                IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* > : IKeyValuePair_impl<HSTRING, ABI::Windows::Data::Json::IJsonValue* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0x4deecc89, 0xb0b8, 0x5ee8, 0xa5,0x1d, 0x1c,0x25,0xad,0x9a,0x5b,0x01)
#endif
#else
typedef struct __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Key)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *key);

    HRESULT (STDMETHODCALLTYPE *get_Value)(
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    END_INTERFACE
} __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Key(This,key) (This)->lpVtbl->get_Key(This,key)
#define __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Value(This,value) (This)->lpVtbl->get_Value(This,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
static inline HRESULT __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Key(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING *key) {
    return This->lpVtbl->get_Key(This,key);
}
static inline HRESULT __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Value(__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->get_Value(This,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IKeyValuePair_HSTRING_IJsonValue IID___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IKeyValuePair_HSTRING_IJsonValueVtbl __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl
#define IKeyValuePair_HSTRING_IJsonValue __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IKeyValuePair_HSTRING_IJsonValue_QueryInterface __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IKeyValuePair_HSTRING_IJsonValue_AddRef __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef
#define IKeyValuePair_HSTRING_IJsonValue_Release __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release
#define IKeyValuePair_HSTRING_IJsonValue_GetIids __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids
#define IKeyValuePair_HSTRING_IJsonValue_GetRuntimeClassName __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IKeyValuePair_HSTRING_IJsonValue_GetTrustLevel __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IKeyValuePair_HSTRING_IJsonValue_get_Key __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Key
#define IKeyValuePair_HSTRING_IJsonValue_get_Value __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Value
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IIterable<ABI::Windows::Data::Json::IJsonValue* > interface
 */
#ifndef ____FIIterable_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIIterable_1_Windows__CData__CJson__CIJsonValue, 0xcb0492b6, 0x4113, 0x55cf, 0xb2,0xc5, 0x99,0xeb,0x42,0x8b,0xa4,0x93);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("cb0492b6-4113-55cf-b2c5-99eb428ba493")
                IIterable<ABI::Windows::Data::Json::IJsonValue* > : IIterable_impl<ABI::Windows::Data::Json::IJsonValue* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIIterable_1_Windows__CData__CJson__CIJsonValue, 0xcb0492b6, 0x4113, 0x55cf, 0xb2,0xc5, 0x99,0xeb,0x42,0x8b,0xa4,0x93)
#endif
#else
typedef struct __FIIterable_1_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIIterable_1_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIIterable_1_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIIterable_1_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIIterable_1_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIIterable_1_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIIterable_1_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IIterable<ABI::Windows::Data::Json::IJsonValue* > methods ***/
    HRESULT (STDMETHODCALLTYPE *First)(
        __FIIterable_1_Windows__CData__CJson__CIJsonValue *This,
        __FIIterator_1_Windows__CData__CJson__CIJsonValue **value);

    END_INTERFACE
} __FIIterable_1_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIIterable_1_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIIterable_1_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IIterable<ABI::Windows::Data::Json::IJsonValue* > methods ***/
#define __FIIterable_1_Windows__CData__CJson__CIJsonValue_First(This,value) (This)->lpVtbl->First(This,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIIterable_1_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIIterable_1_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIIterable_1_Windows__CData__CJson__CIJsonValue_AddRef(__FIIterable_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIIterable_1_Windows__CData__CJson__CIJsonValue_Release(__FIIterable_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetIids(__FIIterable_1_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIIterable_1_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIIterable_1_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IIterable<ABI::Windows::Data::Json::IJsonValue* > methods ***/
static inline HRESULT __FIIterable_1_Windows__CData__CJson__CIJsonValue_First(__FIIterable_1_Windows__CData__CJson__CIJsonValue* This,__FIIterator_1_Windows__CData__CJson__CIJsonValue **value) {
    return This->lpVtbl->First(This,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IIterable_IJsonValue IID___FIIterable_1_Windows__CData__CJson__CIJsonValue
#define IIterable_IJsonValueVtbl __FIIterable_1_Windows__CData__CJson__CIJsonValueVtbl
#define IIterable_IJsonValue __FIIterable_1_Windows__CData__CJson__CIJsonValue
#define IIterable_IJsonValue_QueryInterface __FIIterable_1_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IIterable_IJsonValue_AddRef __FIIterable_1_Windows__CData__CJson__CIJsonValue_AddRef
#define IIterable_IJsonValue_Release __FIIterable_1_Windows__CData__CJson__CIJsonValue_Release
#define IIterable_IJsonValue_GetIids __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetIids
#define IIterable_IJsonValue_GetRuntimeClassName __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IIterable_IJsonValue_GetTrustLevel __FIIterable_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IIterable_IJsonValue_First __FIIterable_1_Windows__CData__CJson__CIJsonValue_First
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIIterable_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IIterable<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > interface
 */
#ifndef ____FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xdfabb6e1, 0x0411, 0x5a8f, 0xaa,0x87, 0x35,0x4e,0x71,0x10,0xf0,0x99);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("dfabb6e1-0411-5a8f-aa87-354e7110f099")
                IIterable<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > : IIterable_impl<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xdfabb6e1, 0x0411, 0x5a8f, 0xaa,0x87, 0x35,0x4e,0x71,0x10,0xf0,0x99)
#endif
#else
typedef struct __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IIterable<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > methods ***/
    HRESULT (STDMETHODCALLTYPE *First)(
        __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue **value);

    END_INTERFACE
} __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IIterable<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > methods ***/
#define __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_First(This,value) (This)->lpVtbl->First(This,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IIterable<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > methods ***/
static inline HRESULT __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_First(__FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue **value) {
    return This->lpVtbl->First(This,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IIterable_IKeyValuePair_HSTRING_IJsonValue IID___FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IIterable_IKeyValuePair_HSTRING_IJsonValueVtbl __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl
#define IIterable_IKeyValuePair_HSTRING_IJsonValue __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IIterable_IKeyValuePair_HSTRING_IJsonValue_QueryInterface __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IIterable_IKeyValuePair_HSTRING_IJsonValue_AddRef __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef
#define IIterable_IKeyValuePair_HSTRING_IJsonValue_Release __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release
#define IIterable_IKeyValuePair_HSTRING_IJsonValue_GetIids __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids
#define IIterable_IKeyValuePair_HSTRING_IJsonValue_GetRuntimeClassName __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IIterable_IKeyValuePair_HSTRING_IJsonValue_GetTrustLevel __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IIterable_IKeyValuePair_HSTRING_IJsonValue_First __FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_First
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIIterable_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IIterator<ABI::Windows::Data::Json::IJsonValue* > interface
 */
#ifndef ____FIIterator_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIIterator_1_Windows__CData__CJson__CIJsonValue, 0x189eb512, 0x5a20, 0x5ec6, 0x98,0x66, 0x60,0xaf,0x96,0xf0,0xd2,0x3b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("189eb512-5a20-5ec6-9866-60af96f0d23b")
                IIterator<ABI::Windows::Data::Json::IJsonValue* > : IIterator_impl<ABI::Windows::Data::Json::IJsonValue* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIIterator_1_Windows__CData__CJson__CIJsonValue, 0x189eb512, 0x5a20, 0x5ec6, 0x98,0x66, 0x60,0xaf,0x96,0xf0,0xd2,0x3b)
#endif
#else
typedef struct __FIIterator_1_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IIterator<ABI::Windows::Data::Json::IJsonValue* > methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Current)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *MoveNext)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *GetMany)(
        __FIIterator_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 items_size,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **items,
        UINT32 *value);

    END_INTERFACE
} __FIIterator_1_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIIterator_1_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIIterator_1_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IIterator<ABI::Windows::Data::Json::IJsonValue* > methods ***/
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
#define __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetMany(This,items_size,items,value) (This)->lpVtbl->GetMany(This,items_size,items,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIIterator_1_Windows__CData__CJson__CIJsonValue_AddRef(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIIterator_1_Windows__CData__CJson__CIJsonValue_Release(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetIids(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IIterator<ABI::Windows::Data::Json::IJsonValue* > methods ***/
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_get_Current(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->get_Current(This,value);
}
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_get_HasCurrent(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,boolean *value) {
    return This->lpVtbl->get_HasCurrent(This,value);
}
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_MoveNext(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,boolean *value) {
    return This->lpVtbl->MoveNext(This,value);
}
static inline HRESULT __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetMany(__FIIterator_1_Windows__CData__CJson__CIJsonValue* This,UINT32 items_size,__x_ABI_CWindows_CData_CJson_CIJsonValue **items,UINT32 *value) {
    return This->lpVtbl->GetMany(This,items_size,items,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IIterator_IJsonValue IID___FIIterator_1_Windows__CData__CJson__CIJsonValue
#define IIterator_IJsonValueVtbl __FIIterator_1_Windows__CData__CJson__CIJsonValueVtbl
#define IIterator_IJsonValue __FIIterator_1_Windows__CData__CJson__CIJsonValue
#define IIterator_IJsonValue_QueryInterface __FIIterator_1_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IIterator_IJsonValue_AddRef __FIIterator_1_Windows__CData__CJson__CIJsonValue_AddRef
#define IIterator_IJsonValue_Release __FIIterator_1_Windows__CData__CJson__CIJsonValue_Release
#define IIterator_IJsonValue_GetIids __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetIids
#define IIterator_IJsonValue_GetRuntimeClassName __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IIterator_IJsonValue_GetTrustLevel __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IIterator_IJsonValue_get_Current __FIIterator_1_Windows__CData__CJson__CIJsonValue_get_Current
#define IIterator_IJsonValue_get_HasCurrent __FIIterator_1_Windows__CData__CJson__CIJsonValue_get_HasCurrent
#define IIterator_IJsonValue_MoveNext __FIIterator_1_Windows__CData__CJson__CIJsonValue_MoveNext
#define IIterator_IJsonValue_GetMany __FIIterator_1_Windows__CData__CJson__CIJsonValue_GetMany
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIIterator_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IIterator<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > interface
 */
#ifndef ____FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xf948eac5, 0x33eb, 0x50f5, 0xb5,0xaf, 0xe7,0xce,0xcf,0x0e,0x45,0x01);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("f948eac5-33eb-50f5-b5af-e7cecf0e4501")
                IIterator<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > : IIterator_impl<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xf948eac5, 0x33eb, 0x50f5, 0xb5,0xaf, 0xe7,0xce,0xcf,0x0e,0x45,0x01)
#endif
#else
typedef struct __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IIterator<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Current)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *MoveNext)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *GetMany)(
        __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        UINT32 items_size,
        __FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue **items,
        UINT32 *value);

    END_INTERFACE
} __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IIterator<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > methods ***/
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
#define __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetMany(This,items_size,items,value) (This)->lpVtbl->GetMany(This,items_size,items,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IIterator<ABI::Windows::Foundation::Collections::IKeyValuePair<HSTRING,ABI::Windows::Data::Json::IJsonValue* >* > methods ***/
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Current(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue **value) {
    return This->lpVtbl->get_Current(This,value);
}
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_HasCurrent(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,boolean *value) {
    return This->lpVtbl->get_HasCurrent(This,value);
}
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_MoveNext(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,boolean *value) {
    return This->lpVtbl->MoveNext(This,value);
}
static inline HRESULT __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetMany(__FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,UINT32 items_size,__FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue **items,UINT32 *value) {
    return This->lpVtbl->GetMany(This,items_size,items,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IIterator_IKeyValuePair_HSTRING_IJsonValue IID___FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IIterator_IKeyValuePair_HSTRING_IJsonValueVtbl __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl
#define IIterator_IKeyValuePair_HSTRING_IJsonValue __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_QueryInterface __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_AddRef __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_Release __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_GetIids __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_GetRuntimeClassName __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_GetTrustLevel __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_get_Current __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Current
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_get_HasCurrent __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_HasCurrent
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_MoveNext __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_MoveNext
#define IIterator_IKeyValuePair_HSTRING_IJsonValue_GetMany __FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetMany
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIIterator_1___FIKeyValuePair_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMapView<HSTRING,ABI::Windows::Data::Json::IJsonValue* > interface
 */
#ifndef ____FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xeecd690c, 0x1ff3, 0x529f, 0x92,0x3f, 0x9b,0x1c,0x31,0xfd,0x3d,0x0f);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("eecd690c-1ff3-529f-923f-9b1c31fd3d0f")
                IMapView<HSTRING,ABI::Windows::Data::Json::IJsonValue* > : IMapView_impl<HSTRING, ABI::Windows::Data::Json::IJsonValue* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xeecd690c, 0x1ff3, 0x529f, 0x92,0x3f, 0x9b,0x1c,0x31,0xfd,0x3d,0x0f)
#endif
#else
typedef struct __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IMapView<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Lookup)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING key,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *get_Size)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        unsigned int *size);

    HRESULT (STDMETHODCALLTYPE *HasKey)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING key,
        boolean *found);

    HRESULT (STDMETHODCALLTYPE *Split)(
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue **first,
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue **second);

    END_INTERFACE
} __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IMapView<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Lookup(This,key,value) (This)->lpVtbl->Lookup(This,key,value)
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Size(This,size) (This)->lpVtbl->get_Size(This,size)
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_HasKey(This,key,found) (This)->lpVtbl->HasKey(This,key,found)
#define __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Split(This,first,second) (This)->lpVtbl->Split(This,first,second)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IMapView<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Lookup(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING key,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->Lookup(This,key,value);
}
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Size(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,unsigned int *size) {
    return This->lpVtbl->get_Size(This,size);
}
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_HasKey(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING key,boolean *found) {
    return This->lpVtbl->HasKey(This,key,found);
}
static inline HRESULT __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Split(__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue **first,__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue **second) {
    return This->lpVtbl->Split(This,first,second);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IMapView_HSTRING_IJsonValue IID___FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IMapView_HSTRING_IJsonValueVtbl __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl
#define IMapView_HSTRING_IJsonValue __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IMapView_HSTRING_IJsonValue_QueryInterface __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IMapView_HSTRING_IJsonValue_AddRef __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef
#define IMapView_HSTRING_IJsonValue_Release __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release
#define IMapView_HSTRING_IJsonValue_GetIids __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids
#define IMapView_HSTRING_IJsonValue_GetRuntimeClassName __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IMapView_HSTRING_IJsonValue_GetTrustLevel __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IMapView_HSTRING_IJsonValue_Lookup __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Lookup
#define IMapView_HSTRING_IJsonValue_get_Size __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Size
#define IMapView_HSTRING_IJsonValue_HasKey __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_HasKey
#define IMapView_HSTRING_IJsonValue_Split __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_Split
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMap<HSTRING,ABI::Windows::Data::Json::IJsonValue* > interface
 */
#ifndef ____FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xc9d9a725, 0x786b, 0x5113, 0xb4,0xb7, 0x9b,0x61,0x76,0x4c,0x22,0x0b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("c9d9a725-786b-5113-b4b7-9b61764c220b")
                IMap<HSTRING,ABI::Windows::Data::Json::IJsonValue* > : IMap_impl<HSTRING, ABI::Windows::Data::Json::IJsonValue* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue, 0xc9d9a725, 0x786b, 0x5113, 0xb4,0xb7, 0x9b,0x61,0x76,0x4c,0x22,0x0b)
#endif
#else
typedef struct __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IMap<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Lookup)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING key,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *get_Size)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        unsigned int *size);

    HRESULT (STDMETHODCALLTYPE *HasKey)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING key,
        boolean *found);

    HRESULT (STDMETHODCALLTYPE *GetView)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        __FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue **view);

    HRESULT (STDMETHODCALLTYPE *Insert)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING key,
        __x_ABI_CWindows_CData_CJson_CIJsonValue *value,
        boolean *replaced);

    HRESULT (STDMETHODCALLTYPE *Remove)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This,
        HSTRING key);

    HRESULT (STDMETHODCALLTYPE *Clear)(
        __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue *This);

    END_INTERFACE
} __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IMap<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Lookup(This,key,value) (This)->lpVtbl->Lookup(This,key,value)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Size(This,size) (This)->lpVtbl->get_Size(This,size)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_HasKey(This,key,found) (This)->lpVtbl->HasKey(This,key,found)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetView(This,view) (This)->lpVtbl->GetView(This,view)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Insert(This,key,value,replaced) (This)->lpVtbl->Insert(This,key,value,replaced)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Remove(This,key) (This)->lpVtbl->Remove(This,key)
#define __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Clear(This) (This)->lpVtbl->Clear(This)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IMap<HSTRING,ABI::Windows::Data::Json::IJsonValue* > methods ***/
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Lookup(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING key,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->Lookup(This,key,value);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Size(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,unsigned int *size) {
    return This->lpVtbl->get_Size(This,size);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_HasKey(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING key,boolean *found) {
    return This->lpVtbl->HasKey(This,key,found);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetView(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,__FIMapView_2_HSTRING_Windows__CData__CJson__CIJsonValue **view) {
    return This->lpVtbl->GetView(This,view);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Insert(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING key,__x_ABI_CWindows_CData_CJson_CIJsonValue *value,boolean *replaced) {
    return This->lpVtbl->Insert(This,key,value,replaced);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Remove(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This,HSTRING key) {
    return This->lpVtbl->Remove(This,key);
}
static inline HRESULT __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Clear(__FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Clear(This);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IMap_HSTRING_IJsonValue IID___FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IMap_HSTRING_IJsonValueVtbl __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValueVtbl
#define IMap_HSTRING_IJsonValue __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue
#define IMap_HSTRING_IJsonValue_QueryInterface __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IMap_HSTRING_IJsonValue_AddRef __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_AddRef
#define IMap_HSTRING_IJsonValue_Release __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Release
#define IMap_HSTRING_IJsonValue_GetIids __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetIids
#define IMap_HSTRING_IJsonValue_GetRuntimeClassName __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IMap_HSTRING_IJsonValue_GetTrustLevel __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IMap_HSTRING_IJsonValue_Lookup __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Lookup
#define IMap_HSTRING_IJsonValue_get_Size __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_get_Size
#define IMap_HSTRING_IJsonValue_HasKey __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_HasKey
#define IMap_HSTRING_IJsonValue_GetView __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_GetView
#define IMap_HSTRING_IJsonValue_Insert __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Insert
#define IMap_HSTRING_IJsonValue_Remove __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Remove
#define IMap_HSTRING_IJsonValue_Clear __FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_Clear
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIMap_2_HSTRING_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVectorView<ABI::Windows::Data::Json::IJsonValue* > interface
 */
#ifndef ____FIVectorView_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIVectorView_1_Windows__CData__CJson__CIJsonValue, 0xcffabb0f, 0x6bc4, 0x5ff6, 0x9b,0x9e, 0x7a,0x9d,0xf6,0xc6,0x87,0xc8);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("cffabb0f-6bc4-5ff6-9b9e-7a9df6c687c8")
                IVectorView<ABI::Windows::Data::Json::IJsonValue* > : IVectorView_impl<ABI::Windows::Data::Json::IJsonValue* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIVectorView_1_Windows__CData__CJson__CIJsonValue, 0xcffabb0f, 0x6bc4, 0x5ff6, 0x9b,0x9e, 0x7a,0x9d,0xf6,0xc6,0x87,0xc8)
#endif
#else
typedef struct __FIVectorView_1_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IVectorView<ABI::Windows::Data::Json::IJsonValue* > methods ***/
    HRESULT (STDMETHODCALLTYPE *GetAt)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 index,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *get_Size)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 *value);

    HRESULT (STDMETHODCALLTYPE *IndexOf)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CIJsonValue *element,
        UINT32 *index,
        BOOLEAN *value);

    HRESULT (STDMETHODCALLTYPE *GetMany)(
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 start_index,
        UINT32 items_size,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **items,
        UINT32 *value);

    END_INTERFACE
} __FIVectorView_1_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIVectorView_1_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIVectorView_1_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IVectorView<ABI::Windows::Data::Json::IJsonValue* > methods ***/
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
#define __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIVectorView_1_Windows__CData__CJson__CIJsonValue_AddRef(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIVectorView_1_Windows__CData__CJson__CIJsonValue_Release(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetIids(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IVectorView<ABI::Windows::Data::Json::IJsonValue* > methods ***/
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetAt(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,UINT32 index,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->GetAt(This,index,value);
}
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_get_Size(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,UINT32 *value) {
    return This->lpVtbl->get_Size(This,value);
}
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_IndexOf(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CIJsonValue *element,UINT32 *index,BOOLEAN *value) {
    return This->lpVtbl->IndexOf(This,element,index,value);
}
static inline HRESULT __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetMany(__FIVectorView_1_Windows__CData__CJson__CIJsonValue* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CData_CJson_CIJsonValue **items,UINT32 *value) {
    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IVectorView_IJsonValue IID___FIVectorView_1_Windows__CData__CJson__CIJsonValue
#define IVectorView_IJsonValueVtbl __FIVectorView_1_Windows__CData__CJson__CIJsonValueVtbl
#define IVectorView_IJsonValue __FIVectorView_1_Windows__CData__CJson__CIJsonValue
#define IVectorView_IJsonValue_QueryInterface __FIVectorView_1_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IVectorView_IJsonValue_AddRef __FIVectorView_1_Windows__CData__CJson__CIJsonValue_AddRef
#define IVectorView_IJsonValue_Release __FIVectorView_1_Windows__CData__CJson__CIJsonValue_Release
#define IVectorView_IJsonValue_GetIids __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetIids
#define IVectorView_IJsonValue_GetRuntimeClassName __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IVectorView_IJsonValue_GetTrustLevel __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IVectorView_IJsonValue_GetAt __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetAt
#define IVectorView_IJsonValue_get_Size __FIVectorView_1_Windows__CData__CJson__CIJsonValue_get_Size
#define IVectorView_IJsonValue_IndexOf __FIVectorView_1_Windows__CData__CJson__CIJsonValue_IndexOf
#define IVectorView_IJsonValue_GetMany __FIVectorView_1_Windows__CData__CJson__CIJsonValue_GetMany
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIVectorView_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVector<ABI::Windows::Data::Json::IJsonValue* > interface
 */
#ifndef ____FIVector_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__
#define ____FIVector_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIVector_1_Windows__CData__CJson__CIJsonValue, 0xd44662bc, 0xdce3, 0x59a8, 0x92,0x72, 0x4b,0x21,0x0f,0x33,0x90,0x8b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("d44662bc-dce3-59a8-9272-4b210f33908b")
                IVector<ABI::Windows::Data::Json::IJsonValue* > : IVector_impl<ABI::Windows::Data::Json::IJsonValue* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIVector_1_Windows__CData__CJson__CIJsonValue, 0xd44662bc, 0xdce3, 0x59a8, 0x92,0x72, 0x4b,0x21,0x0f,0x33,0x90,0x8b)
#endif
#else
typedef struct __FIVector_1_Windows__CData__CJson__CIJsonValueVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        TrustLevel *trustLevel);

    /*** IVector<ABI::Windows::Data::Json::IJsonValue* > methods ***/
    HRESULT (STDMETHODCALLTYPE *GetAt)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 index,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *get_Size)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 *value);

    HRESULT (STDMETHODCALLTYPE *GetView)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        __FIVectorView_1_Windows__CData__CJson__CIJsonValue **value);

    HRESULT (STDMETHODCALLTYPE *IndexOf)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CIJsonValue *element,
        UINT32 *index,
        BOOLEAN *value);

    HRESULT (STDMETHODCALLTYPE *SetAt)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 index,
        __x_ABI_CWindows_CData_CJson_CIJsonValue *value);

    HRESULT (STDMETHODCALLTYPE *InsertAt)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 index,
        __x_ABI_CWindows_CData_CJson_CIJsonValue *value);

    HRESULT (STDMETHODCALLTYPE *RemoveAt)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 index);

    HRESULT (STDMETHODCALLTYPE *Append)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        __x_ABI_CWindows_CData_CJson_CIJsonValue *value);

    HRESULT (STDMETHODCALLTYPE *RemoveAtEnd)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This);

    HRESULT (STDMETHODCALLTYPE *Clear)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This);

    HRESULT (STDMETHODCALLTYPE *GetMany)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 start_index,
        UINT32 items_size,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **items,
        UINT32 *value);

    HRESULT (STDMETHODCALLTYPE *ReplaceAll)(
        __FIVector_1_Windows__CData__CJson__CIJsonValue *This,
        UINT32 count,
        __x_ABI_CWindows_CData_CJson_CIJsonValue **items);

    END_INTERFACE
} __FIVector_1_Windows__CData__CJson__CIJsonValueVtbl;

interface __FIVector_1_Windows__CData__CJson__CIJsonValue {
    CONST_VTBL __FIVector_1_Windows__CData__CJson__CIJsonValueVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IVector<ABI::Windows::Data::Json::IJsonValue* > methods ***/
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_GetView(This,value) (This)->lpVtbl->GetView(This,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_SetAt(This,index,value) (This)->lpVtbl->SetAt(This,index,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_InsertAt(This,index,value) (This)->lpVtbl->InsertAt(This,index,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_RemoveAt(This,index) (This)->lpVtbl->RemoveAt(This,index)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_Append(This,value) (This)->lpVtbl->Append(This,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_RemoveAtEnd(This) (This)->lpVtbl->RemoveAtEnd(This)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_Clear(This) (This)->lpVtbl->Clear(This)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
#define __FIVector_1_Windows__CData__CJson__CIJsonValue_ReplaceAll(This,count,items) (This)->lpVtbl->ReplaceAll(This,count,items)
#else
/*** IUnknown methods ***/
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_QueryInterface(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __FIVector_1_Windows__CData__CJson__CIJsonValue_AddRef(__FIVector_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __FIVector_1_Windows__CData__CJson__CIJsonValue_Release(__FIVector_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_GetIids(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IVector<ABI::Windows::Data::Json::IJsonValue* > methods ***/
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_GetAt(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,UINT32 index,__x_ABI_CWindows_CData_CJson_CIJsonValue **value) {
    return This->lpVtbl->GetAt(This,index,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_get_Size(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,UINT32 *value) {
    return This->lpVtbl->get_Size(This,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_GetView(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,__FIVectorView_1_Windows__CData__CJson__CIJsonValue **value) {
    return This->lpVtbl->GetView(This,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_IndexOf(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CIJsonValue *element,UINT32 *index,BOOLEAN *value) {
    return This->lpVtbl->IndexOf(This,element,index,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_SetAt(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,UINT32 index,__x_ABI_CWindows_CData_CJson_CIJsonValue *value) {
    return This->lpVtbl->SetAt(This,index,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_InsertAt(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,UINT32 index,__x_ABI_CWindows_CData_CJson_CIJsonValue *value) {
    return This->lpVtbl->InsertAt(This,index,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_RemoveAt(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,UINT32 index) {
    return This->lpVtbl->RemoveAt(This,index);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_Append(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,__x_ABI_CWindows_CData_CJson_CIJsonValue *value) {
    return This->lpVtbl->Append(This,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_RemoveAtEnd(__FIVector_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->RemoveAtEnd(This);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_Clear(__FIVector_1_Windows__CData__CJson__CIJsonValue* This) {
    return This->lpVtbl->Clear(This);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_GetMany(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CData_CJson_CIJsonValue **items,UINT32 *value) {
    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
}
static inline HRESULT __FIVector_1_Windows__CData__CJson__CIJsonValue_ReplaceAll(__FIVector_1_Windows__CData__CJson__CIJsonValue* This,UINT32 count,__x_ABI_CWindows_CData_CJson_CIJsonValue **items) {
    return This->lpVtbl->ReplaceAll(This,count,items);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IVector_IJsonValue IID___FIVector_1_Windows__CData__CJson__CIJsonValue
#define IVector_IJsonValueVtbl __FIVector_1_Windows__CData__CJson__CIJsonValueVtbl
#define IVector_IJsonValue __FIVector_1_Windows__CData__CJson__CIJsonValue
#define IVector_IJsonValue_QueryInterface __FIVector_1_Windows__CData__CJson__CIJsonValue_QueryInterface
#define IVector_IJsonValue_AddRef __FIVector_1_Windows__CData__CJson__CIJsonValue_AddRef
#define IVector_IJsonValue_Release __FIVector_1_Windows__CData__CJson__CIJsonValue_Release
#define IVector_IJsonValue_GetIids __FIVector_1_Windows__CData__CJson__CIJsonValue_GetIids
#define IVector_IJsonValue_GetRuntimeClassName __FIVector_1_Windows__CData__CJson__CIJsonValue_GetRuntimeClassName
#define IVector_IJsonValue_GetTrustLevel __FIVector_1_Windows__CData__CJson__CIJsonValue_GetTrustLevel
#define IVector_IJsonValue_GetAt __FIVector_1_Windows__CData__CJson__CIJsonValue_GetAt
#define IVector_IJsonValue_get_Size __FIVector_1_Windows__CData__CJson__CIJsonValue_get_Size
#define IVector_IJsonValue_GetView __FIVector_1_Windows__CData__CJson__CIJsonValue_GetView
#define IVector_IJsonValue_IndexOf __FIVector_1_Windows__CData__CJson__CIJsonValue_IndexOf
#define IVector_IJsonValue_SetAt __FIVector_1_Windows__CData__CJson__CIJsonValue_SetAt
#define IVector_IJsonValue_InsertAt __FIVector_1_Windows__CData__CJson__CIJsonValue_InsertAt
#define IVector_IJsonValue_RemoveAt __FIVector_1_Windows__CData__CJson__CIJsonValue_RemoveAt
#define IVector_IJsonValue_Append __FIVector_1_Windows__CData__CJson__CIJsonValue_Append
#define IVector_IJsonValue_RemoveAtEnd __FIVector_1_Windows__CData__CJson__CIJsonValue_RemoveAtEnd
#define IVector_IJsonValue_Clear __FIVector_1_Windows__CData__CJson__CIJsonValue_Clear
#define IVector_IJsonValue_GetMany __FIVector_1_Windows__CData__CJson__CIJsonValue_GetMany
#define IVector_IJsonValue_ReplaceAll __FIVector_1_Windows__CData__CJson__CIJsonValue_ReplaceAll
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIVector_1_Windows__CData__CJson__CIJsonValue_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_data_json_h__ */
