OPENDOSYAADI

OPENDOSYAADI yapısı, bir veya Kaydetolarak ortak iletişim kutusu başlatmak için GetOpenFileName ve GetSaveFileName işlevleri kullanarak bilgileri içerir. Kullanıcı iletişim kutusunu kapattıktan sonra sistem içinde bu yapı kullanıcının seçimi hakkında bilgi döndürür .

typedef struct tagOFN {/ / ofn dword lStructSize; 
    hwnd hwndOwner; 
    HINSTANCE HINSTANCE; 
    lpctstr lpstrFilter; 
    lptstr lpstrCustomFilter; 
    dword nMaxCustFilter; 
    dword nFilterIndex; 
    lptstr lpstrFile; 
    dword nMaxFile; 
    lptstr lpstrFileTitle; 
    dword nMaxFileTitle; 
    lpctstr lpstrInitialDir; 
    lpctstr lpstrTitle; 
    dword Flags; 
    word nFileOffset; 
    word nFileExtension; 
    lpctstr lpstrDefExt; 
    dword lCustData; 
    lpofnhookproc lpfnHook; 
    lpctstr lpTemplateName; 
} OPENDOSYAADI 

 

Üyeler

lStructSize
Yapı bayt cinsinden uzunluğu belirtir.
hwndOwner
İletişim kutusu sahibi pencereyi tanımlar. Herhangi bir geçerli pencere tanıtıcısı bu üye olabilir ya da iletişim kutusunda Hayır sahibi varsa boş olabilir.
hINSTANCE
Bayrakları üye ofn_enabletemplatehandle bayrağı ayarlanmışsa, HINSTANCE tanıtıcı iletişim kutusunda şablon içeren bellek nesnesi değil. ofn_enabletemplate bayrağı ayarlanmışsa, HINSTANCE lpTemplateName üye tarafından adlı iletişim kutusunda şablon içeren modül tanımlar. Ne bayrağı ayarlanmışsa, bu üye yoksayılır.

Ofn_explorer bayrağı ayarlanmışsa, Sistem belirtilen şablon varsayılan Explorer Stili iletişim kutusunda alt bir iletişim kutusu oluşturmak için kullanır. ofn_explorer bayrağı ayarlanmazsa, sistem varsayılan iletişim kutusu yerine bir eski stil iletişim kutusu oluşturmak için şablonu kullanır.

lpstrFilter
İşaretçi çift filtre biten dizeleri içeren bir arabellek. Son dize arabelleğinde iki boş karakterler tarafından tamamlanmalıdır.

Her çifti ilk dizeyi (örneğin, "metin dosyaları") filtresi bir görünen dize ve filtre modeli ikinci dize belirtir (örneğin, "*.TXT"). Bir tek görünen dize için birden çok filtre desen belirtmek için desenleri ayırmak için noktalı virgül kullanın (örneğin, "*.TXT; *.DOKTOR; *.BAK"). Bir desen dizesi geçerli dosya adı karakterleri ve yıldız(*) joker karakter birleşimi olabilir. Desen dizesi boşluk eklemeyin.

Sistem, filtrelerin sırasını değiştirmez. LpstrFilter içinde belirtilen sırada Dosyatürü açılan kutuda onları görüntüler .

LpstrFilter null ise, herhangi bir filtre iletişim kutusunu görüntüleme.

lpstrCustomFilter
Kullanıcı tarafından seçilen filtre modeli korumak için filtre biten dizeleri çifti içeren statik bir arabellek için işaretçi. İlk dizenin özel filtre, görünen dize, ve ikinci dize kullanıcı tarafından seçilen filtre modeli. Uygulama iletişim kutusu oluşturur ilk kez herhangi bir boş olmayan bir dize olabilir ilk dize belirtin. Kullanıcı bir dosyayı seçtiğinizde iletişim kutusu geçerli filtre modeli ikinci dizeye kopyalar. Korunmuş filtre modeli bir lpstrFilter arabellek belirtilen desen olabilir veya kullanıcı tarafından yazılan bir filtre modeli olabilir. Sistem, kullanıcı tanımlı dosya filtresi iletişim kutusunu bir sonraki oluşturulduğunda başlatmak için dizeleri kullanır. NFilterIndex üye sıfır ise, özel filtre iletişim kutusunda kullanır.

Bu üye null ise, iletişim kutusunun kullanıcı tanımlı filtre desenleri korumaz.

Bu üye null değilse, nMaxCustFilter üye değeri lpstrCustomFilter arabellek boyutu, bayt (ANSI sürümü) veya 16 bitlik karakterler (Unicode sürümü) belirtmelisiniz.

nMaxCustFilter
Bayt veya karakterini, lpstrCustomFiltertarafından tanımlanan arabellek boyutunu belirtir. Bu arabellek, en az 40 karakter uzunluğunda olmalıdır. LpstrCustomFilter boş veya nokta ise bu üye yoksayılır için boş bir dize.
nFilterIndex
Dosya türlerini denetiminde Seçilen filtrenin dizinini belirtir. LpstrFilter tarafından işaret arabellek çiftleri filtreleri tanımlama dizelerini içerir. 1 Dizin değeri dizelerin ilk çifti vardır, ikinci 2 çifti vb.. LpstrCustomFiltertarafından belirtilen özel filtre sıfır dizinini gösterir. İlk filtre açıklaması ve filtre modeli iletişim kutusu göstermek için giriş üzerinde bir dizin belirtebilirsiniz. Kullanıcı bir dosyayı seçtiğinizde nFilterIndex görüntülenen filtre döndürür.

NFilterIndex sıfır lpstrCustomFilter null ise, sistem lpstrFilter arabellek ilk filtresini kullanır. Tüm üç üye, sıfır veya boş ise, sistem herhangi bir filtre kullanmayan ve dosyalar iletişim kutusunda Dosya liste denetiminde göstermez.

lpstrFile
İşaretçinin dosya adını başlatmak için kullanılan bir dosya adı içeren bir arabellek düzenleme denetimi. Başlatma gerekmiyorsa bu arabellek ilk karakteri null olmalıdır. Bu arabellek GetOpenFileName veya GetSaveFileName işlevi başarıyla döndüğünde, sürücü göstergesi, yol, dosya adı ve seçili dosya uzantısı içerir.

OFN_ALLOWMULTISELECT bayrağı ayarlandı ve birden fazla dosya kullanıcının seçtiği, arabellek geçerli dizin Seçili dosyaların dosya adlarını tarafından takip içerir. Explorer tarzı iletişim kutuları için dizin ve dosya adını, sonra son dosya adını ek bir NULL karakteriyle ayrılmış boş dizelerdir. Eski stil iletişim kutularında, boşlukla dizeleridir ve boşluk içeren dosya adları için kısa dosya adları işlevini kullanır. Sen-ebilmek kullanma arasında uzun ve kısa dosya adlarını dönüştürmek için FindFirstFile işlevi.

Arabellek çok küçük olması durumunda işlev false döner ve fnerr_buffertoosmall CommDlgExtendedError işlevini verir. Bu durumda, gerekli boyutu, bayt veya karakter ilk iki baytı lpstrFile arabellek içeriyor.

nMaxFile
LpstrFiletarafından işaret arabellek boyutu, bayt (ANSI sürümü) veya 16 bitlik karakterler (Unicode sürümü) belirtir. Arabellek dosya bilgileri alamayacak kadar küçük ise GetOpenFileName ve GetSaveFileName işlevlerinin yanlış döndürür. Arabellek en az 256 karakter uzunluğunda olmalıdır.
lpstrFileTitle
Dosya adı ve uzantısı (olmadan yol bilgisi) seçili dosyanın alan arabellek için işaretçi. Bu üye null olabilir.
nMaxFileTitle
LpstrFileTitletarafından işaret arabellek boyutu, bayt (ANSI sürümü) veya 16 bitlik karakterler (Unicode sürümü) belirtir. LpstrFileTitle null ise, bu üye yoksayılır.
lpstrInitialDir
İlk dosya dizini belirten bir dize işaretçisi.

Windows NT 5.0 ve üstü; Windows 98 ve üstü:

LpstrInitalDir null olur ve geçerli dizini belirtilen filtre türü dosyaları içeriyorsa, başlangıç dizini geçerli dizindir.

LpstrInitalDir null ve geçerli dizindeki tüm dosyaları belirtilen filtre türü içermiyor, başlangıç dizini geçerli kullanıcının kişisel dosyaları dizinidir. Geçerli kullanıcının kişisel dosyaları dizinini başlangıç dizini olarak belirtmek için set lpstrInitialDir çağrılarak döndürülen yola SHGetSpecialFolderLocation fonksiyonu ile CSIDL_PERSONAL bayrağı.

Windows ve Windows NT'nin önceki sürümleri:

LpstrInitalDir null ise, başlangıç dizini geçerli dizindir.

lpstrTitle
İşaretçiyi iletişim kutusunun başlık çubuğunda yerleştirilecek bir dize. Bu üye null ise, sistem varsayılan başlık (diğer bir deyişle, farklı olarak veya Açık) kullanır.
Bayraklar
İletişim kutusu başlatmak için kullanabileceğiniz bit bayrağı kümesidir. İletişim kutusu döndüğünde, kullanıcının giriş göstermek için bu bayrakları ayarlar. Bu üye aşağıdaki bayrakları bir arada olabilir:
Bayrak Anlamı
OFN_ALLOWMULTISELECT
Dosyaadı liste kutusunda birden çok seçime izin verdiğini belirtir. Ayrıca ofn_explorer bayrağı ayarlarsanız, iletişim kutusu Explorer tarzı kullanıcı arabirimini kullanır; Aksi takdirde eski stil kullanıcı arabirimini kullanır .

Kullanıcı birden fazla dosya seçerse, seçilen dosyaların dosya adlarını tarafından geçerli dizin yolunu takip lpstrFile arabellek döndürür. NFileOffset üye olan uzaklık, bayt veya karakter, ilk dosya ve nFileExtension üye kullanılmaz. Explorer tarzı iletişim kutuları için dizin ve dosya adını, sonra son dosya adını ek bir NULL karakteriyle ayrılmış boş dizelerdir. Bu biçim, uzun dosya adlarını boşluk dönmek Explorer tarzında diyaloglar sağlar. Eski stil iletişim kutularında, dizin ve dosya adı dizeleri boşlukla ayrılır ve boşluk içeren dosya adları için kısa dosya adları işlevini kullanır. Sen-ebilmek kullanma arasında uzun ve kısa dosya adlarını dönüştürmek için FindFirstFile işlevi.

Eski stil iletişim kutusu için özel bir şablon belirtirseniz, dosya adı liste kutusunda tanımı lbs_extendedsel değerini içermelidir.

OFN_CREATEPROMPT
Kullanıcı varolmayan bir dosyayı belirtir, bu bayrak kullanıcıdan dosyayı oluşturmak izin iletişim kutusunu neden olur. Dosyayı oluşturmak kullanıcı seçerse, iletişim kutusunu kapatır ve belirtilen ad işlevini verir; Aksi durumda, iletişim kutusu açık kalır. OFN_ALLOWMULTISELECT bayrak bu bayrağı kullanırsanız, iletişim kutusu yalnızca bir varolmayan dosya belirtmek için kullanıcı sağlar.
OFN_ENABLEHOOK
Belirlenen lpfnHook üyesi kanca işlevi sağlar.
OFN_ENABLESIZING
Windows NT 5.0, Windows 98:Fare veya klavyeyi kullanarak yeniden boyutlandırılmaya Explorer Stili iletişim kutusu sağlar. Varsayılan olarak, bu bayrağı ayarlanmış olursa olsun yeniden boyutlandırılmaya iletişim kutusu için Explorer tarzı Açık veolarak Kaydetiletişim kutuları izin. Bu bayrak, yalnızca bir kanca işlemi veya özel bir şablon sağlamak gereklidir. Eski stil iletişim kutusunu yeniden boyutlandırarak izin vermez .
OFN_ENABLETEMPLATE
LpTemplateName üye HINSTANCE üye tarafından tanımlanan modülünde bir iletişim şablon kaynağının işaret eden gösterir.

Ofn_explorer bayrağı ayarlanmışsa, Sistem belirtilen şablon varsayılan Explorer Stili iletişim kutusunda alt bir iletişim kutusu oluşturmak için kullanır. ofn_explorer bayrağı ayarlanmazsa, sistem varsayılan iletişim kutusu yerine bir eski stil iletişim kutusu oluşturmak için şablonu kullanır.

OFN_ENABLETEMPLATEHANDLE
HINSTANCE üye önceden yüklenmiş iletişim kutusunda şablon içeren veri bloğu tanımlar gösterir. Bu seçenek belirtilmezse sistem, lpTemplateName yoksayar.

Ofn_explorer bayrağı ayarlanmışsa, Sistem belirtilen şablon varsayılan Explorer Stili iletişim kutusunda alt bir iletişim kutusu oluşturmak için kullanır. ofn_explorer bayrağı ayarlanmazsa, sistem varsayılan iletişim kutusu yerine bir eski stil iletişim kutusu oluşturmak için şablonu kullanır.

OFN_EXPLORER
veya Kaydetgibi iletişim kutusunda yapılan tüm özelleştirmeler yeni Explorer stili özelleştirme yöntemleri kullandığını gösterir. Daha fazla bilgi için bkz: Explorer tarzı kanca prosedürleri ve Explorer tarzı özel şablonlar .

Varsayılan olarak, bu bayrağı ayarlanmış olup olmadığını bakmaksızın Explorer tarzı kullanıcı arabirimi için Açık veolarak Kaydetiletişim kutularını kullanın. Bu bayrak, yalnızca bir kanca işlemi veya özel bir şablon sağlamak veya OFN_ALLOWMULTISELECT bayrağı gereklidir .

Eğer eski stil kullanıcı arabirimi, ofn_explorer bayrağını kullanmazsanız ve yerine eski stil şablon sağlamak veya yordam kanca. Eski stil istiyorum ama değil özel bir şablon ihtiyacınız veya yordam kanca, sadece her zaman yanlış'ı verir bir kanca işlemi sağlar.

OFN_EXTENSIONDIFFERENT
Kullanıcı lpstrDefExttarafından belirtilen uzantılı farklı bir dosya adı uzantısı yazılan belirtir. LpstrDefExt null ise, bu bayrak işlevini kullanmaz.
OFN_FILEMUSTEXIST
Kullanıcı Dosya adı girişi alanına yalnızca varolan dosya adlarını yazabilirsiniz belirtir. Bu bayrak belirtilir ve kullanıcı geçersiz bir ad girer, iletişim kutusu yordamı bir ileti kutusunda bir uyarı görüntüler. Bu bayrak belirtilmezse, OFN_PATHMUSTEXIST bayrağı da kullanılır.
OFN_HIDEREADONLY
Okumakyalnızca onay kutusunu gizler .
OFN_LONGNAMES
Eski stil iletişim kutuları için bu bayrak, uzun dosya adlarını kullanmak için iletişim kutusunu neden olur. Bu bayrak belirtilmezse, veya OFN_ALLOWMULTISELECT bayrak da ayarlanırsa, eski stil iletişim kutularını kısa dosya adlarını (8.3 biçiminde) boşluk içeren dosya adları kullanın.

Explorer tarzı iletişim kutularında Bu bayrak yoksay ve her zaman uzun dosya adlarını görüntüleme.

OFN_NOCHANGEDIR
Kullanıcı dizin dosyaları ararken değiştirdiyseniz geçerli dizini özgün değerine geri yükler.
OFN_NODEREFERENCELINKS
Yolunu ve dosya adını seçili kısayolu dönmek için iletişim kutusunu yönlendirir (.lnk) dosyası. Bu değer verilmezse iletişim kutusunu başvurulan dosya adını ve yolunu kısayol döndürür
OFN_NOLONGNAMES
Eski stil iletişim kutuları için bu bayrak kısa dosya adlarını (8.3 biçiminde) kullanmak için iletişim kutusunu neden.

Explorer tarzı iletişim kutularında Bu bayrak yoksay ve her zaman uzun dosya adlarını görüntüleme.

OFN_NONETWORKBUTTON
Gizler ve düğmesini devre dışı bırakır.
OFN_NOREADONLYRETURN
Döndürülen dosya okuma yalnızca seçili kutuyu yok ve yazma korumalı bir dizinde değil belirtir.
OFN_NOTESTFILECREATE
İletişim kutusu kapatılmadan önce dosya oluşturulur belirtir. Bu bayrak olmalıdır uygulama oluştur-nonmodify ağ paylaşımında dosyayı kaydeder, belirtilen. Ne zaman bir uygulama, Kütüphane, yazma korumasını, tam bir disk, bir açık sürücü kapağı veya ağ koruması için denetlemez bu bayrağı belirtir. Kapalı bir kez dosya açılamaz çünkü bu bayrak kullanan uygulamaların dikkatlice dosya işlemleri gerçekleştirmelisiniz.
OFN_NOVALIDATE
Ortak iletişim kutularındaki döndürülen dosya adında geçersiz karakterler izin belirtir. Genellikle, çağıran uygulama FILEOKSTRING iletisini kullanarak dosya denetleyen bir kanca işlemi kullanır. Düzenleme denetimi metin kutusu boş veya hiçbir şey ama boşluk içeriyorsa, dosya ve dizinlerin listesi güncelleştirilir. Düzenleme denetimine metin kutusuna başka bir şey varsa, nFileOffset ve nFileExtension metin ayrıştırma tarafından oluşturulan değerler ayarlanır. Varsayılan uzantısı metne eklenir, ne de metin lpstrFileTitle tarafından belirtilen arabelleğe kopyalanır.
NFileOffset tarafından belirtilen değeri sıfırdan küçükse, dosya adı geçersiz. Aksi takdirde, dosya adının geçerli olduğundan ve OFN_NOVALIDATE bayrak belirtilmezse gibi nFileExtension ve nFileOffset kullanılabilir.
OFN_OVERWRITEPROMPT
Seçili dosya zaten varsa, bir ileti kutusu oluşturmak farklı Kaydetiletişim kutusunu neden olur. Kullanıcı bir dosyanın üzerine olup olmadığını onaylamak gerekir .
OFN_PATHMUSTEXIST
Kullanıcı yalnızca geçerli yolları ve dosya adlarını yazabilirsiniz belirtir. Bu bayrak kullanılır ve kullanıcı geçersiz bir yol ve dosya adı Dosya adı girişi alanına yazar, bir ileti kutusunda bir uyarı iletişim kutusu işlevi görüntüler.
OFN_READONLY
Okumakyalnızca iletişim kutusu oluşturulduğunda başlangıçta kontrol edilmesi için onay kutusunu neden olur. İletişim kutusu kapatıldığında bu bayrak okumayalnızca onay kutusunun durumunu gösterir. .
OFN_SHAREAWARE
Eğer çağrı belirtir OpenFile işlevi başarısız bir ağ paylaşım ihlali nedeniyle, hata yoksayılır ve iletişim kutusunda seçili dosya adını döndürür.

Bu bayrağı ayarlanmazsa, kullanıcı tarafından belirtilen dosya adı bir ağ paylaşım ihlali oluşur, kanca işlemi iletişim kutusunu bildirir. ofn_explorer bayrağı ayarlarsanız, iletişim kutusu için kanca işlemi CDN_SHAREVIOLATION iletisi gönderir. İletişim kutusunu ofn_explorer ayarlamazsanız, kancası yordamı SHAREVISTRING kayıtlı mesaj gönderir.

OFN_SHOWHELP
Yardım düğmesini görüntülemek için iletişim kutusunu neden olur. HwndOwner üye HELPMSGSTRING almak için pencereyi kayıtlı kullanıcı Yardım düğmesini tıklattığında iletişim kutusunu gönderdiği iletileri belirtmeniz gerekir.

Kullanıcı Yardım düğmesini tıklattığında bir Explorer Stili iletişim kutusunu, kanca işlemi için bir cdn_help bildirim iletisi gönderir.


nFileOffset
LpstrFiletarafından işaret dize dosya yolunu başından bayt (ANSI sürümü) veya 16-bit karakter (Unicode sürümü), sıfır tabanlı uzaklık belirtir. Örneğin, "c:\dir1\dir2\file.ext", bu üye değeri ofset "file.ext" dizesi belirtmek üzere 13 içeren lpstrFile aşağıdaki dizeyi işaret ediyorsa,.

Kullanıcı birden fazla dosya seçerse, ilk dosya ofset nFileOffset olduğunu.

nFileExtension
Dosya adı uzantısı tarafından lpstrFileişaret dizesi yolunu başından bayt (ANSI sürümü) veya 16-bit karakter (Unicode sürümü), sıfır tabanlı uzaklık belirtir. Örneğin aşağıdaki dize lpstrFile işaret ediyorsa, "c:\dir1\dir2\file.ext", bu üye 18 değerini içerir. Kullanıcı bir uzantı kullanmayın ve lpstrDefExt null ise, bu üye Sonlandırıcı boş karakter uzaklığı belirtir. Eğer kullanıcı tip "." Dosya son karakter, bu üye sıfır belirtir.
lpstrDefExt
Varsayılan uzantı içeren bir arabellek işaret eder. Eğer kullanıcı bir uzantı yazın GetOpenFileName ve GetSaveFileName bu uzantı dosya ekleme. Bu dize herhangi bir uzunlukta olabilir, ancak yalnızca ilk üç karakteri eklenir. Dize, bir nokta (.) içermemelidir. Bu üye null ve uzantı yazmak kullanıcı başarısız olursa, hiçbir uzantısı eklenir.
lCustData
LpfnHook üye tarafından tanımlanan kanca işlemi sistem geçirir, uygulama tanımlı veri belirtir. Sistem kancası yordamı WM_INITDIALOG ileti gönderdiğinde, ileti lParam parametresinin OPENDOSYAADI yapısı için işaretçi iletişim kutusunun oluşturulduğu belirtilen olduğunu. LCustData değerini almak için bu işaretçi kancası yordamı kullanabilirsiniz.
lpfnHook
Bir kanca işlemi için işaretçi. ofn_enablehook bayrağı bayrak üye içeren sürece bu üye yoksayılır.

Ofn_explorer bayrağı bayrak üyesinin ayarlanmazsa, lpfnHook iletişim kutusu amaçlanan iletileri alır bir OFNHookProcOldStyle kanca işlemi için bir işaretçidir. Kanca işlemi için varsayılan iletişim kutusunu yordamı ya da atmak için doğru mesajı bir mesaj geçmek yanlış döndürür.

Ofn_explorer ayarlı ise, lpfnHook bir OFNHookProc kanca işlemi için bir işaretçi iş. Kanca işlemi iletişim kutusundan gönderilen bildirim iletilerini alır. Kanca işlemi de çocuk iletişim şablon belirterek tanımladığınız herhangi bir ek denetimler için iletileri alır. Kanca işlemi için varsayılan iletişim kutusundaki standart denetimleri amaçlanan iletileri almaz.

lpTemplateName
HINSTANCE üye tarafından tanımlanan modül iletişim şablon kaynak adları boşlukla sonlandırılmış dize işaretçisi. Numaralı iletişim kutusu kaynakları için bu MAKEINTRESOURCE makro tarafından döndürülen değeri olabilir. ofn_enabletemplate bayrağı bayrak üyesinin ayarlanmadığı sürece bu üye yoksayılır.

Ofn_explorer bayrağı ayarlanmışsa, Sistem belirtilen şablon varsayılan Explorer Stili iletişim kutusunda alt bir iletişim kutusu oluşturmak için kullanır. ofn_explorer bayrağı ayarlanmazsa, sistem varsayılan iletişim kutusu yerine bir eski stil iletişim kutusu oluşturmak için şablonu kullanır.

QuickInfo

nbsp; Windows &NT: sürüm 3.1 veya üstü gerektirir.
Windows:Windows 95 veya sonraki sürümleri gerektirir.
Windows ce:Sürüm 1.0 veya daha ilerisini gerektirir.
Header:Commdlg.h ilan etti.
Unicode:Unicode ve ANSI yapılar tanımlanan.

Ayrıca bkz:

Ortak iletişim kutusuna kitaplığın genel bakış, ortak iletişim kutusu yapıları, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation

Index