API调用时遇见的有关问题

API调用时遇见的问题我的目的是获取系统中的‘我的文档’的路径,先声明Function long SHGetSpecialFolderLoc

API调用时遇见的问题
我的目的是获取系统中的‘我的文档’的路径,先声明
Function long SHGetSpecialFolderLocation (Long hwndOwner, Integer nFolder, ref Long ppidl) library "shell32.dll" 
Function long SHGetPathFromIDList(long pidl, ref String szPath) library "shell32.dll" Alias for "SHGetPathFromIDListA" 
代码如下:
String Ls_CurrentDirectory
String Ls_Docname, Ls_Named
integer Li_Value


integer MYDOCUMENTS = 5 //'我的文档 
long pidl 
 
Ls_CurrentDirectory=GetCurrentDirectory ( ) 
SHGetSpecialFolderLocation(0, MYDOCUMENTS, pidl) 
SHGetPathFromIDList(pidl, sTmp) 


Li_Value = GetFileOpenName("请选择文件", &
+ Ls_Docname, Ls_Named, "DOC", &
+ "DOC Files(*.DOC),*.DOC,XLS Files(*.XLS),*.XLS,"&
+ "JPG Files(*.JPG),*.JPG,BMP Files(*.BMP),*.BMP")
 
IF Li_Value = 1 THEN 
ole_blob.InsertFile(Ls_Docname)
ole_blob.Activate( OffSite! )
End IF
dw_master.setitem(dw_master.getrow(),"fujianmingcheng",Ls_Named)
sTmp=GetCurrentDirectory ( )
ChangeDirectory (Ls_CurrentDirectory)
测试的时候可以获取‘我的文档’的路径,可会出现被直接T出PB,不知道是什么原因

[解决办法]
读取注册表不就行了
XP中如下:
HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\
系统内的好多路径都有

[解决办法]
SHGetPathFromIDList(pidl, sTmp) 


sTmp 这个也应该分配空间的。