Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Syntax for WNetCachePassword() and WNetGetCachedPassword()

Posted on 1999-01-07
7
Medium Priority
?
230 Views
Last Modified: 2013-12-03
Does anybody know the prototypes for WNetCachePassword() and WNetGetCachedPassword() for Windows 95? They are undocumented functions exported by mpr.dll for modifying .PWL files.
0
Comment
Question by:eppsman
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 17

Expert Comment

by:inthe
ID: 1418307
hi ,
is this of any help ,Here are two functions for setting/getting a netware password in the pwl file:

CString CNovell::GetPwd(CString szServer)
{
      char pbPassword[100];
      LPSTR p;
      DWORD ret;
      WORD cbPassword = sizeof(pbPassword);
      
      ret = WNetGetCachedPassword((LPSTR)(LPCSTR) szServer,
szServer.GetLength(), pbPassword, &cbPassword, (BYTE)18);
      if (ret == 0) {
            try {
                  p = pbPassword;
                  p += (strlen(pbPassword) +1);
                  return (p);
            }catch(...) {
                  return "";
            }
      }
      else
            return "";
}

void CNovell::SetPwd(LPBYTE lpDataSites)
{
      DWORD cbUserPwd;
      ULONG dwRet;
      LPSTR lpUserID, lpPwd,p, lpServer;
      LPSTR lpUserPwd = new char[1000];
      LPSITEDATA pDataSites;
      pDataSites = (LPSITEDATA) lpDataSites;
      CString szBuf;
      pDataSites->NovellUserID.TrimRight();
      //pDataSites->NovellServer.TrimRight();
      pDataSites->NovellRemoteDevice.TrimRight();
      pDataSites->NovellPassword.TrimRight();

      if (pDataSites->NovellPassword == "")
            return;

      // extract novell server from the remote path
      try {
            szBuf = pDataSites->NovellRemoteDevice;
            szBuf = szBuf.Mid(2); // skip "\\"
            szBuf = szBuf.Left(szBuf.Find("\\"));
            lpServer = (LPSTR)(LPCSTR)szBuf;
      }
      catch(...){
            return;
      }

      //lpServer = (LPSTR)(LPCSTR)pDataSites->NovellServer;
      lpPwd = (LPSTR)(LPCSTR)pDataSites->NovellPassword;
      lpUserID = (LPSTR)(LPCSTR)pDataSites->NovellUserID;

      strcpy(lpUserPwd, lpUserID);
      strcat(lpUserPwd, " ");
      strcat(lpUserPwd, lpPwd);
      cbUserPwd = strlen(lpUserPwd);
      p=strstr(lpUserPwd, " ");
      if (p)
            *p=0;
      else {
            delete lpUserPwd;
            return;
      }

      dwRet = WNetRemoveCachedPassword(lpServer, strlen(lpServer), (BYTE)18);
      dwRet = WNetCachePassword(lpServer, strlen(lpServer),
                        lpUserPwd, cbUserPwd, (BYTE) 18, 0);

      delete lpUserPwd;
Regards Barry

0
 

Author Comment

by:eppsman
ID: 1418308
What is the meaning of the 18 sent to the functions? Is this just a unique identifier? What does the final 0 do for WNetCachePassword()? If you can tell me these things, you can propose it as an answer, and I'll give it grade A. Thanks!
0
 
LVL 17

Accepted Solution

by:
inthe earned 200 total points
ID: 1418309
hi,
(#define CPW_MEMORYONLY  0x01 First for fnFlags)
The  0 is for fnFlags(final parameter) if you want the password stored permanently in the cache.
Use 1 if you want password kept only for the duration of the login.
The nType(18) is the type of password resource. Type 18 means a netware account and password.

WNetCachePassword(LPCSTR pbResource,
                  WORD  cbResource,
                  LPCSTR pbPassword,
                  WORD  cbPassword,
                  BYTE  nType,
                  UINT  fnFlags);

WNetGetCachedPassword(LPCSTR  pbResource,
                      WORD   cbResource,
                      LPSTR  pbPassword,
                      LPWORD pcbPassword,
                      BYTE   nType);

Regards Barry

0
Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

 

Author Comment

by:eppsman
ID: 1418310
What other types besides NetWare are available?
Also, do you have the prototype for WNetRemoveCachedPassword()?
If you do, I will adjust the points, since that was not part of the original question.

Thanks in advance.

0
 

Author Comment

by:eppsman
ID: 1418311
Oh, I can see the prototype for WNetRemoveCachedPassword on your first code sample - never mind that. I would still like to know what other password types besides NetWare are available. Thanks.
0
 
LVL 17

Expert Comment

by:inthe
ID: 1418312
I wish i could tell you more but sorry everything above was all i had on the subject and i tried win95 ddk on msdn but it's not there anymore or at least the texts that used to be there are'nt :-(
i also scanned net and newsgroups and could find nothing we dont already know .it seems to be one subject that is hard to get info about i thought being unsupported there would be plenty of people talking bout it on the net somewhere .

this quoted text below is is all i could get that may be of assistance :

"You need to get hold of the win 95 ddk, in their you will find netmpr.h header file which will show the cached headers. DDK will also give you some brief descriptions of the functions."

hope you find what you need
Regards Barry
0
 

Author Comment

by:eppsman
ID: 1418313
I'll check that out. Thanks.
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial is about how to put some of your C++ program's functionality into a standard DLL, and how to make working with the EXE and the DLL simple and seamless.   We'll be using Microsoft Visual Studio 2008 and we will cut out the noise; that i…
This article describes how to add a user-defined command button to the Windows 7 Explorer toolbar.  In the previous article (http://www.experts-exchange.com/A_2172.html), we saw how to put the Delete button back there where it belongs.  "Delete" is …
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question