<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[listview]]></title><description><![CDATA[<pre><code class="language-cpp">int RESOLV::resolv(PARS::RANGE *range)
{
	// diese variable dient dazu, dem aktuellen item die stelle im listview zuzuordnen
	int l_count = 0;

	if(start_wsa())
		return 1;

	else
	{
		FILE *target;

		if((target = fopen(&quot;C:\\nsc.log&quot;, &quot;w&quot;)) == NULL)
			return 1;

		else
		{			
			for(int i = range-&gt;start[0]; i &lt;= range-&gt;end[0]; i++)
			{
				// das erste byte wird in ein int konvertiert
				string _1 = convert_int(i);				

				for(int j = range-&gt;start[1]; j &lt;= range-&gt;end[1]; j++)
				{
					// das 2 byte wird in ein int konvertiert
					string _2 = convert_int(j);

					for(int k = range-&gt;start[2]; k &lt;= range-&gt;end[2]; k++)
					{
						// das 3 byte wird in ein int konvertiert
						string _3 = convert_int(k);
						//UpdateWindow(hList);
						for(int l = range-&gt;start[3]; l &lt;= range-&gt;end[3]; l++)
						{
							// natürlich brauchen wir noch variablen 
							// als erstes brauchen wir eine variable vom typ HOSTENT*
							HOSTENT* host = NULL;
							// das letzte byte wird in ein int konvertiert
							string _4 = convert_int(l);
							// hier kann jetzt die auflösung erfolgen
							// ausserdem wird hier in die datei geschrieben und 
							// die items werden in die liste hinzugefügt
							// diese aufgaben das schreiben in die datei und das hinzufügen der items
							// erfolgt alles in funktion damit diese funktion nicht noch größer wird
							// wir brauchen noch 3 array vom typ char
							char l_ip[16], l_hostname[100], l_resolv_ip[16];
							// beginnen wir nun mit der der auflösung
							// dafür haben wir 2 funktionen
							// einmal forward_solv und backward_solv
							// zu aller erst müssen wir eine ip adresse bilden
							string ip_address = _1 + &quot;.&quot; + _2 + &quot;.&quot; + _3 + &quot;.&quot; + _4;
							// nun haben wir einen ip adresse jetzt lösen wir auf

							// wenn die ip adresse nicht aufgelöst werden kann dann wird NULL zurückgegeben
							if((host = backward_solv(ip_address)) == NULL)
							{
								// nun die ip adresse konnte nicht aufgelöst werden was machen wir denn nun?
								// zuerst schreiben wir unser ergebnis in die datei
								target = write_in_file(target, ip_address, &quot;-&quot;, &quot;-&quot;, true);
								// nun müssen wir das ergebnis in die liste eintragen
								// !!
								// !! das hinzufügen der items in die liste steht noch aus
								// !!
								strcpy(l_ip, ip_address.c_str());
								strcpy(l_hostname, &quot;-&quot;);
								strcpy(l_resolv_ip, &quot;-&quot;);

								ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 0);
							}
							// wenn die auflösung erfolgreich war gehts hier weiter
							else
							{
								// da die auflösung erfolgreich war müssen wir den host name in einer separaten variable speichern
								string current_hostname = host-&gt;h_name;
								// nun lösen wir vorwärtsauf
								// um fehler zu vermeiden erstellen wir einfach noch eine variable des typs HOSTENT*
								HOSTENT* h;

								if((h = forward_solv(current_hostname)) == NULL)
								{
									// der hostname konnte nicht aufgelöst werden
									// also schreiben wir unser ergebnis in die datei das fehlerhafte ergebnis
									// wir haben die erste ip und einen hostname aber die andere ip fehlt uns noch also fehler
									target = write_in_file(target, ip_address, current_hostname, &quot;-&quot;, true);
									// !!
									// !! das hinzufügen der items in die liste steht noch aus
									// !!
									strcpy(l_ip, ip_address.c_str());
									strcpy(l_hostname, current_hostname.c_str());
									strcpy(l_resolv_ip, &quot;-&quot;);

									ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 0);
								}

								else
								{
									// hier wird die aufgelöste ip gespeichert
									string current_ip;
									// wenn die vorwärtsauflösung gescheiter ist dann wird folgendes gemacht
									in_addr inet;
									// die ip adresse wird in die struktur geschrieben
									inet.S_un.S_addr = *((unsigned long*)h-&gt;h_addr_list[0]);
									// nun müssen wir die ip noch in ein char umkonvertieren
									current_ip = inet_ntoa(inet);

									// so wir haben jetzt alles
									// jetzt muss nur noch einen überprüfung gemacht werden
									// stimmt die anfangsip mit der aufgelösten ip überein?
									// also dann überprüfen wir mal
									if(ip_address == current_ip)
									{
										// wenn die ip adresse übereinstimmen dann wird folgendes gemacht
										target = write_in_file(target, ip_address, current_hostname, current_ip, false);
										// !!
										// !! das hinzufügen der items in die liste steht noch aus
										// !!	
										strcpy(l_ip, ip_address.c_str());
										strcpy(l_hostname, current_hostname.c_str());
										strcpy(l_resolv_ip, current_ip.c_str());		

										ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 1);
									}

									else
									{
										// wenn jedoch die ip nicht übereinstimmt
										target = write_in_file(target, ip_address, current_hostname, current_ip, true);
										// !!
										// !! das hinzufügen der items in die liste steht noch aus
										// !!
										strcpy(l_ip, ip_address.c_str());
										strcpy(l_hostname, current_hostname.c_str());
										strcpy(l_resolv_ip, current_ip.c_str());

										ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 0);
									}									
								}
							}
							l_count++;
						}			
						l_count++;
					}
					l_count++;
				}
				l_count++;
			}
		}
		// nun müssen wir noch das file schließen
		fclose(target);
	}

	return 0;
}
</code></pre>
<pre><code class="language-cpp">void RESOLV::ListView_InsertItemEx_(HWND hDlg, HWND hListViewCtrl, char *szSpalte0, char *szSpalte1, char *szSpalte2, int iPos, int iImage)
{
	LVITEM lvi;

	ZeroMemory(&amp;lvi, sizeof(lvi));

	lvi.mask       = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; // Wir wollen TEXT und IMAGE angeben!
	lvi.iItem      = iPos;
	lvi.pszText    = szSpalte0;
	lvi.iImage     = iImage;
	lvi.cchTextMax = lstrlen(lvi.pszText);
	ListView_InsertItem(hListViewCtrl, &amp;lvi); // Einfügen!

	lvi.mask       = LVIF_TEXT;
	lvi.iSubItem   = 1;
	lvi.pszText    = szSpalte1;
	lvi.cchTextMax = lstrlen(lvi.pszText);
	ListView_SetItem(hListViewCtrl, &amp;lvi); // Text in die 2. Spalte einfügen!

	lvi.mask       = LVIF_TEXT;
	lvi.iSubItem   = 2;
	lvi.pszText    = szSpalte2;
	lvi.cchTextMax = lstrlen(lvi.pszText);
	ListView_SetItem(hListViewCtrl, &amp;lvi); // Text in die 3. Spalte einfügen!

	MessageBox(0, szSpalte1, &quot;host&quot;, MB_OK);
}
</code></pre>
<p>guten morgen,<br />
mein problem dreht sich um diese beiden funktionen:<br />
kleine einleitung:<br />
die resolv funktion, löst wie man unschwer erkennen kann, eine ip range auf.<br />
die innersten schleife rechnet das 4 byte einer ip adresse hoch die zweit innerste das 3 byte usw.<br />
alle ergebnisse ob nun erfolgreich oder nicht werden in die listview geschrieben. und beim hinzufügen liegt das problem, meiner meinung nach.<br />
kleines beispiel:<br />
ich hab ne range von 192.168.0.0 bis 192.168.1.255<br />
nach dem starten löst er erstmal von 192.168.0.0-255. nun schreibt er alles schön in die listview mit folgenden angaben. 1. generierte ip, 2. aufgelöster hostname und 3. die aufgelöste ip<br />
bei der range von 192.168.0.0-255 werden noch alle items in die listview eingetragen sei es zb der hostname oder wenn keiner existiert dann ein &quot;-&quot;.<br />
nun das phänomen:<br />
hat die innerste schleife ihre arbeit getan dh 256 durchgänge durchlaufen, so<br />
fängt er mit dem 1 netz an 192.168.1.0-255<br />
ab diesem zeitpunkt wird die listview aber nur noch mit der generierten ip gefüllt sprich evtl aufgelöster hostname und aufgelöste ip werden nicht mehr angezeit noch nicht mal ein &quot;-&quot; wenn nichts existiert...<br />
ich hab mal eine messagebox in die ListView_InsertItemEx_ funktion eingebaut.<br />
die messagebox gibt mir immer den hostname aus. ist das programm bei der auflösung der 192.168.1.0-255 angelangt so erscheint mir immer ein hostname nur wird er einfach nicht in die listview eingetragen.<br />
deshalb suche ich hier um rat da ich keinen blassen schimmer habe woran es liegen könnte. ich bin für jede hilfe dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>gruß xerxes</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/75479/listview</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 01:08:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/75479.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Jun 2004 08:11:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 08:11:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int RESOLV::resolv(PARS::RANGE *range)
{
	// diese variable dient dazu, dem aktuellen item die stelle im listview zuzuordnen
	int l_count = 0;

	if(start_wsa())
		return 1;

	else
	{
		FILE *target;

		if((target = fopen(&quot;C:\\nsc.log&quot;, &quot;w&quot;)) == NULL)
			return 1;

		else
		{			
			for(int i = range-&gt;start[0]; i &lt;= range-&gt;end[0]; i++)
			{
				// das erste byte wird in ein int konvertiert
				string _1 = convert_int(i);				

				for(int j = range-&gt;start[1]; j &lt;= range-&gt;end[1]; j++)
				{
					// das 2 byte wird in ein int konvertiert
					string _2 = convert_int(j);

					for(int k = range-&gt;start[2]; k &lt;= range-&gt;end[2]; k++)
					{
						// das 3 byte wird in ein int konvertiert
						string _3 = convert_int(k);
						//UpdateWindow(hList);
						for(int l = range-&gt;start[3]; l &lt;= range-&gt;end[3]; l++)
						{
							// natürlich brauchen wir noch variablen 
							// als erstes brauchen wir eine variable vom typ HOSTENT*
							HOSTENT* host = NULL;
							// das letzte byte wird in ein int konvertiert
							string _4 = convert_int(l);
							// hier kann jetzt die auflösung erfolgen
							// ausserdem wird hier in die datei geschrieben und 
							// die items werden in die liste hinzugefügt
							// diese aufgaben das schreiben in die datei und das hinzufügen der items
							// erfolgt alles in funktion damit diese funktion nicht noch größer wird
							// wir brauchen noch 3 array vom typ char
							char l_ip[16], l_hostname[100], l_resolv_ip[16];
							// beginnen wir nun mit der der auflösung
							// dafür haben wir 2 funktionen
							// einmal forward_solv und backward_solv
							// zu aller erst müssen wir eine ip adresse bilden
							string ip_address = _1 + &quot;.&quot; + _2 + &quot;.&quot; + _3 + &quot;.&quot; + _4;
							// nun haben wir einen ip adresse jetzt lösen wir auf

							// wenn die ip adresse nicht aufgelöst werden kann dann wird NULL zurückgegeben
							if((host = backward_solv(ip_address)) == NULL)
							{
								// nun die ip adresse konnte nicht aufgelöst werden was machen wir denn nun?
								// zuerst schreiben wir unser ergebnis in die datei
								target = write_in_file(target, ip_address, &quot;-&quot;, &quot;-&quot;, true);
								// nun müssen wir das ergebnis in die liste eintragen
								// !!
								// !! das hinzufügen der items in die liste steht noch aus
								// !!
								strcpy(l_ip, ip_address.c_str());
								strcpy(l_hostname, &quot;-&quot;);
								strcpy(l_resolv_ip, &quot;-&quot;);

								ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 0);
							}
							// wenn die auflösung erfolgreich war gehts hier weiter
							else
							{
								// da die auflösung erfolgreich war müssen wir den host name in einer separaten variable speichern
								string current_hostname = host-&gt;h_name;
								// nun lösen wir vorwärtsauf
								// um fehler zu vermeiden erstellen wir einfach noch eine variable des typs HOSTENT*
								HOSTENT* h;

								if((h = forward_solv(current_hostname)) == NULL)
								{
									// der hostname konnte nicht aufgelöst werden
									// also schreiben wir unser ergebnis in die datei das fehlerhafte ergebnis
									// wir haben die erste ip und einen hostname aber die andere ip fehlt uns noch also fehler
									target = write_in_file(target, ip_address, current_hostname, &quot;-&quot;, true);
									// !!
									// !! das hinzufügen der items in die liste steht noch aus
									// !!
									strcpy(l_ip, ip_address.c_str());
									strcpy(l_hostname, current_hostname.c_str());
									strcpy(l_resolv_ip, &quot;-&quot;);

									ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 0);
								}

								else
								{
									// hier wird die aufgelöste ip gespeichert
									string current_ip;
									// wenn die vorwärtsauflösung gescheiter ist dann wird folgendes gemacht
									in_addr inet;
									// die ip adresse wird in die struktur geschrieben
									inet.S_un.S_addr = *((unsigned long*)h-&gt;h_addr_list[0]);
									// nun müssen wir die ip noch in ein char umkonvertieren
									current_ip = inet_ntoa(inet);

									// so wir haben jetzt alles
									// jetzt muss nur noch einen überprüfung gemacht werden
									// stimmt die anfangsip mit der aufgelösten ip überein?
									// also dann überprüfen wir mal
									if(ip_address == current_ip)
									{
										// wenn die ip adresse übereinstimmen dann wird folgendes gemacht
										target = write_in_file(target, ip_address, current_hostname, current_ip, false);
										// !!
										// !! das hinzufügen der items in die liste steht noch aus
										// !!	
										strcpy(l_ip, ip_address.c_str());
										strcpy(l_hostname, current_hostname.c_str());
										strcpy(l_resolv_ip, current_ip.c_str());		

										ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 1);
									}

									else
									{
										// wenn jedoch die ip nicht übereinstimmt
										target = write_in_file(target, ip_address, current_hostname, current_ip, true);
										// !!
										// !! das hinzufügen der items in die liste steht noch aus
										// !!
										strcpy(l_ip, ip_address.c_str());
										strcpy(l_hostname, current_hostname.c_str());
										strcpy(l_resolv_ip, current_ip.c_str());

										ListView_InsertItemEx_(hDlg, hList, l_ip, l_hostname, l_resolv_ip, l_count, 0);
									}									
								}
							}
							l_count++;
						}			
						l_count++;
					}
					l_count++;
				}
				l_count++;
			}
		}
		// nun müssen wir noch das file schließen
		fclose(target);
	}

	return 0;
}
</code></pre>
<pre><code class="language-cpp">void RESOLV::ListView_InsertItemEx_(HWND hDlg, HWND hListViewCtrl, char *szSpalte0, char *szSpalte1, char *szSpalte2, int iPos, int iImage)
{
	LVITEM lvi;

	ZeroMemory(&amp;lvi, sizeof(lvi));

	lvi.mask       = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; // Wir wollen TEXT und IMAGE angeben!
	lvi.iItem      = iPos;
	lvi.pszText    = szSpalte0;
	lvi.iImage     = iImage;
	lvi.cchTextMax = lstrlen(lvi.pszText);
	ListView_InsertItem(hListViewCtrl, &amp;lvi); // Einfügen!

	lvi.mask       = LVIF_TEXT;
	lvi.iSubItem   = 1;
	lvi.pszText    = szSpalte1;
	lvi.cchTextMax = lstrlen(lvi.pszText);
	ListView_SetItem(hListViewCtrl, &amp;lvi); // Text in die 2. Spalte einfügen!

	lvi.mask       = LVIF_TEXT;
	lvi.iSubItem   = 2;
	lvi.pszText    = szSpalte2;
	lvi.cchTextMax = lstrlen(lvi.pszText);
	ListView_SetItem(hListViewCtrl, &amp;lvi); // Text in die 3. Spalte einfügen!

	MessageBox(0, szSpalte1, &quot;host&quot;, MB_OK);
}
</code></pre>
<p>guten morgen,<br />
mein problem dreht sich um diese beiden funktionen:<br />
kleine einleitung:<br />
die resolv funktion, löst wie man unschwer erkennen kann, eine ip range auf.<br />
die innersten schleife rechnet das 4 byte einer ip adresse hoch die zweit innerste das 3 byte usw.<br />
alle ergebnisse ob nun erfolgreich oder nicht werden in die listview geschrieben. und beim hinzufügen liegt das problem, meiner meinung nach.<br />
kleines beispiel:<br />
ich hab ne range von 192.168.0.0 bis 192.168.1.255<br />
nach dem starten löst er erstmal von 192.168.0.0-255. nun schreibt er alles schön in die listview mit folgenden angaben. 1. generierte ip, 2. aufgelöster hostname und 3. die aufgelöste ip<br />
bei der range von 192.168.0.0-255 werden noch alle items in die listview eingetragen sei es zb der hostname oder wenn keiner existiert dann ein &quot;-&quot;.<br />
nun das phänomen:<br />
hat die innerste schleife ihre arbeit getan dh 256 durchgänge durchlaufen, so<br />
fängt er mit dem 1 netz an 192.168.1.0-255<br />
ab diesem zeitpunkt wird die listview aber nur noch mit der generierten ip gefüllt sprich evtl aufgelöster hostname und aufgelöste ip werden nicht mehr angezeit noch nicht mal ein &quot;-&quot; wenn nichts existiert...<br />
ich hab mal eine messagebox in die ListView_InsertItemEx_ funktion eingebaut.<br />
die messagebox gibt mir immer den hostname aus. ist das programm bei der auflösung der 192.168.1.0-255 angelangt so erscheint mir immer ein hostname nur wird er einfach nicht in die listview eingetragen.<br />
deshalb suche ich hier um rat da ich keinen blassen schimmer habe woran es liegen könnte. ich bin für jede hilfe dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>gruß xerxes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530690</guid><dc:creator><![CDATA[xerxes_]]></dc:creator><pubDate>Tue, 01 Jun 2004 08:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 11:56:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">for(int j = 0; j &lt; 2;  j++)
{
    for(int i = 0; i &lt; 500; i++)
    {
        string str;
        char a[4];
        stringstream foo;
        foo &lt;&lt; i;
        foo &gt;&gt; str;
        strcpy(a, str.c_str());

        ListView_InsertItemEx(hList, a, &quot;hostname&quot;, &quot;resolv ip&quot;, count, 0);
        UpdateWindow(hList);
        count++;
    }
    count++;
}
</code></pre>
<p>so ich hab mir mal ne &quot;testumgebung&quot; gebaut die dieses problem analysieren soll. im obigen quellcode tritt der gleiche fehler auf wie im anderen programm. alle 500 einträge werden vollständig in die liste eingetragen also die ersten 500 einträge haben folgenden inhalt: 1. inhalt von a 2.hostname und 3. resolv ip</p>
<p>bei den nächsten 500 einträgen wie gesagt wird nur der inhalt von a ausgegeben mehr nicht. komische sache vielleicht habt ihr ja ne ahnung<br />
kann es sein das mein die liste irgendwie refreshen muss wie beim stringstream clear() damit man es wieder benutzen kann?<br />
gruß xerxes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530849</guid><dc:creator><![CDATA[xerxes_]]></dc:creator><pubDate>Tue, 01 Jun 2004 11:56:12 GMT</pubDate></item><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 12:01:34 GMT]]></title><description><![CDATA[<p>Du zählst count falsch hoch. IMHO dürfte das nur in der innersten Schleife passieren. Das Resultat ist, dass lvi.iItem nicht mehr mit dem neuen Index übereinstimmt. Von da an greifst du auf den Index eines noch nicht eingefügten Items zu. Der tatsächliche Index des eingefügten Items steht im Rückgabewert von ListView_InsertItem. Diesen Wert musst du für die weiteren Operationen benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530872</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 01 Jun 2004 12:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 12:40:25 GMT]]></title><description><![CDATA[<p>hi<br />
also ListView_InsertItem gibt mir die neue position zurück als int wert zurück?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530911</guid><dc:creator><![CDATA[xerxes_]]></dc:creator><pubDate>Tue, 01 Jun 2004 12:40:25 GMT</pubDate></item><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 12:48:54 GMT]]></title><description><![CDATA[<blockquote>
<pre><code>int ListView_InsertItem(
    HWND hwnd,
    const LPLVITEM pitem
);
</code></pre>
<p>Returns the index of the new item if successful, or -1 otherwise.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/530921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530921</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 01 Jun 2004 12:48:54 GMT</pubDate></item><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 12:50:10 GMT]]></title><description><![CDATA[<p>xerxes_ schrieb:</p>
<blockquote>
<p>also ListView_InsertItem gibt mir die neue position zurück als int wert zurück?</p>
</blockquote>
<p>Das hab ich geschrieben, das steht in der MSDN Library und das hättest Du auch durch Ausprobieren/Debuggen rausfinden können. Wozu noch die Frage?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530923</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 01 Jun 2004 12:50:10 GMT</pubDate></item><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 13:06:23 GMT]]></title><description><![CDATA[<p>auf die msdn bin ich nicht gekommen, das ich den code zum hinzufügen von listview items aus einem tutorial habe sprich copy&amp;paste. deshalb dachte ich, der code würde funktionieren...und ListView_InsertItem liefert keinen wert zurück.<br />
nur mein statement dazu.</p>
<p>was mir noch einfällt, wie kann die ganze liste löschen? dh alle items entfernen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530936</guid><dc:creator><![CDATA[xerxes_]]></dc:creator><pubDate>Tue, 01 Jun 2004 13:06:23 GMT</pubDate></item><item><title><![CDATA[Reply to listview on Tue, 01 Jun 2004 13:19:58 GMT]]></title><description><![CDATA[<p>xerxes_ schrieb:</p>
<blockquote>
<p>was mir noch einfällt, wie kann die ganze liste löschen? dh alle items entfernen?</p>
</blockquote>
<p>Auch hier hilft die MSDN Library. Wenn Du Dir dort mal alle Funktionen ansiehst, die mit ListView_ anfangen, findest du eine, die ListView_DeleteAllItems heißt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/530947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530947</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 01 Jun 2004 13:19:58 GMT</pubDate></item></channel></rss>