//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0014
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Phone
    {
        namespace UI
        {
            namespace Input
            {
                interface IHardwareButtonsStatics;

                interface IHardwareButtonsStatics2;

                interface IBackPressedEventArgs;

                interface ICameraEventArgs;

                runtimeclass BackPressedEventArgs;

                runtimeclass CameraEventArgs;

                runtimeclass HardwareButtons;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Phone
    {
        namespace UI
        {
            namespace Input
            {
                declare
                {
                    interface Windows.Foundation.EventHandler<Windows.Phone.UI.Input.BackPressedEventArgs*>;

                    interface Windows.Foundation.EventHandler<Windows.Phone.UI.Input.CameraEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Phone
    {
        namespace UI
        {
            namespace Input
            {
                [exclusiveto(Windows.Phone.UI.Input.HardwareButtons)]
                [uuid(594B8780-DA66-4FD8-A776-7506BD0CBFA7)]
                [version(0x06020000)]
                interface IHardwareButtonsStatics : IInspectable
                {
                    [eventadd] HRESULT BackPressed([in] Windows.Foundation.EventHandler<Windows.Phone.UI.Input.BackPressedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT BackPressed([in] EventRegistrationToken token);
                }

                [exclusiveto(Windows.Phone.UI.Input.HardwareButtons)]
                [uuid(39C6C274-993F-40DD-854C-831A8934B92E)]
                [version(0x06030000)]
                interface IHardwareButtonsStatics2 : IInspectable
                {
                    [eventadd] HRESULT CameraHalfPressed([in] Windows.Foundation.EventHandler<Windows.Phone.UI.Input.CameraEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT CameraHalfPressed([in] EventRegistrationToken token);
                    [eventadd] HRESULT CameraPressed([in] Windows.Foundation.EventHandler<Windows.Phone.UI.Input.CameraEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT CameraPressed([in] EventRegistrationToken token);
                    [eventadd] HRESULT CameraReleased([in] Windows.Foundation.EventHandler<Windows.Phone.UI.Input.CameraEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT CameraReleased([in] EventRegistrationToken token);
                }

                [exclusiveto(Windows.Phone.UI.Input.BackPressedEventArgs)]
                [uuid(F6F555FF-64EC-42A2-B93B-2FBC0C36A121)]
                [version(0x06020000)]
                interface IBackPressedEventArgs : IInspectable
                {
                    [propget] HRESULT Handled([out] [retval] boolean* value);
                    [propput] HRESULT Handled([in] boolean value);
                }

                [exclusiveto(Windows.Phone.UI.Input.CameraEventArgs)]
                [uuid(B4063BDA-201F-473D-BC69-E9E4AC57C9D0)]
                [version(0x06030000)]
                interface ICameraEventArgs : IInspectable
                {
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass BackPressedEventArgs
                {
                    [default] interface Windows.Phone.UI.Input.IBackPressedEventArgs;
                }

                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass CameraEventArgs
                {
                    [default] interface Windows.Phone.UI.Input.ICameraEventArgs;
                }

                [marshaling_behavior(agile)]
                [static(Windows.Phone.UI.Input.IHardwareButtonsStatics, 0x06020000)]
                [static(Windows.Phone.UI.Input.IHardwareButtonsStatics2, 0x06030000)]
                [version(0x06020000)]
                runtimeclass HardwareButtons
                {
                }
            }
        }
    }
}
