<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:snippet="http://codexchange.org/schemas/snippet/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>CodeXchange: User Contributed Snippets</title>
    <link>http://www.codexchange.org</link>
    <description>Summary of the snippets published by a codexchange user</description>
    <language>en-us</language>
    <copyright>Copyright © CodeXchange, 2004-2006</copyright>
    <generator>CodeXchange RSS Feed Generator v1.0</generator>
    <webMaster>webmaster@codexchange.org</webMaster>
    <lastBuildDate>Thu, 15 Oct 2026 09:56:00 GMT</lastBuildDate>
    <ttl>20</ttl>
    <dc:language>en-us</dc:language>
    <dc:rights>Copyright © CodeXchange, 2004-2006</dc:rights>
    <dc:date>10/15/2026 9:56:00 AM</dc:date>
    <dc:publisher />
    <dc:creator>CodeXchange RSS Feed Generator v1.0</dc:creator>
    <item>
      <guid>/PreviewSnippet.aspx?SnippetID=57c55875-b1ef-4526-87d6-4b1f06ae5857</guid>
      <title>Enumerate all files in a directory</title>
      <link>/PreviewSnippet.aspx?SnippetID=57c55875-b1ef-4526-87d6-4b1f06ae5857</link>
      <description>Enumerate all files in a directory [C#]</description>
      <author>Yan Michalevsky</author>
      <pubDate>Mon, 07 Aug 2006 11:20:19 GMT</pubDate>
      <comments>/PreviewSnippet.aspx?SnippetID=57c55875-b1ef-4526-87d6-4b1f06ae5857#comments</comments>
      <category>427a3023-1009-4fad-8108-77d5eea21bd1</category>
      <dc:title>Enumerate all files in a directory</dc:title>
      <dc:date>8/7/2006 11:20:19 AM</dc:date>
      <dc:creator>Yan Michalevsky</dc:creator>
      <content:encoded><![CDATA[<pre>ArrayList filenamesList = new ArrayList();
      
DirectoryInfo dir = new DirectoryInfo(@"C:\");
FileInfo[] filesList = dir.GetFiles();
        
foreach (FileInfo fileInfo in filesList)
{
    string filename = patchFileInfo.FullName;
    filenamesList.Add(filename);
}</pre>]]></content:encoded>
      <snippet:downloads>0</snippet:downloads>
      <snippet:rating>0</snippet:rating>
      <snippet:language>C#</snippet:language>
    </item>
    <item>
      <guid>/PreviewSnippet.aspx?SnippetID=1415c971-3b4b-4e1a-9880-a2eaaa090599</guid>
      <title>Enumerate installed patches for a given product using MSI API</title>
      <link>/PreviewSnippet.aspx?SnippetID=1415c971-3b4b-4e1a-9880-a2eaaa090599</link>
      <description>Enumerate installed patches for a given product using MSI API [C++]</description>
      <author>Yan Michalevsky</author>
      <pubDate>Mon, 07 Aug 2006 11:43:16 GMT</pubDate>
      <comments>/PreviewSnippet.aspx?SnippetID=1415c971-3b4b-4e1a-9880-a2eaaa090599#comments</comments>
      <category>0f7510dd-92d6-4892-9539-4866adb651a3</category>
      <dc:title>Enumerate installed patches for a given product using MSI API</dc:title>
      <dc:date>8/7/2006 11:43:16 AM</dc:date>
      <dc:creator>Yan Michalevsky</dc:creator>
      <content:encoded><![CDATA[<pre>static void getInstalledPatchesList(const CString& productCode,								        CAtlList< CString >* patchesList)
{
	UINT retval;
	UINT patchIndex = 0;
	TCHAR patchGuidBuffer[MAX_PRODUCT_CODE_LEN] = _T("");
	TCHAR transformsBuff[100] = _T("");
	DWORD transformsBuffSize = sizeof(transformsBuff)/sizeof(transformsBuff[0]);
	
	do {
		memset(patchGuidBuffer, 0, sizeof(patchGuidBuffer));
		memset(transformsBuff, 0, sizeof(transformsBuff));
		transformsBuffSize = sizeof(transformsBuff)/sizeof(transformsBuff[0]);
		
		retval = MsiEnumPatches(productCode, patchIndex, patchGuidBuffer,
  				          transformsBuff, &transformsBuffSize);
		if (ERROR_SUCCESS == retval) {
			patchesList->AddTail(CString(patchGuidBuffer));
			++patchIndex;
		}
	} while (ERROR_SUCCESS == retval);
} //end of getInstalledPatchesList</pre>]]></content:encoded>
      <snippet:downloads>0</snippet:downloads>
      <snippet:rating>0</snippet:rating>
      <snippet:language>C++</snippet:language>
    </item>
    <item>
      <guid>/PreviewSnippet.aspx?SnippetID=50901970-f52f-4af6-a502-bb2eb33c9377</guid>
      <title>Get Temp directory path</title>
      <link>/PreviewSnippet.aspx?SnippetID=50901970-f52f-4af6-a502-bb2eb33c9377</link>
      <description>Get Temp directory path [C++]</description>
      <author>Yan Michalevsky</author>
      <pubDate>Mon, 07 Aug 2006 11:46:12 GMT</pubDate>
      <comments>/PreviewSnippet.aspx?SnippetID=50901970-f52f-4af6-a502-bb2eb33c9377#comments</comments>
      <category>bb47ac87-7cde-45ac-aa6e-e677d46fc216</category>
      <dc:title>Get Temp directory path</dc:title>
      <dc:date>8/7/2006 11:46:12 AM</dc:date>
      <dc:creator>Yan Michalevsky</dc:creator>
      <content:encoded><![CDATA[<pre>CString getTempDir()
{
	TCHAR tempPath[MAX_PATH + 1] = _T("");
	const UINT SIZE_IN_TCHARS = sizeof(tempPath)/sizeof(TCHAR); 
	
	DWORD retval = GetTempPath(SIZE_IN_TCHARS, tempPath);
	if (SIZE_IN_TCHARS < retval) {
		THROW(Exception(_T("Failed getting temp directory path")));
	}
	
	return CString(tempPath);
} //end of getTempDir</pre>]]></content:encoded>
      <snippet:downloads>1</snippet:downloads>
      <snippet:rating>0</snippet:rating>
      <snippet:language>C++</snippet:language>
    </item>
  </channel>
</rss>