/*
 * This file was generated automatically by ExtUtils::ParseXS version 3.51 from the
 * contents of Combobox.xs. Do not edit this file, edit Combobox.xs instead.
 *
 *    ANY CHANGES MADE HERE WILL BE LOST!
 *
 */

#line 1 "Combobox.xs"
    /*
    ###########################################################################
    # (@)PACKAGE:Win32::GUI::Combobox
    #
    # $Id: Combobox.xs,v 1.9 2007/07/15 18:23:06 robertemay Exp $
    #
    ###########################################################################
    */

#include "GUI.h"

void Combobox_onPreCreate(NOTXSPROC LPPERLWIN32GUI_CREATESTRUCT perlcs) {

    perlcs->cs.lpszClass = "COMBOBOX";
    perlcs->cs.style = WS_VISIBLE | WS_CHILD;
    perlcs->cs.dwExStyle = WS_EX_CLIENTEDGE;
}

BOOL
Combobox_onParseOption(NOTXSPROC char *option, SV* value, LPPERLWIN32GUI_CREATESTRUCT perlcs) {

    BOOL retval = TRUE;
           
           if BitmaskOptionValue("-autohscroll",       perlcs->cs.style, CBS_AUTOHSCROLL)
    } else if BitmaskOptionValue("-disablenoscroll",   perlcs->cs.style, CBS_DISABLENOSCROLL)
    } else if BitmaskOptionValue("-hasstring",         perlcs->cs.style, CBS_HASSTRINGS)
    } else if BitmaskOptionValue("-lowercase",         perlcs->cs.style, CBS_LOWERCASE)
    } else if BitmaskOptionValue("-nointegraleheight", perlcs->cs.style, CBS_NOINTEGRALHEIGHT)
    } else if BitmaskOptionValue("-sort",              perlcs->cs.style, CBS_SORT)
    } else if BitmaskOptionValue("-uppercase",         perlcs->cs.style, CBS_UPPERCASE)
    }
    else if(strcmp(option, "-simple") == 0) {
        perlcs->cs.style &= ~CBS_DROPDOWNLIST;
        perlcs->cs.style |=  CBS_SIMPLE;
    }
    else if(strcmp(option, "-dropdown") == 0) {
        perlcs->cs.style &= ~CBS_DROPDOWNLIST;
        perlcs->cs.style |=  CBS_DROPDOWN;
    }
    else if(strcmp(option, "-dropdownlist") == 0) {
        perlcs->cs.style |=  CBS_DROPDOWNLIST;
    }
    else
        retval = FALSE;

    return retval;
}

void
Combobox_onPostCreate(NOTXSPROC HWND myhandle, LPPERLWIN32GUI_CREATESTRUCT perlcs) {
}

BOOL
Combobox_onParseEvent(NOTXSPROC char *name, int* eventID) {

    BOOL retval = TRUE;

         if Parse_Event("GotFocus",   PERLWIN32GUI_NEM_GOTFOCUS)
    else if Parse_Event("LostFocus",  PERLWIN32GUI_NEM_LOSTFOCUS)
    else if Parse_Event("DblClick",   PERLWIN32GUI_NEM_DBLCLICK)
    else if Parse_Event("Change",     PERLWIN32GUI_NEM_CONTROL1)
    else if Parse_Event("Anonymous",  PERLWIN32GUI_NEM_CONTROL2)
    else if Parse_Event("DropDown",   PERLWIN32GUI_NEM_CONTROL3)
    else if Parse_Event("CloseUp",    PERLWIN32GUI_NEM_CONTROL4)
    else retval = FALSE;

    return retval;
}

int
Combobox_onEvent (NOTXSPROC LPPERLWIN32GUI_USERDATA perlud, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    int PerlResult = 1;

    if ( uMsg == WM_COMMAND ) {

        switch(HIWORD(wParam)) {
        case CBN_SETFOCUS:
            /*
             * (@)EVENT:GotFocus()
             * Sent when the control is activated.
             * (@)APPLIES_TO:Combobox, ComboboxEx
             */
            PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_GOTFOCUS, "GotFocus", -1 );
            break;
        case CBN_KILLFOCUS:
            /*
             * (@)EVENT:LostFocus()
             * Sent when the control is deactivated.
             * (@)APPLIES_TO:Combobox, ComboboxEx
             */  
            PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_LOSTFOCUS, "LostFocus", -1 );
            break;
        case CBN_DBLCLK:
            /*
             * (@)EVENT:DblClick()
             * Sent when the user double clicks on an item from the Combobox
             * (@)APPLIES_TO:Combobox, ComboboxEx
             */ 
            PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_DBLCLICK, "DblClick", -1 );
            break;
        case CBN_SELCHANGE:
            /*
             * (@)EVENT:Change()
             * Sent when the user selects an item from the Combobox
             * (@)APPLIES_TO:Combobox, ComboboxEx
             */
            PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL1, "Change", -1 );
            break;
        case CBN_DROPDOWN:
            /*
             * (@)EVENT:DropDown()
             * Sent when the user selects the list box. This event allows you to populate the
             * dropdown dynamically. This event is only fired if the combo box has the CBS_DROPDOWN or CBS_DROPDOWNLIST style.
             * (@)APPLIES_TO:Combobox, ComboboxEx
             */
            PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL3, "DropDown", -1 );
            break;
        case CBN_CLOSEUP:
            /*
             * (@)EVENT:CloseUp()
             * Sent when the list box of a combo box has been closed. This event allows you to populate the
             * dropdown dynamically. This event is only fired if the combo box has the CBS_DROPDOWN or CBS_DROPDOWNLIST style.
             *
             * If the user changed the current selection, the combo box also sends the Change event when the drop-down list closes. 
             * In general, you cannot predict the order in which notifications will be sent. In particular, a Change event message 
             * may occur either before or after a CloseUp event.
             * (@)APPLIES_TO:Combobox, ComboboxEx
             */
            PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL4, "CloseUp", -1 );
            break;
        default:
            PerlResult = DoEvent(NOTXSCALL perlud, PERLWIN32GUI_NEM_CONTROL2, "Anonymous",
                PERLWIN32GUI_ARGTYPE_INT, HIWORD(wParam),
                -1 );
            break;

        }
    }

    return PerlResult;
}

    /*
    ###########################################################################
    # (@)PACKAGE:Win32::GUI::ComboboxEx
    ###########################################################################
    */

void ComboboxEx_onPreCreate(NOTXSPROC LPPERLWIN32GUI_CREATESTRUCT perlcs) {

    perlcs->cs.lpszClass = WC_COMBOBOXEX;
    perlcs->cs.style = WS_VISIBLE | WS_CHILD;
}

BOOL
ComboboxEx_onParseOption(NOTXSPROC char *option, SV* value, LPPERLWIN32GUI_CREATESTRUCT perlcs) {
    BOOL retval = TRUE;

    if(strcmp(option, "-imagelist") == 0) {
        perlcs->hImageList = (HIMAGELIST) handle_From(NOTXSCALL value);
    } else if BitmaskOptionValueMask("-casesensitive",     perlcs->dwFlags, CBES_EX_CASESENSITIVE )
    } else if BitmaskOptionValueMask("-noeditimage",       perlcs->dwFlags, CBES_EX_NOEDITIMAGE )
    } else if BitmaskOptionValueMask("-noeditimageindent", perlcs->dwFlags, CBES_EX_NOEDITIMAGEINDENT )
    } else if BitmaskOptionValueMask("-nosizelimit",       perlcs->dwFlags, CBES_EX_NOSIZELIMIT )
    } else retval = Combobox_onParseOption (NOTXSCALL option, value, perlcs);

    return retval;
}

void
ComboboxEx_onPostCreate(NOTXSPROC HWND myhandle, LPPERLWIN32GUI_CREATESTRUCT perlcs) {

    if(perlcs->hImageList != NULL) {
        SendMessage(myhandle, CBEM_SETIMAGELIST, 0, (LPARAM) perlcs->hImageList);
    }
    if ( perlcs->dwFlagsMask != 0) {
        SendMessage(myhandle, CBEM_SETEXTENDEDSTYLE, (WPARAM) perlcs->dwFlagsMask, (LPARAM) perlcs->dwFlags);
    }
}

BOOL
ComboboxEx_onParseEvent(NOTXSPROC char *name, int* eventID) {

    return Combobox_onParseEvent(NOTXSCALL name, eventID);;
}

int
ComboboxEx_onEvent (NOTXSPROC LPPERLWIN32GUI_USERDATA perlud, UINT uMsg, WPARAM wParam, LPARAM lParam) {

    return Combobox_onEvent (NOTXSCALL perlud, uMsg, wParam, lParam);
}

#line 204 "Combobox.c"
#ifndef PERL_UNUSED_VAR
#  define PERL_UNUSED_VAR(var) if (0) var = var
#endif

#ifndef dVAR
#  define dVAR		dNOOP
#endif


/* This stuff is not part of the API! You have been warned. */
#ifndef PERL_VERSION_DECIMAL
#  define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
#endif
#ifndef PERL_DECIMAL_VERSION
#  define PERL_DECIMAL_VERSION \
	  PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
#endif
#ifndef PERL_VERSION_GE
#  define PERL_VERSION_GE(r,v,s) \
	  (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
#endif
#ifndef PERL_VERSION_LE
#  define PERL_VERSION_LE(r,v,s) \
	  (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
#endif

/* XS_INTERNAL is the explicit static-linkage variant of the default
 * XS macro.
 *
 * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
 * "STATIC", ie. it exports XSUB symbols. You probably don't want that
 * for anything but the BOOT XSUB.
 *
 * See XSUB.h in core!
 */


/* TODO: This might be compatible further back than 5.10.0. */
#if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1)
#  undef XS_EXTERNAL
#  undef XS_INTERNAL
#  if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
#    define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
#    define XS_INTERNAL(name) STATIC XSPROTO(name)
#  endif
#  if defined(__SYMBIAN32__)
#    define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)
#    define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name)
#  endif
#  ifndef XS_EXTERNAL
#    if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
#      define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__)
#      define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__)
#    else
#      ifdef __cplusplus
#        define XS_EXTERNAL(name) extern "C" XSPROTO(name)
#        define XS_INTERNAL(name) static XSPROTO(name)
#      else
#        define XS_EXTERNAL(name) XSPROTO(name)
#        define XS_INTERNAL(name) STATIC XSPROTO(name)
#      endif
#    endif
#  endif
#endif

/* perl >= 5.10.0 && perl <= 5.15.1 */


/* The XS_EXTERNAL macro is used for functions that must not be static
 * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
 * macro defined, the best we can do is assume XS is the same.
 * Dito for XS_INTERNAL.
 */
#ifndef XS_EXTERNAL
#  define XS_EXTERNAL(name) XS(name)
#endif
#ifndef XS_INTERNAL
#  define XS_INTERNAL(name) XS(name)
#endif

/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
 * internal macro that we're free to redefine for varying linkage due
 * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
 * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
 */

#undef XS_EUPXS
#if defined(PERL_EUPXS_ALWAYS_EXPORT)
#  define XS_EUPXS(name) XS_EXTERNAL(name)
#else
   /* default to internal */
#  define XS_EUPXS(name) XS_INTERNAL(name)
#endif

#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)

/* prototype to pass -Wmissing-prototypes */
STATIC void
S_croak_xs_usage(const CV *const cv, const char *const params);

STATIC void
S_croak_xs_usage(const CV *const cv, const char *const params)
{
    const GV *const gv = CvGV(cv);

    PERL_ARGS_ASSERT_CROAK_XS_USAGE;

    if (gv) {
        const char *const gvname = GvNAME(gv);
        const HV *const stash = GvSTASH(gv);
        const char *const hvname = stash ? HvNAME(stash) : NULL;

        if (hvname)
	    Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params);
        else
	    Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
    } else {
        /* Pants. I don't think that it should be possible to get here. */
	Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
    }
}
#undef  PERL_ARGS_ASSERT_CROAK_XS_USAGE

#define croak_xs_usage        S_croak_xs_usage

#endif

/* NOTE: the prototype of newXSproto() is different in versions of perls,
 * so we define a portable version of newXSproto()
 */
#ifdef newXS_flags
#define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0)
#else
#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
#endif /* !defined(newXS_flags) */

#if PERL_VERSION_LE(5, 21, 5)
#  define newXS_deffile(a,b) Perl_newXS(aTHX_ a,b,file)
#else
#  define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b)
#endif

#line 348 "Combobox.c"
#pragma message( "*** PACKAGE Win32::GUI::Combobox..." )

XS_EUPXS(XS_Win32__GUI__Combobox_AddString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_AddString)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, string");
    {
	HWND	handle;
	LPCTSTR	string = (LPCTSTR)SvPV_nolen(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 212 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_ADDSTRING, 0, (LPARAM) string);
#line 375 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_DeleteString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_DeleteString)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 227 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_DELETESTRING, index, 0);
#line 408 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_Dir); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_Dir)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "handle, path, flag = DDL_ARCHIVE | DDL_DIRECTORY | DDL_DRIVES | DDL_READWRITE");
    {
	HWND	handle;
	LPCTSTR	path = (LPCTSTR)SvPV_nolen(ST(1))
;
	WPARAM	flag;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

	if (items < 3)
	    flag = DDL_ARCHIVE | DDL_DIRECTORY | DDL_DRIVES | DDL_READWRITE;
	else {
	    flag = (WPARAM)SvUV(ST(2))
;
	}
#line 240 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_DIR, flag, (LPARAM) path);
#line 448 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_FindString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_FindString)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "handle, string, index=-1");
    {
	HWND	handle;
	LPCTSTR	string = (LPCTSTR)SvPV_nolen(ST(1))
;
	long	index;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

	if (items < 3)
	    index = -1;
	else {
	    index = (long)SvIV(ST(2))
;
	}
#line 253 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_FINDSTRING, (WPARAM) index, (LPARAM) string);
#line 488 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_FindStringExact); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_FindStringExact)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "handle, string, index=-1");
    {
	HWND	handle;
	LPCTSTR	string = (LPCTSTR)SvPV_nolen(ST(1))
;
	long	index;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

	if (items < 3)
	    index = -1;
	else {
	    index = (long)SvIV(ST(2))
;
	}
#line 266 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_FINDSTRINGEXACT, (WPARAM) index, (LPARAM) string);
#line 528 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetCount); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetCount)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 280 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETCOUNT, 0, 0);
#line 559 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetCurSel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetCurSel)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 297 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETCURSEL, 0, 0);
#line 590 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetDroppedControlRect); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetDroppedControlRect)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	HWND	handle;
#line 309 "Combobox.xs"
    RECT    myRect;
#line 610 "Combobox.c"

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 311 "Combobox.xs"
    SendMessage(handle, CB_GETDROPPEDCONTROLRECT, 0, (LPARAM) &myRect);
    EXTEND(SP, 4);
    XST_mIV(0, myRect.left);
    XST_mIV(1, myRect.top);
    XST_mIV(2, myRect.right);
    XST_mIV(3, myRect.bottom);
    XSRETURN(4);
#line 629 "Combobox.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetDroppedState); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetDroppedState)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 326 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETDROPPEDSTATE, 0, 0);
#line 658 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetDroppedWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetDroppedWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 338 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETDROPPEDWIDTH, 0, 0);
#line 688 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetEditSel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetEditSel)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	HWND	handle;
#line 349 "Combobox.xs"
    DWORD start;
    DWORD end;
#line 709 "Combobox.c"

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 352 "Combobox.xs"
    SendMessage(handle, CB_GETEDITSEL, (WPARAM) &start, (LPARAM) &end);
    EXTEND(SP, 2);
    XST_mIV(0, (long) start);
    XST_mIV(1, (long) end);
    XSRETURN(2);
#line 726 "Combobox.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetExtendedUI); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetExtendedUI)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 365 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETEXTENDEDUI, 0, 0);
#line 755 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetHorizontalExtent); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetHorizontalExtent)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 376 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETHORIZONTALEXTENT, 0, 0);
#line 785 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetItemHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetItemHeight)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 391 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETITEMHEIGHT, index, 0);
#line 817 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetLBText); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetLBText)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
#line 406 "Combobox.xs"
    STRLEN cbString;
    char *szString;
#line 841 "Combobox.c"

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 409 "Combobox.xs"
    cbString = SendMessage(handle, CB_GETLBTEXTLEN, index, 0);
    if(cbString != LB_ERR) {
        szString = (char *) safemalloc(cbString+1);
        if(SendMessage(handle, CB_GETLBTEXT,
                       index, (LPARAM) (LPCTSTR) szString) != LB_ERR) {
            EXTEND(SP, 1);
            XST_mPV(0, szString);
            safefree(szString);
            XSRETURN(1);
        } else {
            safefree(szString);
            XSRETURN_UNDEF;
        }
    } else {
        XSRETURN_UNDEF;
    }
#line 869 "Combobox.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetLBTextLen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetLBTextLen)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 435 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETLBTEXTLEN, index, 0);
#line 900 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetLocale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetLocale)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 446 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETLOCALE, 0, 0);
#line 930 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_GetTopIndex); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_GetTopIndex)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 457 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_GETTOPINDEX, 0, 0);
#line 960 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_InitStorage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_InitStorage)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "handle, count, size");
    {
	HWND	handle;
	WPARAM	count = (WPARAM)SvUV(ST(1))
;
	WPARAM	size = (WPARAM)SvUV(ST(2))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 470 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_INITSTORAGE, count, (LPARAM) size);
#line 994 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_InsertString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_InsertString)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "handle, string, index=-1");
    {
	HWND	handle;
	LPCTSTR	string = (LPCTSTR)SvPV_nolen(ST(1))
;
	long	index;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

	if (items < 3)
	    index = -1;
	else {
	    index = (long)SvIV(ST(2))
;
	}
#line 487 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_INSERTSTRING, (WPARAM) index, (LPARAM) string);
#line 1035 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_LimitText); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_LimitText)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 499 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_LIMITTEXT, index, 0);
#line 1067 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_ResetContent); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_ResetContent)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 516 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_RESETCONTENT, 0, 0);
#line 1098 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SelectString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SelectString)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "handle, string, index=-1");
    {
	HWND	handle;
	LPCTSTR	string = (LPCTSTR)SvPV_nolen(ST(1))
;
	long	index;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

	if (items < 3)
	    index = -1;
	else {
	    index = (long)SvIV(ST(2))
;
	}
#line 530 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SELECTSTRING, (WPARAM) index, (LPARAM) string);
#line 1138 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetCurSel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetCurSel)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 546 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETCURSEL, index, 0);
#line 1171 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetDroppedWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetDroppedWidth)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 558 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETDROPPEDWIDTH, index, 0);
#line 1203 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetEditSel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetEditSel)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "handle, start, end");
    {
	HWND	handle;
	UINT	start = (UINT)SvUV(ST(1))
;
	UINT	end = (UINT)SvUV(ST(2))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 584 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETEDITSEL, 0, MAKELPARAM(start, end));
#line 1237 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetExtendedUI); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetExtendedUI)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 596 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETEXTENDEDUI, index, 0);
#line 1269 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetHorizontalExtend); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetHorizontalExtend)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 608 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETHORIZONTALEXTENT, index, 0);
#line 1301 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetItemHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetItemHeight)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "handle, wparam, lparam");
    {
	HWND	handle;
	WPARAM	wparam = (WPARAM)SvUV(ST(1))
;
	WPARAM	lparam = (WPARAM)SvUV(ST(2))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 623 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETITEMHEIGHT, wparam, (LPARAM) lparam);
#line 1335 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetLocale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetLocale)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, wparam");
    {
	HWND	handle;
	WPARAM	wparam = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 635 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETLOCALE, wparam, 0);
#line 1367 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_SetTopIndex); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_SetTopIndex)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 647 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SETTOPINDEX, index, 0);
#line 1399 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_ShowDropDown); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_ShowDropDown)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 659 "Combobox.xs"
    RETVAL = SendMessage(handle, CB_SHOWDROPDOWN, index, 0);
#line 1431 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_Add); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_Add)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "handle, ...");
    {
	HWND	handle;
#line 674 "Combobox.xs"
    int i;
#line 1449 "Combobox.c"

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 676 "Combobox.xs"
    for(i = 1; i < items; i++) {
        SendMessage(handle, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) SvPV_nolen(ST(i)));
    }
#line 1464 "Combobox.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Win32__GUI__Combobox_ItemHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_ItemHeight)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 2)
       croak_xs_usage(cv,  "handle, height=-1");
    {
	HWND	handle;
	long	height;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

	if (items < 2)
	    height = -1;
	else {
	    height = (long)SvIV(ST(1))
;
	}
#line 688 "Combobox.xs"
    if(items == 1) {
        RETVAL = SendMessage(handle, LB_GETITEMHEIGHT, 0, 0);
    } else {
        RETVAL = SendMessage(handle, LB_SETITEMHEIGHT, 0, MAKELPARAM(height, 0));
    }
#line 1504 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__Combobox_TopIndex); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__Combobox_TopIndex)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items < 1 || items > 2)
       croak_xs_usage(cv,  "handle, index=-1");
    {
	HWND	handle;
	long	index;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

	if (items < 2)
	    index = -1;
	else {
	    index = (long)SvIV(ST(1))
;
	}
#line 707 "Combobox.xs"
    if(items == 1)
        RETVAL = SendMessage(handle, CB_GETTOPINDEX, 0, 0);
    else
        RETVAL = SendMessage(handle, CB_SETTOPINDEX, (WPARAM) index, 0);
#line 1546 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#pragma message( "*** PACKAGE Win32::GUI::ComboboxEx..." )

XS_EUPXS(XS_Win32__GUI__ComboboxEx_DeleteItem); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_DeleteItem)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, index");
    {
	HWND	handle;
	WPARAM	index = (WPARAM)SvUV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 732 "Combobox.xs"
    RETVAL = SendMessage(handle, CBEM_DELETEITEM, index, 0);
#line 1579 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetComboControl); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetComboControl)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	HWND	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 743 "Combobox.xs"
    RETVAL = (HWND) SendMessage(handle, CBEM_GETCOMBOCONTROL, 0, 0);
#line 1609 "Combobox.c"
	XSprePUSH;
	PUSHi(PTR2IV(RETVAL));
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetEditControl); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetEditControl)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	HWND	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 754 "Combobox.xs"
    RETVAL = (HWND) SendMessage(handle, CBEM_GETEDITCONTROL, 0, 0);
#line 1639 "Combobox.c"
	XSprePUSH;
	PUSHi(PTR2IV(RETVAL));
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetImageList); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetImageList)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	HIMAGELIST	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 765 "Combobox.xs"
    RETVAL = (HIMAGELIST) SendMessage(handle, CBEM_GETIMAGELIST, 0, 0);
#line 1669 "Combobox.c"
	XSprePUSH;
	PUSHi(PTR2IV(RETVAL));
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetExtendedStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetExtendedStyle)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	HWND	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 776 "Combobox.xs"
    RETVAL = (HWND) SendMessage(handle, CBEM_GETEXTENDEDSTYLE, 0, 0);
#line 1699 "Combobox.c"
	XSprePUSH;
	PUSHi(PTR2IV(RETVAL));
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetItem); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetItem)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, item");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	HWND	handle;
	int	item = (int)SvIV(ST(1))
;
#line 788 "Combobox.xs"
    COMBOBOXEXITEM cb_item;
    char pszText[1024];
#line 1722 "Combobox.c"

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 791 "Combobox.xs"
    ZeroMemory(&cb_item, sizeof(COMBOBOXEXITEM));
    cb_item.iItem = item;
    cb_item.mask = CBEIF_DI_SETITEM | CBEIF_IMAGE | CBEIF_INDENT
                 | CBEIF_LPARAM | CBEIF_OVERLAY 
                 | CBEIF_SELECTEDIMAGE | CBEIF_TEXT;
    cb_item.pszText = pszText;
    cb_item.cchTextMax = 1024;
    if(SendMessage(handle, CBEM_GETITEM, 0, (LPARAM) &item) != 0) {
        EXTEND(SP, 14);
        XST_mPV(0, "-text");
        XST_mPV(1, cb_item.pszText);
        XST_mPV(2, "-image");
        XST_mIV(3, cb_item.iImage);
        XST_mPV(4, "-selectedimage");
        XST_mIV(5, cb_item.iSelectedImage);
        XST_mPV(6, "-item");
        XST_mIV(7, cb_item.iItem);
        XST_mPV(8, "-overlay");
        XST_mIV(9, cb_item.iOverlay);
        XST_mPV(10, "-indent");
        XST_mIV(11, cb_item.iIndent);
        XST_mPV(12, "-lparam");
        XST_mIV(13, cb_item.lParam);
        XSRETURN(14);
    } else {
        XSRETURN_UNDEF;
    }
#line 1761 "Combobox.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetUnicodeFormat); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_GetUnicodeFormat)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 826 "Combobox.xs"
    RETVAL = SendMessage(handle, CBEM_GETUNICODEFORMAT, 0, 0);
#line 1790 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_HasEditChanged); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_HasEditChanged)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handle");
    {
	HWND	handle;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 837 "Combobox.xs"
    RETVAL = SendMessage(handle, CBEM_HASEDITCHANGED, 0, 0);
#line 1820 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_InsertItem); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_InsertItem)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "handle, ...");
    {
	HWND	handle;
#line 856 "Combobox.xs"
    COMBOBOXEXITEM Item;
#line 1838 "Combobox.c"
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 858 "Combobox.xs"
    ZeroMemory(&Item, sizeof(COMBOBOXEXITEM));
    Item.iItem = -1;
    ParseComboboxExItemOptions(NOTXSCALL sp, mark, ax, items, 1, &Item);
    RETVAL = SendMessage(handle, CBEM_INSERTITEM, 0, (LPARAM) &Item);
#line 1856 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetExtendedStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetExtendedStyle)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "handle, mask, exstyle");
    {
	HWND	handle;
	DWORD	mask = (DWORD)SvUV(ST(1))
;
	DWORD	exstyle = (DWORD)SvUV(ST(2))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 874 "Combobox.xs"
    RETVAL = SendMessage(handle, CBEM_SETEXTENDEDSTYLE, (WPARAM) mask, (LPARAM) exstyle);
#line 1890 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetImageList); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetImageList)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, himl");
    {
	HWND	handle;
	HIMAGELIST	himl;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;

    if(SvROK(ST(1))) {
        SV** out=hv_fetch((HV*)SvRV(ST(1)), "-handle", 7, 0);
        if(out != NULL)
            himl = INT2PTR(HIMAGELIST,SvIV(*out));
        else
            himl = NULL;
    } else
       himl = INT2PTR(HIMAGELIST,SvIV(ST(1)))
;
#line 886 "Combobox.xs"
    RETVAL = SendMessage(handle, CBEM_SETIMAGELIST, (WPARAM) 0, (LPARAM) himl);
#line 1931 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetItem); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetItem)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "handle, item, ...");
    {
	HWND	handle;
	int	item = (int)SvIV(ST(1))
;
#line 904 "Combobox.xs"
    COMBOBOXEXITEM Item;
#line 1951 "Combobox.c"
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 906 "Combobox.xs"
    ZeroMemory(&Item, sizeof(COMBOBOXEXITEM));
    Item.iItem = item;
    ParseComboboxExItemOptions(NOTXSCALL sp, mark, ax, items, 2, &Item);
    RETVAL = SendMessage(handle, CBEM_SETITEM, 0, (LPARAM) &Item);
#line 1969 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetUnicodeFormat); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Win32__GUI__ComboboxEx_SetUnicodeFormat)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "handle, flag");
    {
	HWND	handle;
	BOOL	flag = (BOOL)SvIV(ST(1))
;
	LRESULT	RETVAL;
	dXSTARG;

    if(SvROK(ST(0))) {
        SV** out=hv_fetch((HV*)SvRV(ST(0)), "-handle", 7, 0);
        if(out != NULL)
            handle = INT2PTR(HWND,SvIV(*out));
        else
            handle = NULL;
    } else
       handle = INT2PTR(HWND,SvIV(ST(0)))
;
#line 921 "Combobox.xs"
    RETVAL = SendMessage(handle, CBEM_SETUNICODEFORMAT, (WPARAM) flag, 0);
#line 2001 "Combobox.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#ifdef __cplusplus
extern "C" {
#endif
XS_EXTERNAL(boot_Win32__GUI__Combobox); /* prototype to pass -Wmissing-prototypes */
XS_EXTERNAL(boot_Win32__GUI__Combobox)
{
#if PERL_VERSION_LE(5, 21, 5)
    dVAR; dXSARGS;
#else
    dVAR; dXSBOOTARGSXSAPIVERCHK;
#endif
#if PERL_VERSION_LE(5, 8, 999) /* PERL_VERSION_LT is 5.33+ */
    char* file = __FILE__;
#else
    const char* file = __FILE__;
#endif

    PERL_UNUSED_VAR(file);

    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
#if PERL_VERSION_LE(5, 21, 5)
    XS_VERSION_BOOTCHECK;
#  ifdef XS_APIVERSION_BOOTCHECK
    XS_APIVERSION_BOOTCHECK;
#  endif
#endif

        newXS_deffile("Win32::GUI::Combobox::AddString", XS_Win32__GUI__Combobox_AddString);
        cv = newXS_deffile("Win32::GUI::Combobox::DeleteString", XS_Win32__GUI__Combobox_DeleteString);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("Win32::GUI::Combobox::RemoveItem", XS_Win32__GUI__Combobox_DeleteString);
        XSANY.any_i32 = 1;
        newXS_deffile("Win32::GUI::Combobox::Dir", XS_Win32__GUI__Combobox_Dir);
        newXS_deffile("Win32::GUI::Combobox::FindString", XS_Win32__GUI__Combobox_FindString);
        newXS_deffile("Win32::GUI::Combobox::FindStringExact", XS_Win32__GUI__Combobox_FindStringExact);
        cv = newXS_deffile("Win32::GUI::Combobox::Count", XS_Win32__GUI__Combobox_GetCount);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("Win32::GUI::Combobox::GetCount", XS_Win32__GUI__Combobox_GetCount);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("Win32::GUI::Combobox::GetCurSel", XS_Win32__GUI__Combobox_GetCurSel);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("Win32::GUI::Combobox::ListIndex", XS_Win32__GUI__Combobox_GetCurSel);
        XSANY.any_i32 = 2;
        cv = newXS_deffile("Win32::GUI::Combobox::SelectedItem", XS_Win32__GUI__Combobox_GetCurSel);
        XSANY.any_i32 = 1;
        newXS_deffile("Win32::GUI::Combobox::GetDroppedControlRect", XS_Win32__GUI__Combobox_GetDroppedControlRect);
        newXS_deffile("Win32::GUI::Combobox::GetDroppedState", XS_Win32__GUI__Combobox_GetDroppedState);
        newXS_deffile("Win32::GUI::Combobox::GetDroppedWidth", XS_Win32__GUI__Combobox_GetDroppedWidth);
        newXS_deffile("Win32::GUI::Combobox::GetEditSel", XS_Win32__GUI__Combobox_GetEditSel);
        newXS_deffile("Win32::GUI::Combobox::GetExtendedUI", XS_Win32__GUI__Combobox_GetExtendedUI);
        newXS_deffile("Win32::GUI::Combobox::GetHorizontalExtent", XS_Win32__GUI__Combobox_GetHorizontalExtent);
        newXS_deffile("Win32::GUI::Combobox::GetItemHeight", XS_Win32__GUI__Combobox_GetItemHeight);
        cv = newXS_deffile("Win32::GUI::Combobox::GetLBText", XS_Win32__GUI__Combobox_GetLBText);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("Win32::GUI::Combobox::GetString", XS_Win32__GUI__Combobox_GetLBText);
        XSANY.any_i32 = 1;
        newXS_deffile("Win32::GUI::Combobox::GetLBTextLen", XS_Win32__GUI__Combobox_GetLBTextLen);
        newXS_deffile("Win32::GUI::Combobox::GetLocale", XS_Win32__GUI__Combobox_GetLocale);
        newXS_deffile("Win32::GUI::Combobox::GetTopIndex", XS_Win32__GUI__Combobox_GetTopIndex);
        newXS_deffile("Win32::GUI::Combobox::InitStorage", XS_Win32__GUI__Combobox_InitStorage);
        cv = newXS_deffile("Win32::GUI::Combobox::InsertItem", XS_Win32__GUI__Combobox_InsertString);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("Win32::GUI::Combobox::InsertString", XS_Win32__GUI__Combobox_InsertString);
        XSANY.any_i32 = 0;
        newXS_deffile("Win32::GUI::Combobox::LimitText", XS_Win32__GUI__Combobox_LimitText);
        cv = newXS_deffile("Win32::GUI::Combobox::Clear", XS_Win32__GUI__Combobox_ResetContent);
        XSANY.any_i32 = 2;
        cv = newXS_deffile("Win32::GUI::Combobox::Reset", XS_Win32__GUI__Combobox_ResetContent);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("Win32::GUI::Combobox::ResetContent", XS_Win32__GUI__Combobox_ResetContent);
        XSANY.any_i32 = 0;
        newXS_deffile("Win32::GUI::Combobox::SelectString", XS_Win32__GUI__Combobox_SelectString);
        cv = newXS_deffile("Win32::GUI::Combobox::Select", XS_Win32__GUI__Combobox_SetCurSel);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("Win32::GUI::Combobox::SetCurSel", XS_Win32__GUI__Combobox_SetCurSel);
        XSANY.any_i32 = 0;
        newXS_deffile("Win32::GUI::Combobox::SetDroppedWidth", XS_Win32__GUI__Combobox_SetDroppedWidth);
        newXS_deffile("Win32::GUI::Combobox::SetEditSel", XS_Win32__GUI__Combobox_SetEditSel);
        newXS_deffile("Win32::GUI::Combobox::SetExtendedUI", XS_Win32__GUI__Combobox_SetExtendedUI);
        newXS_deffile("Win32::GUI::Combobox::SetHorizontalExtend", XS_Win32__GUI__Combobox_SetHorizontalExtend);
        newXS_deffile("Win32::GUI::Combobox::SetItemHeight", XS_Win32__GUI__Combobox_SetItemHeight);
        newXS_deffile("Win32::GUI::Combobox::SetLocale", XS_Win32__GUI__Combobox_SetLocale);
        newXS_deffile("Win32::GUI::Combobox::SetTopIndex", XS_Win32__GUI__Combobox_SetTopIndex);
        newXS_deffile("Win32::GUI::Combobox::ShowDropDown", XS_Win32__GUI__Combobox_ShowDropDown);
        newXS_deffile("Win32::GUI::Combobox::Add", XS_Win32__GUI__Combobox_Add);
        newXS_deffile("Win32::GUI::Combobox::ItemHeight", XS_Win32__GUI__Combobox_ItemHeight);
        cv = newXS_deffile("Win32::GUI::Combobox::FirstVisibleItem", XS_Win32__GUI__Combobox_TopIndex);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("Win32::GUI::Combobox::TopIndex", XS_Win32__GUI__Combobox_TopIndex);
        XSANY.any_i32 = 0;
        newXS_deffile("Win32::GUI::ComboboxEx::DeleteItem", XS_Win32__GUI__ComboboxEx_DeleteItem);
        newXS_deffile("Win32::GUI::ComboboxEx::GetComboControl", XS_Win32__GUI__ComboboxEx_GetComboControl);
        newXS_deffile("Win32::GUI::ComboboxEx::GetEditControl", XS_Win32__GUI__ComboboxEx_GetEditControl);
        newXS_deffile("Win32::GUI::ComboboxEx::GetImageList", XS_Win32__GUI__ComboboxEx_GetImageList);
        newXS_deffile("Win32::GUI::ComboboxEx::GetExtendedStyle", XS_Win32__GUI__ComboboxEx_GetExtendedStyle);
        newXS_deffile("Win32::GUI::ComboboxEx::GetItem", XS_Win32__GUI__ComboboxEx_GetItem);
        newXS_deffile("Win32::GUI::ComboboxEx::GetUnicodeFormat", XS_Win32__GUI__ComboboxEx_GetUnicodeFormat);
        newXS_deffile("Win32::GUI::ComboboxEx::HasEditChanged", XS_Win32__GUI__ComboboxEx_HasEditChanged);
        newXS_deffile("Win32::GUI::ComboboxEx::InsertItem", XS_Win32__GUI__ComboboxEx_InsertItem);
        newXS_deffile("Win32::GUI::ComboboxEx::SetExtendedStyle", XS_Win32__GUI__ComboboxEx_SetExtendedStyle);
        newXS_deffile("Win32::GUI::ComboboxEx::SetImageList", XS_Win32__GUI__ComboboxEx_SetImageList);
        newXS_deffile("Win32::GUI::ComboboxEx::SetItem", XS_Win32__GUI__ComboboxEx_SetItem);
        newXS_deffile("Win32::GUI::ComboboxEx::SetUnicodeFormat", XS_Win32__GUI__ComboboxEx_SetUnicodeFormat);
#if PERL_VERSION_LE(5, 21, 5)
#  if PERL_VERSION_GE(5, 9, 0)
    if (PL_unitcheckav)
        call_list(PL_scopestack_ix, PL_unitcheckav);
#  endif
    XSRETURN_YES;
#else
    Perl_xs_boot_epilog(aTHX_ ax);
#endif
}

#ifdef __cplusplus
}
#endif
