Win32-Mock
view release on metacpan or search on metacpan
lib/Win32/Mock/Win32.pm view on Meta::CPAN
sub GetANSIPathName {
return $_[0]
}
#
# GetArchName()
# -----------
sub GetArchName {
return $Config{archname}
}
#
# GetChipName()
# -----------
sub GetChipName {
require POSIX;
return "" . (POSIX::uname())[4]
}
#
# GetCwd()
# ------
sub GetCwd {
require Cwd;
return Cwd::cwd()
}
#
# GetCurrentThreadId()
# ------------------
sub GetCurrentThreadId {
return -$$
}
#
# GetFileVersion()
# --------------
sub GetFileVersion {
if ($_[0] eq $^X) {
my @version = map {int} $] =~ /^([0-9]+)\.([0-9]{3})([0-9]+)$/;
push @version, Win32::BuildNumber();
return wantarray ? @version : join ".", @version
}
return wantarray ? (0,0,0,0) : "0.0.0.0"
}
#
# GetFolderPath()
# -------------
sub GetFolderPath {
my ($folder, $create) = @_;
eval "use File::HomeDir";
my $path = '';
my $home = eval { File::HomeDir->my_home } || (getpwuid($>))[7];
# TODO CSIDL_DESKTOP
# TODO CSIDL_PROGRAMS
$folder == &CSIDL_PERSONAL
and $path = eval { File::HomeDir->my_documents } || catdir($home, "Documents");
# TODO CSIDL_FAVORITES
# TODO CSIDL_STARTUP
# TODO CSIDL_RECENT
# TODO CSIDL_SENDTO
# TODO CSIDL_STARTMENU
$folder == &CSIDL_MYMUSIC
and $path = eval { File::HomeDir->my_music } || catdir($home, "Music");
$folder == &CSIDL_MYVIDEO
and $path = eval { File::HomeDir->my_videos } || catdir($home, "Movies");
$folder == &CSIDL_DESKTOPDIRECTORY
and $path = eval { File::HomeDir->my_desktop } || catdir($home, "Desktop");
# TODO CSIDL_NETHOOD
# TODO CSIDL_FONTS
# TODO CSIDL_TEMPLATES
# TODO CSIDL_COMMON_STARTMENU
# TODO CSIDL_COMMON_PROGRAMS
# TODO CSIDL_COMMON_STARTUP
# TODO CSIDL_COMMON_DESKTOPDIRECTORY
# TODO CSIDL_APPDATA
# TODO CSIDL_PRINTHOOD
# TODO CSIDL_LOCAL_APPDATA
# TODO CSIDL_COMMON_FAVORITES
# TODO CSIDL_INTERNET_CACHE
# TODO CSIDL_COOKIES
# TODO CSIDL_HISTORY
# TODO CSIDL_COMMON_APPDATA
$folder == &CSIDL_WINDOWS and $path = $ENV{WINDIR};
$folder == &CSIDL_SYSTEM and $path = $ENV{SYSTEMROOT};
# TODO CSIDL_PROGRAM_FILES
$folder == &CSIDL_MYPICTURES
and $path = eval { File::HomeDir->my_pictures } || catdir($home, "Pictures");
$folder == &CSIDL_PROFILE and $path = $home;
# TODO CSIDL_PROGRAM_FILES_COMMON
# TODO CSIDL_COMMON_TEMPLATES
# TODO CSIDL_COMMON_DOCUMENTS
# TODO CSIDL_COMMON_ADMINTOOLS
# TODO CSIDL_ADMINTOOLS
# TODO CSIDL_COMMON_MUSIC
# TODO CSIDL_COMMON_PICTURES
# TODO CSIDL_COMMON_VIDEO
# TODO CSIDL_RESOURCES
# TODO CSIDL_RESOURCES_LOCALIZED
# TODO CSIDL_CDBURN_AREA
lib/Win32/Mock/Win32.pm view on Meta::CPAN
if (eval "use Data::GUID; 1") {
$guid = "{" . eval { Data::GUID->new } ."}"
}
elsif (eval "use Win32::Guidgen; 1") {
$guid = eval { Win32::Guidgen::create() }
}
else {
$guid = sprintf "{%08X-%04X-%04X-%04X-%06X%06X}" =>
map { rand( hex("F"x$_) ) } 8, 4, 4, 4, 6,6
}
return $guid
}
#
# InitiateSystemShutdown()
# ----------------------
sub InitiateSystemShutdown {
# XXX: nahhh...
}
#
# IsAdminUser()
# -----------
sub IsAdminUser {
return $< == 0 ? 1 : 0
}
#
# IsWinNT()
# -------
sub IsWinNT {
return 1
}
#
# IsWin95()
# -------
sub IsWin95 {
return 0
}
#
# LoadLibrary()
# -----------
sub LoadLibrary {
DynaLoader::dl_load_file($_[0])
}
#
# LoginName()
# ---------
sub LoginName {
return "" . (getpwuid($<))[0]
}
#
# LookupAccountName()
# -----------------
sub LookupAccountName {
my ($system, $account, $domain, $sid, $sidtype) = @_;
# XXX: not implement, don't know what this is
return
}
#
# LookupAccountSID()
# ----------------
sub LookupAccountSID {
my ($system, $account, $domain, $sid, $sidtype) = @_;
# XXX: not implement, don't know what this is
return
}
#
# MsgBox()
# ------
sub MsgBox {
my ($message, $flags, $title) = @_;
$title ||= "Perl";
warn "[!!] $title\: $message\n"; # XXX: maybe we could use Gtk ot Wx?
return 0
}
#
# NodeName()
# --------
sub NodeName {
require POSIX;
return "" . (POSIX::uname())[1]
}
#
# OutputDebugString()
# -----------------
sub OutputDebugString {
print STDERR "[debug] ", @_, $/
}
#
# RegisterServer()
# --------------
sub RegisterServer {
# XXX: not implemented
return 0
}
( run in 3.101 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )