473,602 Members | 2,751 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

shfolder.dll - File Not Found

I installed VB6 onto a Vista system to check some legacy code. When I run my
project, the code where shell folders are determined, I get the following
error when using the API:SHGetFolder Path

Error #48: File Not Found

I checked and shfolder is definitely in the sytem32 folder. But of course,
the legacy code is expecting the pre-Vista version of shfolder.dll. Has
there been so much change in this file that it would return a file not found
message. Anybody have any background info on this issue they can share?

Much appreciated!!

JR

Nov 1 '08 #1
9 3121

"Jerry West" <jw@comcast.net wrote in message
news:Fv******** *************** *******@giganew s.com...
I installed VB6 onto a Vista system to check some legacy code. When I run
my
project, the code where shell folders are determined, I get the following
error when using the API:SHGetFolder Path

Error #48: File Not Found

I checked and shfolder is definitely in the sytem32 folder. But of course,
the legacy code is expecting the pre-Vista version of shfolder.dll. Has
there been so much change in this file that it would return a file not
found
message. Anybody have any background info on this issue they can share?
Not enough information.

The 'file' hasn't changed but due to UAC, compatiblity, and to some degree
64-bit/wow issues, permissions and 'views' have certainly changed. ie, what
may 'exist' in some situations, may not 'exist' in another.

You might check out the new group -
"microsoft.publ ic.vb.vista.com patibility".

-ralph
Nov 1 '08 #2
In addition to Ralph reply, try to run it with the administrative
privileges.
Jack

"Jerry West" <jw@comcast.net wrote in message
news:Fv******** *************** *******@giganew s.com...
>I installed VB6 onto a Vista system to check some legacy code. When I run
my project, the code where shell folders are determined, I get the
following error when using the API:SHGetFolder Path

Error #48: File Not Found

I checked and shfolder is definitely in the sytem32 folder. But of course,
the legacy code is expecting the pre-Vista version of shfolder.dll. Has
there been so much change in this file that it would return a file not
found message. Anybody have any background info on this issue they can
share?

Much appreciated!!

JR

Nov 1 '08 #3
Well, I certainly should have mentioned that not only am I running the
legacy code within the VB6 environment but the platform is a x64 bit system.
The legacy code was compiled on a 32bit system.

I am running the IDE in "Start as admin" mode.

I'm not convinced the error is the result of the 32-bit versus 64-bit
difference. Am I completely off track here? Any further suggestions?

JW

"Jack" <replyto@itwrot e in message
news:%2******** *******@TK2MSFT NGP03.phx.gbl.. .
In addition to Ralph reply, try to run it with the administrative
privileges.
Jack

"Jerry West" <jw@comcast.net wrote in message
news:Fv******** *************** *******@giganew s.com...
>>I installed VB6 onto a Vista system to check some legacy code. When I run
my project, the code where shell folders are determined, I get the
following error when using the API:SHGetFolder Path

Error #48: File Not Found

I checked and shfolder is definitely in the sytem32 folder. But of
course, the legacy code is expecting the pre-Vista version of
shfolder.dll . Has there been so much change in this file that it would
return a file not found message. Anybody have any background info on this
issue they can share?

Much appreciated!!

JR

Nov 1 '08 #4
Have you looked at
http://msdn.microsoft.com/en-us/libr...81(VS.85).aspx, and understand
what it says about the version on Vista?

Also, it seems you think the error is indicating it cannot find the dll
itself. It seems to me the message means that it cannot find whatever the
folder id you are passing into the function.
"Jerry West" <jw@comcast.net wrote in message
news:0L******** *************** *******@giganew s.com...
Well, I certainly should have mentioned that not only am I running the
legacy code within the VB6 environment but the platform is a x64 bit
system. The legacy code was compiled on a 32bit system.

I am running the IDE in "Start as admin" mode.

I'm not convinced the error is the result of the 32-bit versus 64-bit
difference. Am I completely off track here? Any further suggestions?

JW

"Jack" <replyto@itwrot e in message
news:%2******** *******@TK2MSFT NGP03.phx.gbl.. .
>In addition to Ralph reply, try to run it with the administrative
privileges.
Jack

"Jerry West" <jw@comcast.net wrote in message
news:Fv******* *************** ********@gigane ws.com...
>>>I installed VB6 onto a Vista system to check some legacy code. When I run
my project, the code where shell folders are determined, I get the
following error when using the API:SHGetFolder Path

Error #48: File Not Found

I checked and shfolder is definitely in the sytem32 folder. But of
course, the legacy code is expecting the pre-Vista version of
shfolder.dl l. Has there been so much change in this file that it would
return a file not found message. Anybody have any background info on
this issue they can share?

Much appreciated!!

JR

Nov 1 '08 #5
Jerry West <jw@comcast.net schrieb im Beitrag
<Fv************ *************** ***@giganews.co m>...
I installed VB6 onto a Vista system to check some legacy code. When I run
my
project, the code where shell folders are determined, I get the following
error when using the API:SHGetFolder Path
The shfolder.dll has been designed primarily for Windows 9x and NT <= 4
with IE <= 4. You shouldn't use this on newer versions of Windows. Use the
following shell procedures instead:
SHGetSpecialFol derLocation()
SHGetSpecialFol derPath()

--
----------------------------------------------------------------------
Thorsten Albers albers(a)uni-freiburg.de
----------------------------------------------------------------------

Nov 1 '08 #6
"Jerry West" <jw@comcast.net wrote in message
news:Fv******** *************** *******@giganew s.com...
Error #48: File Not Found
VB6 throws that error when there is something wrong with the declaration or
the way the function was called, and doesn't necessarily mean that the file
was not found.

Please post the function declaration and how it's called.
Nov 1 '08 #7
It seems what I am doing should be supported based on the MSDN article
indicated by a previous post on this thread. The call I make looks like
this:

'Declare Function SHGetFolderPath Lib "shfolder.d ll" Alias
"SHGetFolderPat hA" (ByVal hwndOwner As Long, 'ByVal nFolder As Long, ByVal
hToken As Long, ByVal dwReserved As Long, ByVal lpszPath As String) As 'Long

' sFolderPath$ = Space(MAX_PATH)
' alFolders&(iIdx %) = 48
' SHGFP_TYPE_CURR ENT = 0

lRet& = SHGetFolderPath (frmMain.hWnd, alFolders&(iIdx %), 0&,
SHGFP_TYPE_CURR ENT, sFolderPath$)

Like I said, works fine pre-Vista.

JW

"expvb" <no****@cox.net wrote in message
news:%2******** ********@TK2MSF TNGP04.phx.gbl. ..
"Jerry West" <jw@comcast.net wrote in message
news:Fv******** *************** *******@giganew s.com...
>Error #48: File Not Found

VB6 throws that error when there is something wrong with the declaration
or the way the function was called, and doesn't necessarily mean that the
file was not found.

Please post the function declaration and how it's called.

Nov 1 '08 #8
I don't have vb 6, but the code runs on vist from .net 2008. With a
non-admin user, I get a path that is not a valid path.
The folder returned does exist for an admin user.

"Jerry West" <jw@comcast.net wrote in message
news:AN******** *************** *******@giganew s.com...
It seems what I am doing should be supported based on the MSDN article
indicated by a previous post on this thread. The call I make looks like
this:

'Declare Function SHGetFolderPath Lib "shfolder.d ll" Alias
"SHGetFolderPat hA" (ByVal hwndOwner As Long, 'ByVal nFolder As Long, ByVal
hToken As Long, ByVal dwReserved As Long, ByVal lpszPath As String) As
'Long

' sFolderPath$ = Space(MAX_PATH)
' alFolders&(iIdx %) = 48
' SHGFP_TYPE_CURR ENT = 0

lRet& = SHGetFolderPath (frmMain.hWnd, alFolders&(iIdx %), 0&,
SHGFP_TYPE_CURR ENT, sFolderPath$)

Like I said, works fine pre-Vista.

JW

"expvb" <no****@cox.net wrote in message
news:%2******** ********@TK2MSF TNGP04.phx.gbl. ..
>"Jerry West" <jw@comcast.net wrote in message
news:Fv******* *************** ********@gigane ws.com...
>>Error #48: File Not Found

VB6 throws that error when there is something wrong with the declaration
or the way the function was called, and doesn't necessarily mean that the
file was not found.

Please post the function declaration and how it's called.

Nov 1 '08 #9
Jerry West <jw@comcast.net schrieb im Beitrag
<AN************ *************** ***@giganews.co m>...
lRet& = SHGetFolderPath (frmMain.hWnd, alFolders&(iIdx %), 0&,
SHGFP_TYPE_CURR ENT, sFolderPath$)

Like I said, works fine pre-Vista.
Presumably the reason for this is what the documentation on
SHGetFolderPath () in the MSDN states on the parameter 'nFolder': "Only real
folders are valid. If a virtual folder is specified, this function will
fail". Under certain conditions on Windows Vista your application somehow
works with virtual folder pathes, not with real ones (keyword is 'virtual
store').

--
----------------------------------------------------------------------
Thorsten Albers albers(a)uni-freiburg.de
----------------------------------------------------------------------

Nov 2 '08 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
3878
by: Richard | last post by:
Hi, Can anyone tell me what the difference is between for line in file.readlines( ): and for line in file:
3
2701
by: Abhas | last post by:
> > Hi, this is Abhas, > > I had made a video library program in C++, but was facing a problem. > > After entering 12 movies, i cannot enter any more movies. > > Something gibberish comes instead. > > Can somebody please tell whats wrong?? > > This is the code : : #include<fstream.h> #include<conio.h>
7
2603
by: spike | last post by:
Im writing a program to search for a string in a binary file. And it works. The problem is: It is sooo slow! how can i make it faster? It takes 27 seconds just to search a 5 meg file. I guess it has something to do with the strequal() function... Btw, thanks to all of you who answered last time! code: ------------------------------------------------------------------------- #include <stdio.h>
2
2354
by: Profetas | last post by:
I have the following code that detects a <c> and </c> #include <stdio.h> main(int argc, char *argv) { FILE* fp; char data;
3
12169
by: Michael Bøcker-Larsen | last post by:
Hi I'v been stuck on this problem for ages now. I have found that I'm not the only one with this problem, by looking through the different newsgroups. Hope you can help me! I know there is a lot of information, but if you need more (e.g. the code) please write michael@mblarsen.dk. The problem is this error messages (the code is build just fine; no errors):
1
3269
by: Christian Rühl | last post by:
hey! what i wanna do sounds very simple at first, but it turned out to be a real bone crusher... i want to check if a treeView node is checked and if a correspondent node in my xml config file exists just to sort of synchronize them by changing the xml nodes attribute(s). somehow i always catch an exception "blabla has an invalid token" but i cannot find a solution for this. maybe someone of you people can tell me how to do this...
1
2587
by: Christian Rühl | last post by:
hey! what i wanna do sounds very simple at first, but it turned out to be a real bone crusher... i want to check if a treeView node is checked and if a correspondent node in my xml config file exists just to sort of synchronize them by changing the xml nodes attribute(s). somehow i always catch an exception "blabla has an invalid token" but i cannot find a solution for this. maybe someone of you people can tell me how to do this...
24
4425
by: Bill | last post by:
Hello, I'm trying to output buffer content to a file. I either get an access violation error, or crazy looking output in the file depending on which method I use to write the file. Can anyone help out a newbie? #include <stdio.h> #include <ctype.h> #include <string.h>
9
1877
by: Jerry West | last post by:
I installed VB6 onto a Vista system to check some legacy code. When I run my project, the code where shell folders are determined, I get the following error when using the API:SHGetFolderPath Error #48: File Not Found I checked and shfolder is definitely in the sytem32 folder. But of course, the legacy code is expecting the pre-Vista version of shfolder.dll. Has there been so much change in this file that it would return a file not...
0
7993
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8401
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8054
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8268
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
5867
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5440
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
3900
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
2418
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1510
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.