<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Can&#39;t load_bitmap after GetOpenFileName</title>
		<link>http://www.allegro.cc/forums/view/591273</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 05 May 2007 04:56:32 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I am using winalleg.h&#39;s GetOpenFileName() to retrieve the path to a file. I have it working such that I get a path form GetOpenFileName(). However the next time I call load_bitmap() I get NULL returned instead of the bitmap pointer.</p><p>All my previous calls to load_bitmap() return the a bitmap pointer. Also the load_bitmap call that fails is hardcoded with the file name. The load_bitmap call works if GetOpenFileName() was not called previously. Oddly it also works if GetOpenFileName() was called but was canceled instead of successfully retrieving a file name. </p><p>My best guess is that something in the GetOpenFileName() is setting some sort of windows flag that forbids allegro&#39;s load_bitmap() from functioning properly. </p><p>Has this happened to any of you? How can I fix this?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Wilson Saunders)</author>
		<pubDate>Sat, 05 May 2007 04:24:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
My best guess is that something in the GetOpenFileName() is setting some sort of windows flag that forbids allegro&#39;s load_bitmap() from functioning properly.
</p></div></div><p>
Or setting a flag that messes with the retrival of the filename data itself. The OPENFILENAME structure is .... not small. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Has this happened to any of you?
</p></div></div><p>
Only when using Win32 straight up. Sadly, I forget the solutions I came up with, and I don&#39;t know how they might work with Allegro ....
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Sat, 05 May 2007 04:45:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here is the problem code, in case any of you can spot what I am doing wrong. I have added the load_bitmap right after the GetOpenFileName to remove the chance something else is messing up the load_bitmap call. Normally the load_bitmap call happens else where.
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">char</span> <span class="k3">*</span> WinLoader::getLoadPath<span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span> path, <span class="k1">char</span> <span class="k3">*</span> filter<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>  <a href="http://www.allegro.cc/manual/PALETTE" target="_blank"><span class="a">PALETTE</span></a> pal<span class="k2">;</span> </td></tr><tr><td class="number">3</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span> tempBMP<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>  OPENFILENAME ofn<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>  <span class="k1">char</span> myPath<span class="k2">[</span><span class="n">260</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  <span class="k1">char</span> szFile<span class="k2">[</span><span class="n">260</span><span class="k2">]</span><span class="k3">=</span><span class="s">""</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  <a href="http://www.allegro.cc/manual/get_palette" target="_blank"><span class="a">get_palette</span></a><span class="k2">(</span>pal<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_569.html" target="_blank">memset</a><span class="k2">(</span><span class="k3">&amp;</span>ofn,<span class="n">0</span>,<span class="k1">sizeof</span><span class="k2">(</span>ofn<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    <span class="c">// set path to current program directory</span></td></tr><tr><td class="number">10</td><td>  _getdcwd<span class="k2">(</span><span class="n">0</span>,myPath,<span class="n">260</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//program path;</span></td></tr><tr><td class="number">11</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_767.html" target="_blank">strncat</a><span class="k2">(</span>myPath, <span class="s">"\\"</span>,<span class="n">5</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_767.html" target="_blank">strncat</a><span class="k2">(</span>myPath, path,<span class="n">102</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    </td></tr><tr><td class="number">14</td><td>    <span class="c">//set important ofn values</span></td></tr><tr><td class="number">15</td><td>  ofn.lStructSize <span class="k3">=</span>  <span class="k1">sizeof</span><span class="k2">(</span>OPENFILENAME<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  ofn.hwndOwner  <span class="k3">=</span>  <a href="http://www.allegro.cc/manual/win_get_window" target="_blank"><span class="a">win_get_window</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>  ofn.nMaxFile <span class="k3">=</span> <span class="k1">sizeof</span><span class="k2">(</span>szFile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  ofn.lpstrFile <span class="k3">=</span> szFile<span class="k2">;</span>  </td></tr><tr><td class="number">19</td><td>  ofn.lpstrFilter <span class="k3">=</span> filter<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>  ofn.lpstrInitialDir <span class="k3">=</span> myPath<span class="k2">;</span></td></tr><tr><td class="number">21</td><td>  ofn.Flags <span class="k3">=</span> OFN_HIDEREADONLY <span class="k3">&amp;</span> OFN_FILEMUSTEXIST <span class="k2">;</span></td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td>  <span class="k1">if</span><span class="k2">(</span>GetOpenFileName<span class="k2">(</span><span class="k3">&amp;</span>ofn<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">24</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">25</td><td>    <span class="c">/***************************************************</span></td></tr><tr><td class="number">26</td><td><span class="c">     * The Error occures here. If the user selects Cancel</span></td></tr><tr><td class="number">27</td><td><span class="c">     * in the Open file dialog box tempBMP will get a </span></td></tr><tr><td class="number">28</td><td><span class="c">     * bitmap pointer. If the user selects a valid file</span></td></tr><tr><td class="number">29</td><td><span class="c">     * tempBMP will get NULL.</span></td></tr><tr><td class="number">30</td><td><span class="c">     **************************************************/</span></td></tr><tr><td class="number">31</td><td>  tempBMP <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"Data//BackDrops//INST_DN.bmp"</span>, pal<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    <span class="c">// copy save path to a more permanent string</span></td></tr><tr><td class="number">33</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_769.html" target="_blank">strncpy</a><span class="k2">(</span>fileName, szFile, <span class="n">206</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>  <span class="k1">return</span> fileName<span class="k2">;</span></td></tr><tr><td class="number">35</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Wilson Saunders)</author>
		<pubDate>Sat, 05 May 2007 04:56:32 +0000</pubDate>
	</item>
</rss>
