(file) Return to GuidWindows.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / General

 1 venkat.puvvada 1.1 //%LICENSE////////////////////////////////////////////////////////////////
 2                    //
 3                    // Licensed to The Open Group (TOG) under one or more contributor license
 4                    // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 5                    // this work for additional information regarding copyright ownership.
 6                    // Each contributor licenses this file to you under the OpenPegasus Open
 7                    // Source License; you may not use this file except in compliance with the
 8                    // License.
 9                    //
10                    // Permission is hereby granted, free of charge, to any person obtaining a
11                    // copy of this software and associated documentation files (the "Software"),
12                    // to deal in the Software without restriction, including without limitation
13                    // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14                    // and/or sell copies of the Software, and to permit persons to whom the
15                    // Software is furnished to do so, subject to the following conditions:
16                    //
17                    // The above copyright notice and this permission notice shall be included
18                    // in all copies or substantial portions of the Software.
19                    //
20                    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21                    // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 venkat.puvvada 1.1 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23                    // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24                    // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25                    // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26                    // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27                    //
28                    //////////////////////////////////////////////////////////////////////////
29                    //
30                    //%/////////////////////////////////////////////////////////////////////////////
31                    
32                    #include <windows.h>
33                    #include <objbase.h>
34                    
35                    PEGASUS_USING_STD;
36                    
37                    PEGASUS_NAMESPACE_BEGIN
38                    
39                    String Guid::getGuid(const String &prefix)
40                    {
41                      GUID guid;
42                      String strUUID;
43 venkat.puvvada 1.1   HRESULT hres = CoCreateGuid(&guid);
44                    
45                      if (hres == S_OK)
46                        {
47                          WCHAR guid_strW[39] = { L"" };
48                          char guid_str[100];
49                          ::memset(&guid_str, 0, sizeof(guid_str));
50                          const Uint32 numChars =  sizeof(guid_strW)/sizeof(guid_strW[0]);
51                          if (StringFromGUID2(guid, guid_strW, numChars) > 0)
52                            {
53                              WideCharToMultiByte(
54                                  CP_ACP,
55                                  0,
56                                  guid_strW,
57                                  numChars,
58                                  guid_str,
59                                  sizeof(guid_str),
60                                  NULL,
61                                  NULL);
62                              // exclude the first and last chars (i.e., { and })
63                              for (Uint32 i=1; i<sizeof(guid_str); i++)
64 venkat.puvvada 1.1             {
65                                  if (guid_str[i] != '}')
66                                    {
67                                      strUUID.append(Char16(guid_str[i]));
68                                    }
69                                  else
70                                    {
71                                      break;
72                                    }
73                                }
74                            }
75                          if (prefix == String::EMPTY)
76                            return strUUID;
77                          else
78                            return (prefix + strUUID);
79                        }
80                      return (String::EMPTY);
81                    }
82                    
83                    PEGASUS_NAMESPACE_END
84                    // END_OF_FILE

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2