September 17, 2004

USES_CONVERSION

For use of ATL String Convert macros in your project... you must be use of this macro (USES_CONVERSION;) and add #include <atlbase.h> to your project.

USES_CONVERSION چيه؟به مثال زير نگاه کنيد

void func( LPSTR lpsz ) 
{ 
  USES_CONVERSION; 
  ... 
  LPWSTR x = A2W(lpsz) 
  // Do something with x 
  ... 
}

هنگامي که از مبدل هاي string يي ATL استفاده مي کنيد بايد براي جلوگيري از Compile Error از اين دستور مسخره استفاده کنيد. مثل زير

HRESULT CCompData::OnPreLoad(LPDATAOBJECT lpDataObject, LPARAM arg, LPARAM param) 
{ 
  USES_CONVERSION; 
  LPOLESTR wszName = NULL; 
  const _TCHAR *pszName = m_pStaticNode->GetDisplayName(); 
  wszName = (LPOLESTR)T2COLE(pszName); 
  ... 
}

مثلا T2COLE يک ATL macro باحاله که مي تونه String Poniter مانند LPCTSTR و محتوياتش رو به LPCOLESTR تبديل کنه و براي استفاده از اون تنها کافيست که USES_CONVERSION استفاده کنيد.

// use it to call OLE here
USES_CONVERSION;
pI->SomeFunctionThatNeedsUnicode(T2OLE(lpszA));
... براي اينکه ماکروهاي اين چنيني براي دسترسي به فضاهاي Temp از local variable هايي با نام convert_ استفاده مي کنند که بااحضار ماکروي USES_CONVERSION مشکل استفاده از اون ها حلله .. مثل مثال بالا.... ماکروهاي مبدل عمومي مانند زيرند:
Generic Conversion Macros
A2CW (LPCSTR) -> (LPCWSTR)
A2W (LPCSTR) -> (LPWSTR)
W2CA (LPCWSTR) -> (LPCSTR)
W2A (LPCWSTR) -> (LPSTR)
OLE Conversion Macros
T2COLE (LPCTSTR) -> (LPCOLESTR)
T2OLE (LPCTSTR) -> (LPOLESTR)
OLE2CT (LPCOLESTR) -> (LPCTSTR)
OLE2T (LPCOLESTR) -> (LPCSTR)
Other Considerations
و يه عالمه ديگه
حالا اومديد و استفاده کرديد ديديد که هر چي ميزنيد Compile ... خطا مي ده ...
خب بدبخت حق داره بايد Header مربوطه رو بهش Add کنيد دیگه ...
آره مي دونم MSDN رو زير و رو کرديد ولي پيدا نشده ... عصباني نباشيد .. مايکروسافتِ ديگه ... شعورش که نمي رسه ... شما ببخشيدش ... Header اش اينه
#include <atlbase.h>
بذاريد بالاي برنامه و تموم.

September 10, 2004

Creative VIBRA 128

If you have problem to detect "Creative VIBRA 128" (Sound Card) to your Windows Server Edition you can must use of the last deriver of this card. You can find it from some site like these
http://uk.europe.creative.com/support/drivers/advanced.asp
http://hybrid.academic.cmru.ac.th/ftp/windows/driver/SBAudioSetup_W2k.zip
download, extract and install it and then ENJOY with a music like "Hey You" ;-) I hope this helps.
خب اگه شما از اين نوع کارت صداها مثل
Creative Sound Blaster® Vibra128
Sound Blaster 16 PCI
Sound Blaster PCI 128
Sound Blaster 4.1 Digital
Sound Blaster Ensoniq AudioPCI

رو کامپيوترتون داريد و يه ويندوز Server Edition مثل Windows 2003 .Net يا Windows 2000 يا هر کوفت ديگه اي نصب کرديد و مي بينيد در کمال تاسف متاسفانه نمي شناستش
Multimedia Audio Controller (to ControlPanel>System>Device Manager alamat e ? dareh)
که هيچ بلکه CD Driver اين کارت نيز کاري براتون نمي کنه ...معنيش اينه که بز آوردين
به خودتون مي گيد Creative کشک که نيست سايت داره Custmet Service داره خبر مرگشون
http://uk.europe.creative.com/support/drivers/product.asp
http://uk.europe.creative.com/support/drivers/advanced.asp
خب اگه تو اين ليست انتخاب کني مي بيني براي اين نوع محصول دو تا Patch داره
1)تاريخ انتشار: 19/12/2002

Sound Blaster PCI cards Web Update for users running Windows 98SE, Windows ME, Windows 2000 or Windows XP.
Sound Blaster PCI (WDM) Drivers V 5.12.01.5017
نام محصول: SBPCI_WebDrvsV5_12_01.exe

2) تاريخ انتشار: 19/11/2001
Driver release for SB PCI 128 Vibra / PCI 16 (Models CT 481x & 4740)
نام محصول: SBAudioSetup_W2k.zip (که شامل SBAUDIOSetupus.EXE و SBAPW2k.LIB هستش)

خب تعجب نکنيد منم رسيدم به کليد Download اما هرچي روش مي زنيد نمي ياد .. اگه اومد که هيچیBSAudioSetup_W2k.zip رو دانلود کنيد و تموم ... اما اگه نيومد کارتون در اومده بريد تو GOOGLE و بگرديد دنبال همين فايل (SBAudioSetup_W2k.zip) شايد فرجي شد و يکي اينو گذاشته بود رو Server اش ...
من که از اينجا دانلود کردم و حل شد ...
خب حل شده ... حالا بشينيد و يه دل سير Hey You گوش کنيد... خوش باشيد ...

Requset is not accepted

If you have problem with Win 9x Client and you have this message that ...
"Requset is not accepted by the network, Try again later."
you probably have an EVENT202 on the Server.
You can solve this problem with 2 way
1- Control Panel> Licensing> Add more to Per Server License
2- Control Panel> Licensing> Change the Per Server License to Per Seat

گندش دراومده ... همه سرور و تشکيلاتشون رو اوردي بالا موقع تحويل ... کليک مي کنن روي Share Folder هاي Server يه دفعه مياد دو دفعه نمي ياد .... يه Error مسخره هم مي آد که "درخواستت پذيرفته نيست. دوباره تلاش کنيد." چشمات داره مي زنه بيرون ... مي توني بندازي گردن مشکلات سخت افزاري ...
اگه خوب ور بري مي بيني که مثلا تا موقعي که n تا PC روشنه مشکل حلله اما وقتي که n+1 امي مياد تو شبکه گند مي خوره به همه ... از اون عجيب تر اينکه همه Server رو مي بينن و مي تونن برن توش ولي تا مي زنن روي يه Share Folder دلينگ اين پيغامه مي آد ...

"Requset is not accepted by the network."
"Requset is not accepted by the network, Try again later."

اينم گاها فقط کامپيوتر هاي 95و 97و Me و غيره مي دن ...
بابا خيلي سادس ... مشکله Licensing داره ... برين تو ControlPanel> Licensing يا برين Per Sservr رو بکنين Per Seat که خيال خودتون و شبکه و غيره رو راحت کنه :)) يا به Per Server تون اضافه کنيد .. راحت بود نه ...
حالا بريد يه گوشة شرکت واستيد، ليوان گندة شير يا قهوه يا چاييتونت رو بگيرين دستتون و از اينکه ملت بدون حتي يه ثانيه مشکل از Serevr استفاده مي کنن لذت ببرن ... حظ کنيد ... نوش جان