in reply to Re^3: "Type mismatch" Error While Using Win32:OLE for MS Outlook
in thread "Type mismatch" Error While Using Win32:OLE for MS Outlook

Yes OutLook is installed, its "Microsoft Office Professional Plus 2013". Please check output of below code it returned outlook object.

#! D:\Straberry\perl\bin\perl -w use strict; use Win32::OLE qw/in/; use Win32::OLE::Const 'Microsoft Outlook'; #use Win32::OLE::Variant; my $OL = Win32::OLE->GetActiveObject('Outlook.Application') || Win32:: +OLE->new('Outlook.Application') or die "$!\n";; my $NameSpace = $OL->GetNameSpace("MAPI"); my $Folder = $NameSpace->GetDefaultFolder("olFolder"); #print ref($Folder->{Items}) . "\n"; #foreach my $subfolder ( in $Folder->Folders) { # printf "%s\n", $subfolder->{Name}; #} print "OLE object's properties:\n"; foreach my $Key (sort keys %$OL) { my $Value; eval {$Value = $OL->{$Key} }; $Value = "***Exception***" if $@; $Value = "<undef>" unless defined $Value; $Value = '['.Win32::OLE->QueryObjectType($Value).']' if UNIVERSAL::isa($Value,'Win32::OLE'); $Value = '('.join(',',@$Value).')' if ref $Value eq 'ARRAY'; printf "%s %s %s\n", $Key, '.' x (40-length($Key)), $Value; }

Output of Above code:

D:\Perl_Project\OutLook>test1.pl
No type library matching "Microsoft Outlook" found at D:\Perl_Project\OutLook\test1.pl line 4.
Win32::OLE(0.1712): GetOleTypeLibObject() Not a Win32::OLE::TypeLib object at D:/Straberry/perl/vendor/lib/Win32/OLE/Const.pm line 49.
Win32::OLE(0.1712) error 0x80020005: "Type mismatch" in METHOD/PROPERTYGET "GetDefaultFolder" argument 1 at D:\Perl_Project\OutLook\test1.pl line 9.
OLE object's properties:
Application ............................. _Application
Assistance .............................. IAssistance
COMAddIns ............................... COMAddIns
Class ................................... 0
DefaultProfileName ...................... Outlook
Explorers ............................... _Explorers
Inspectors .............................. _Inspectors
IsTrusted ............................... 0
LanguageSettings ........................ LanguageSettings
Name .................................... Outlook
Parent .................................. <undef>
PickerDialog ............................ PickerDialog
ProductCode ............................. {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Reminders ............................... _Reminders
Session ................................. _NameSpace
TimeZones ............................... _TimeZones
Version ................................. 15.0.0.4569
D:\Perl_Project\OutLook>

Replies are listed 'Best First'.
Re^5: "Type mismatch" Error While Using Win32:OLE for MS Outlook
by Corion (Patriarch) on Jul 03, 2015 at 12:56 UTC

    The first warning message means that no Outlook typelibrary is installed on your machine. This means that all Outlook constants like olFolder will not work. They are numerical values, so using them as strings make no sense. You can try and use Google to find the numerical value of each constant and then declare the constants yourself:

    use constant 'olFolder' => 2; ...