Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
7172f697
Kaydet (Commit)
7172f697
authored
Agu 11, 2010
tarafından
Joerg Skottke [jsk]
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Sade Fark
jl154: Local merge
üst
15d4d3e0
e179ae41
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
137 additions
and
212 deletions
+137
-212
admin.pl
setup_native/scripts/admin.pl
+90
-30
package.txt
setup_native/source/packinfo/package.txt
+2
-0
packinfo_office.txt
setup_native/source/packinfo/packinfo_office.txt
+0
-0
shellscripts_extensions.txt
setup_native/source/packinfo/shellscripts_extensions.txt
+0
-0
exports.dxp
...tive/source/win32/customactions/languagepacks/exports.dxp
+2
-0
makefile.mk
...tive/source/win32/customactions/languagepacks/makefile.mk
+1
-0
exports.dxp
setup_native/source/win32/customactions/patch/exports.dxp
+2
-0
makefile.mk
setup_native/source/win32/customactions/patch/makefile.mk
+1
-0
exports.dxp
...ve/source/win32/customactions/shellextensions/exports.dxp
+2
-0
makefile.mk
...ve/source/win32/customactions/shellextensions/makefile.mk
+1
-0
registerextensions.cxx
...in32/customactions/shellextensions/registerextensions.cxx
+36
-182
No files found.
setup_native/scripts/admin.pl
Dosyayı görüntüle @
7172f697
...
...
@@ -298,6 +298,69 @@ sub get_sourcepath_from_filename_and_includepath
return
\
$onefile
;
}
##############################################################
# Removing all empty directories below a specified directory
##############################################################
sub
remove_empty_dirs_in_folder
{
my
(
$dir
,
$firstrun
)
=
@_
;
if
(
$firstrun
)
{
print
"Removing superfluous directories\n"
;
}
my
@content
=
();
$dir
=~
s/\Q$separator\E\s*$//
;
if
(
-
d
$dir
)
{
opendir
(
DIR
,
$dir
);
@content
=
readdir
(
DIR
);
closedir
(
DIR
);
my
$oneitem
;
foreach
$oneitem
(
@content
)
{
if
((
!
(
$oneitem
eq
"."
))
&&
(
!
(
$oneitem
eq
".."
)))
{
my
$item
=
$dir
.
$separator
.
$oneitem
;
if
(
-
d
$item
)
# recursive
{
remove_empty_dirs_in_folder
(
$item
,
0
);
}
}
}
# try to remove empty directory
my
$returnvalue
=
rmdir
$dir
;
# if ( $returnvalue ) { print "Successfully removed empty dir $dir\n"; }
}
}
####################################################
# Detecting the directory with extensions
####################################################
sub
get_extensions_dir
{
my
(
$unopkgfile
)
=
@_
;
my
$localbranddir
=
$unopkgfile
;
get_path_from_fullqualifiedname
(
\
$localbranddir
);
# "program" dir in brand layer
get_path_from_fullqualifiedname
(
\
$localbranddir
);
# root dir in brand layer
$localbranddir
=~
s/\Q$separator\E\s*$//
;
my
$extensiondir
=
$localbranddir
.
$separator
.
"share"
.
$separator
.
"extensions"
;
my
$preregdir
=
$localbranddir
.
$separator
.
"share"
.
$separator
.
"prereg"
.
$separator
.
"bundled"
;
return
(
$extensiondir
,
$preregdir
);
}
########################################################
# Finding all files with a specified file extension
# in a specified directory.
...
...
@@ -880,7 +943,6 @@ sub copy_files_into_directory_structure
print
"Copying files\n"
;
my
$unopkgfile
=
""
;
my
@extensions
=
();
for
(
my
$i
=
1
;
$i
<=
$maxsequence
;
$i
++
)
{
...
...
@@ -923,8 +985,6 @@ sub copy_files_into_directory_structure
if
(
!
$copyreturn
)
{
exit_program
(
"ERROR: Could not copy $source to $dest\n"
);
}
# Collecting all extensions
if
(
$destfile
=~
/\.oxt\s*$/
)
{
push
(
@extensions
,
$destfile
);
}
# Searching unopkg.exe
if
(
$destfile
=~
/unopkg\.exe\s*$/
)
{
$unopkgfile
=
$destfile
;
}
# if (( $^O =~ /cygwin/i ) && ( $destfile =~ /\.exe\s*$/ )) { change_privileges($destfile, "775"); }
...
...
@@ -935,7 +995,7 @@ sub copy_files_into_directory_structure
# }
}
return
(
$unopkgfile
,
\
@extensions
);
return
(
$unopkgfile
);
}
######################################################
...
...
@@ -1026,12 +1086,19 @@ sub get_temppath
}
####################################################################################
# Registering
one extension
# Registering
extensions
####################################################################################
sub
register_
one_extension
sub
register_
extensions_sync
{
my
(
$unopkgfile
,
$extension
,
$temppath
)
=
@_
;
my
(
$unopkgfile
,
$localtemppath
,
$preregdir
)
=
@_
;
if
(
$preregdir
eq
""
)
{
my
$logtext
=
"ERROR: Failed to determine \"prereg\" folder for extension registration! Please check your installation set."
;
print
$logtext
.
"\n"
;
exit_program
(
$logtext
);
}
my
$from
=
cwd
();
...
...
@@ -1051,22 +1118,17 @@ sub register_one_extension
$path_displayed
=
1
;
}
$temppath
=~
s/\\/\//g
;
$temppath
=
"/"
.
$temppath
;
# Converting path of $extension for cygwin
my
$localextension
=
$extension
;
if
(
$^O
=~
/cygwin/i
)
{
$localextension
=
qx{cygpath -w "$extension"}
;
$localextension
=~
s/\\/\\\\/g
;
}
$localtemppath
=~
s/\\/\//g
;
if
(
$^O
=~
/cygwin/i
)
{
$executable
=
"./"
.
$executable
;
$preregdir
=
qx{cygpath -m "$preregdir"}
;
chomp
(
$preregdir
);
}
my
$systemcall
=
$executable
.
" add --shared --verbose --suppress-license "
.
"\""
.
$localextension
.
"\""
.
" -env:UserInstallation=file://"
.
$temppath
.
" 2\>\&1 |"
;
$preregdir
=~
s/\/\s*$//g
;
my
$systemcall
=
$executable
.
" sync --verbose -env:BUNDLED_EXTENSIONS_USER=\"file:///"
.
$preregdir
.
"\""
.
" -env:UserInstallation=file:///"
.
$localtemppath
.
" 2\>\&1 |"
;
print
"... $systemcall\n"
;
...
...
@@ -1094,10 +1156,8 @@ sub register_one_extension
sub
register_extensions
{
my
(
$unopkgfile
,
$
extensions
,
$temppath
)
=
@_
;
my
(
$unopkgfile
,
$
temppath
,
$preregdir
)
=
@_
;
if
(
$#
{
$extensions
}
>
-
1
)
{
print
"Registering extensions:\n"
;
if
((
!
-
f
$unopkgfile
)
||
(
$unopkgfile
eq
""
))
...
...
@@ -1106,14 +1166,10 @@ sub register_extensions
}
else
{
foreach
$extension
(
@
{
$extensions
}
)
{
register_one_extension
(
$unopkgfile
,
$extension
,
$temppath
);
}
remove_complete_directory
(
$temppath
,
1
)
}
}
else
{
print
"No extensions to register.\n"
;
register_extensions_sync
(
$unopkgfile
,
$temppath
,
$preregdir
);
remove_complete_directory
(
$temppath
,
1
);
}
}
####################################################################################
...
...
@@ -1357,7 +1413,7 @@ my ( $filehash, $fileorder, $maxsequence ) = analyze_file_file($filecontent);
my
$fullpathhash
=
create_directory_structure
(
$dirhash
,
$targetdir
);
# Copying files
my
(
$unopkgfile
,
$extensions
)
=
copy_files_into_directory_structure
(
$fileorder
,
$filehash
,
$componenthash
,
$fullpathhash
,
$maxsequence
,
$unpackdir
,
$installdir
,
$dirhash
);
my
(
$unopkgfile
)
=
copy_files_into_directory_structure
(
$fileorder
,
$filehash
,
$componenthash
,
$fullpathhash
,
$maxsequence
,
$unpackdir
,
$installdir
,
$dirhash
);
if
(
$^O
=~
/cygwin/i
)
{
change_privileges_full
(
$targetdir
);
}
my
$msidatabase
=
$targetdir
.
$separator
.
$databasefilename
;
...
...
@@ -1369,10 +1425,14 @@ $filename = $helperdir . $separator . "CustomAction.idt";
$filecontent
=
read_file
(
$filename
);
my
$register_extensions_exists
=
analyze_customaction_file
(
$filecontent
);
# Removing empty dirs in extension folder
my
(
$extensionfolder
,
$preregdir
)
=
get_extensions_dir
(
$unopkgfile
);
if
(
-
d
$extensionfolder
)
{
remove_empty_dirs_in_folder
(
$extensionfolder
,
1
);
}
if
(
$register_extensions_exists
)
{
# Registering extensions
register_extensions
(
$unopkgfile
,
$
extensions
,
$temppath
);
register_extensions
(
$unopkgfile
,
$
temppath
,
$preregdir
);
}
# Saving info in Summary Information Stream of msi database (required for following patches)
...
...
setup_native/source/packinfo/package.txt
0 → 100644
Dosyayı görüntüle @
7172f697
DO NOT DELETE THIS FILE
\ No newline at end of file
setup_native/source/packinfo/packinfo_office.txt
Dosyayı görüntüle @
7172f697
This diff is collapsed.
Click to expand it.
setup_native/source/packinfo/shellscripts_extensions.txt
Dosyayı görüntüle @
7172f697
This diff is collapsed.
Click to expand it.
setup_native/source/win32/customactions/languagepacks/exports.dxp
Dosyayı görüntüle @
7172f697
...
...
@@ -2,3 +2,5 @@ SetProductInstallationPath
RegisterLanguagePack
GetUserInstallMode
IsOfficeRunning
RegisterExtensions
setup_native/source/win32/customactions/languagepacks/makefile.mk
Dosyayı görüntüle @
7172f697
...
...
@@ -77,6 +77,7 @@ STDSHL+= \
#SHL1LIBS = $(SLB)$/$(TARGET).lib
SHL1OBJS
=
$(SLOFILES)
\
$(SLO)$/
registerextensions.obj
\
$(SLO)$/
seterror.obj
SHL1TARGET
=
$(TARGET)
...
...
setup_native/source/win32/customactions/patch/exports.dxp
Dosyayı görüntüle @
7172f697
...
...
@@ -7,3 +7,5 @@ IsOfficeRunning
SetFeatureState
SetNewFeatureState
ShowOnlineUpdateDialog
RegisterExtensions
RemoveExtensions
setup_native/source/win32/customactions/patch/makefile.mk
Dosyayı görüntüle @
7172f697
...
...
@@ -76,6 +76,7 @@ SHL1OBJS = $(SLOFILES) \
$(SLO)$/
shutdown_quickstart.obj
\
$(SLO)$/
quickstarter.obj
\
$(SLO)$/
upgrade.obj
\
$(SLO)$/
registerextensions.obj
\
$(SLO)$/
seterror.obj
SHL1TARGET
=
$(TARGET)
...
...
setup_native/source/win32/customactions/shellextensions/exports.dxp
Dosyayı görüntüle @
7172f697
...
...
@@ -7,6 +7,8 @@ RebuildShellIconCache
ExecutePostUninstallScript
CompleteInstallPath
MigrateInstallPath
RegisterExtensions
RemoveExtensions
CheckInstallDirectory
SetAdminInstallProperty
CreateLayerLinks
...
...
setup_native/source/win32/customactions/shellextensions/makefile.mk
Dosyayı görüntüle @
7172f697
...
...
@@ -63,6 +63,7 @@ SLOFILES = \
$(SLO)$/
setadmininstall.obj
\
$(SLO)$/
layerlinks.obj
\
$(SLO)$/
dotnetcheck.obj
\
$(SLO)$/
registerextensions.obj
\
$(SLO)$/
copyeditiondata.obj
\
$(SLO)$/
vistaspecial.obj
\
$(SLO)$/
checkrunningoffice.obj
\
...
...
setup_native/source/win32/customactions/shellextensions/registerextensions.cxx
Dosyayı görüntüle @
7172f697
...
...
@@ -319,203 +319,57 @@ extern "C" UINT __stdcall RegisterExtensions(MSIHANDLE handle)
{
std
::
_tstring
sInstDir
=
GetMsiProperty
(
handle
,
TEXT
(
"INSTALLLOCATION"
)
);
std
::
_tstring
sUnoPkgFile
=
sInstDir
+
TEXT
(
"program
\\
unopkg.exe"
);
std
::
_tstring
sShareInstallDir
=
sInstDir
+
TEXT
(
"share
\\
extension
\\
install
\\
"
);
std
::
_tstring
sPattern
=
sShareInstallDir
+
TEXT
(
"*.oxt"
);
std
::
_tstring
mystr
;
WIN32_FIND_DATA
aFindFileData
;
mystr
=
"unopkg file: "
+
sUnoPkgFile
;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
mystr
=
"oxt file directory: "
+
sShareInstallDir
;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// Find unopkg.exe
HANDLE
hFindUnopkg
=
FindFirstFile
(
sUnoPkgFile
.
c_str
(),
&
aFindFileData
);
if
(
hFindUnopkg
!=
INVALID_HANDLE_VALUE
)
{
// unopkg.exe exists in program directory
// Finding all oxt files in sShareInstallDir
HANDLE
hFindOxt
=
FindFirstFile
(
sPattern
.
c_str
(),
&
aFindFileData
);
if
(
hFindOxt
!=
INVALID_HANDLE_VALUE
)
{
bool
fNextFile
=
false
;
do
{
const
std
::
_tstring
sTempFolder
(
createTempFolder
());
std
::
_tstring
sOxtFile
=
sShareInstallDir
+
aFindFileData
.
cFileName
;
std
::
_tstring
sCommandPart1
=
sUnoPkgFile
+
" add --shared --suppress-license --bundled "
+
"
\"
"
+
sOxtFile
+
"
\"
"
;
std
::
_tstring
sCommand
=
sCommandPart1
+
TEXT
(
" -env:UNO_JAVA_JFW_INSTALL_DATA=$OOO_BASE_DIR/share/config/javasettingsunopkginstall.xml"
)
+
TEXT
(
" -env:UserInstallation="
)
+
sTempFolder
;
mystr
=
"Command: "
+
sCommand
;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
DWORD
exitCode
=
0
;
bool
fSuccess
=
ExecuteCommand
(
sCommand
.
c_str
(),
&
exitCode
);
// unopkg in OOo 2.2.1 and early had a bug that it failed when receiving
// a bootstrap parameter (-env:...) then it exited with a value != 0.
if
(
fSuccess
&&
exitCode
!=
0
)
{
std
::
_tstring
sCommand
=
sCommandPart1
;
mystr
=
"Command: "
+
sCommand
;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
fSuccess
=
ExecuteCommand
(
sCommand
.
c_str
(),
&
exitCode
);
}
deleteTempFolder
(
sTempFolder
);
// if ( fSuccess )
// {
// mystr = "Executed successfully!";
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// }
// else
// {
// mystr = "An error occured during execution!";
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// }
fNextFile
=
FindNextFile
(
hFindOxt
,
&
aFindFileData
);
}
while
(
fNextFile
);
FindClose
(
hFindOxt
);
}
}
// else
// {
// mystr = "Error: Did not find " + sUnoPkgFile;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// }
return
ERROR_SUCCESS
;
}
extern
"C"
UINT
__stdcall
DeregisterExtensions
(
MSIHANDLE
handle
)
{
std
::
_tstring
mystr
;
// Finding the product with the help of the propery FINDPRODUCT,
// that contains a Windows Registry key, that points to the install location.
TCHAR
szValue
[
8192
];
DWORD
nValueSize
=
sizeof
(
szValue
);
HKEY
hKey
;
std
::
_tstring
sInstDir
;
std
::
_tstring
sProductKey
=
GetMsiProperty
(
handle
,
TEXT
(
"FINDPRODUCT"
)
);
// MessageBox( NULL, sProductKey.c_str(), "Titel", MB_OK );
if
(
ERROR_SUCCESS
==
RegOpenKey
(
HKEY_CURRENT_USER
,
sProductKey
.
c_str
(),
&
hKey
)
)
{
if
(
ERROR_SUCCESS
==
RegQueryValueEx
(
hKey
,
TEXT
(
"INSTALLLOCATION"
),
NULL
,
NULL
,
(
LPBYTE
)
szValue
,
&
nValueSize
)
)
{
sInstDir
=
szValue
;
}
RegCloseKey
(
hKey
);
}
else
if
(
ERROR_SUCCESS
==
RegOpenKey
(
HKEY_LOCAL_MACHINE
,
sProductKey
.
c_str
(),
&
hKey
)
)
{
if
(
ERROR_SUCCESS
==
RegQueryValueEx
(
hKey
,
TEXT
(
"INSTALLLOCATION"
),
NULL
,
NULL
,
(
LPBYTE
)
szValue
,
&
nValueSize
)
)
{
sInstDir
=
szValue
;
}
RegCloseKey
(
hKey
);
}
else
{
return
ERROR_SUCCESS
;
}
// MessageBox( NULL, sInstDir.c_str(), "install location", MB_OK );
// Searching for the unopkg.exe
std
::
_tstring
sUnoPkgFile
=
sInstDir
+
TEXT
(
"program
\\
unopkg.exe"
);
std
::
_tstring
sShareInstallDir
=
sInstDir
+
TEXT
(
"share
\\
extension
\\
install
\\
"
);
std
::
_tstring
sPattern
=
sShareInstallDir
+
TEXT
(
"*.oxt"
);
WIN32_FIND_DATA
aFindFileData
;
//MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// Find unopkg.exe
HANDLE
hFindUnopkg
=
FindFirstFile
(
sUnoPkgFile
.
c_str
(),
&
aFindFileData
);
if
(
hFindUnopkg
!=
INVALID_HANDLE_VALUE
)
{
// unopkg.exe exists in program directory
// Finding all oxt files in sShareInstallDir
HANDLE
hFindOxt
=
FindFirstFile
(
sPattern
.
c_str
(),
&
aFindFileData
);
if
(
hFindOxt
!=
INVALID_HANDLE_VALUE
)
{
bool
fNextFile
=
false
;
do
{
const
std
::
_tstring
sTempFolder
(
createTempFolder
());
// When removing extensions, only the oxt file name is required, without path
// Therefore no quoting is required
// std::_tstring sOxtFile = sShareInstallDir + aFindFileData.cFileName;
std
::
_tstring
sOxtFile
=
aFindFileData
.
cFileName
;
std
::
_tstring
sCommandPart1
=
sUnoPkgFile
+
" remove --shared --bundled "
+
"
\"
"
+
sOxtFile
+
"
\"
"
;
std
::
_tstring
sCommandPart1
=
sUnoPkgFile
+
" sync"
;
std
::
_tstring
sCommand
=
sCommandPart1
+
TEXT
(
" -env:BUNDLED_EXTENSIONS_USER=$BRAND_BASE_DIR/share/prereg/bundled"
)
+
TEXT
(
" -env:UNO_JAVA_JFW_INSTALL_DATA=$OOO_BASE_DIR/share/config/javasettingsunopkginstall.xml"
)
+
TEXT
(
" -env:UserInstallation="
)
+
sTempFolder
;
mystr
=
"Command: "
+
sCommand
;
//MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
DWORD
exitCode
=
0
;
bool
fSuccess
=
ExecuteCommand
(
sCommand
.
c_str
(),
&
exitCode
);
// unopkg in OOo 2.2.1 and early had a bug that it failed when receiving
// a bootstrap parameter (-env:...) then it exited with a value != 0.
if
(
fSuccess
&&
exitCode
!=
0
)
{
std
::
_tstring
sCommand
=
sCommandPart1
;
mystr
=
"Command: "
+
sCommand
;
//MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
fSuccess
=
ExecuteCommand
(
sCommand
.
c_str
(),
&
exitCode
);
}
deleteTempFolder
(
sTempFolder
);
if
(
fSuccess
)
{
mystr
=
"Executed successfully!"
;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
}
else
{
mystr
=
"An error occured during execution!"
;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
}
fNextFile
=
FindNextFile
(
hFindOxt
,
&
aFindFileData
);
}
while
(
fNextFile
);
FindClose
(
hFindOxt
);
}
}
// else
// {
// mystr = "Not found: " + sUnoPkgFile;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// }
// if ( fSuccess )
// {
// mystr = "Executed successfully!";
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// }
// else
// {
// mystr = "An error occured during execution!";
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// }
FindClose
(
hFindUnopkg
);
}
// else
// {
// mystr = "Error: Did not find " + sUnoPkgFile;
// MessageBox(NULL, mystr.c_str(), "Command", MB_OK);
// }
return
ERROR_SUCCESS
;
}
extern
"C"
UINT
__stdcall
RemoveExtensions
(
MSIHANDLE
handle
)
{
std
::
_tstring
mystr
;
...
...
@@ -529,7 +383,7 @@ extern "C" UINT __stdcall RemoveExtensions(MSIHANDLE handle)
std
::
_tstring
sInstDir
;
std
::
_tstring
sProductKey
=
GetMsiProperty
(
handle
,
TEXT
(
"FINDPRODUCT"
)
);
//
MessageBox( NULL, sProductKey.c_str(), "Titel", MB_OK );
//MessageBox( NULL, sProductKey.c_str(), "Titel", MB_OK );
if
(
ERROR_SUCCESS
==
RegOpenKey
(
HKEY_CURRENT_USER
,
sProductKey
.
c_str
(),
&
hKey
)
)
{
...
...
@@ -552,22 +406,22 @@ extern "C" UINT __stdcall RemoveExtensions(MSIHANDLE handle)
return
ERROR_SUCCESS
;
}
// Removing complete directory "
share\uno_packages\cache
"
// Removing complete directory "
Basis\presets\bundled
"
std
::
_tstring
sCacheDir
=
sInstDir
+
TEXT
(
"share
\\
uno_packages
\\
cache
"
);
std
::
_tstring
sCacheDir
=
sInstDir
+
TEXT
(
"share
\\
prereg
\\
bundled
"
);
bool
fSuccess
=
RemoveCompleteDirectory
(
sCacheDir
);
if
(
fSuccess
)
{
mystr
=
"Executed successfully!"
;
//
MessageBox(NULL, mystr.c_str(), "Main methode", MB_OK);
}
else
{
mystr
=
"An error occured during execution!"
;
//
MessageBox(NULL, mystr.c_str(), "Main methode", MB_OK);
}
//
if ( fSuccess )
//
{
//
mystr = "Executed successfully!";
//
MessageBox(NULL, mystr.c_str(), "Main methode", MB_OK);
//
}
//
else
//
{
//
mystr = "An error occured during execution!";
//
MessageBox(NULL, mystr.c_str(), "Main methode", MB_OK);
//
}
return
ERROR_SUCCESS
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment