API调用时遇见的有关问题

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 这个也应该分配空间的。