#define PERL_NO_GET_CONTEXT
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

#include "ppport.h"

#include <windows.h>
#include <shellapi.h>

MODULE = Win32::Unicode::Native  PACKAGE = Win32::Unicode::Native

PROTOTYPES: DISABLE

void
parse_argv()
    CODE:
        int argc;
        int i;
        LPWSTR *argv = CommandLineToArgvW(GetCommandLineW(), &argc);
        AV* av    = newAV();
        SV* avref = sv_2mortal(newRV_noinc((SV *)av));

        for (i = 0; i < argc; i++) {
            av_push(av, newSVpvn((char *)argv[i], wcslen(argv[i]) * sizeof(WCHAR)));
        }
        LocalFree(argv);

        ST(0) = avref;
        XSRETURN(1);